teatro Documentation Source status
Browse documentation
On this page

Optional integrations

Start with the local library. Enable metadata providers, installer extraction or remote imports only when you need them.

IGDB metadata

In Admin → Settings, save your Twitch/IGDB client ID and client secret. The secret is write-only in the API. Environment variables TEATRO_IGDB_CLIENT_ID and TEATRO_IGDB_CLIENT_SECRET are also supported.

Teatro searches the game's mapped platform first, verifies the returned platform IDs, and falls back to all platforms when the search is empty or no mapping exists. Automatic imports can apply metadata and cache covers; you can also select a match manually.

Missing credentials or an unsuccessful lookup does not fail an otherwise valid game import. Credentials saved in Settings live in SQLite, so treat database backups as sensitive.

GOG offline installers

This importer accepts owned offline setup files. It does not log in to GOG, download purchases, execute Windows setup programs, or install prerequisites.

The Docker image contains a hash-manifested innoextract sidecar, but imports remain disabled. In the Compose environment, set:

TEATRO_GOG_IMPORT_ENABLED=true

Then recreate the service with docker compose up -d. Leave the extractor path and checksum overrides unset to use the packaged sidecar.

For a native source run, you must provide an absolute path and SHA-256 for a separately reviewed extractor:

export TEATRO_GOG_IMPORT_ENABLED=true
export TEATRO_INNOEXTRACT_PATH=/opt/teatro-tools/innoextract
export TEATRO_INNOEXTRACT_SHA256="$(sha256sum /opt/teatro-tools/innoextract | cut -d' ' -f1)"
cargo run -- serve

Review the binary's provenance before pinning it. Computing a hash of an unknown binary does not establish that it is trustworthy.

In Import, select exactly one setup .exe and every matching .bin part. Review the suggested game name, start the import and follow Jobs. Success creates a Windows ZIP.

Import from another RomM server

Set TEATRO_ROMM_SOURCE_ENABLED=true, restart or recreate the service, then configure one remote server under Settings → RomM source. Test the connection before browsing.

Teatro keeps a local index of the remote catalog. Use Refresh remote list to replace that index, select games, review their title, platform and files, then import. Each game is copied into the local managed library; the remote server is not changed.

Duplicates are refused rather than overwritten. A size mismatch fails the download. A declared hash mismatch is a warning: the import completes with locally computed hashes, so review the warning before trusting the copy.

LAN discovery

Discovery is off by default. TEATRO_LAN_DISCOVERY_ENABLED=true enables same-link IPv4 DNS-SD advertisement when Teatro listens beyond loopback. TEATRO_DISCOVERY_NAME sets the human-readable prefix.

A published Docker TCP port is enough for a direct connection, but bridge networking usually does not advertise a useful host LAN address. Use your secured server URL directly if discovery is unreliable.

Discovery is unauthenticated and spoofable. It neither encrypts traffic nor verifies the server. Compatible client discovery remains separate work.