XRDB is a self hosted artwork and metadata toolkit for Stremio users who want full control over posters, backdrops, logos, badges, and provider ratings. It runs as a single Next.js service with a configurator, API routes, optional proxy mode, and profile persistence.
- Open the live configurator at
https://extendedratings.comto test options. - Follow the quick self host steps below to run your own instance.
- Use the docs links section for advanced settings and deep reference details.
These are live requests against production so readers can see current poster, backdrop, and logo output directly inside GitHub.
These screenshots were regenerated from the local May 24, 2026 codebase.
For side by side rendering mode examples, see:
- Poster style comparisons
- Backdrop style comparisons
- Logo style comparisons
- Thumbnail style comparisons
cp env.template .env| Variable | Required | Purpose |
|---|---|---|
XRDB_HOSTNAME |
Yes | Public hostname users visit |
TMDB_KEY |
Yes | TMDB API key used for artwork and metadata |
MDBLIST_KEY |
Optional | Adds extra rating sources |
ADMIN_USERNAME |
Yes | Admin dashboard login username |
ADMIN_PASSWORD |
Yes | Admin dashboard login password |
XRDB_CONFIG_ENCRYPTION_KEY |
Yes | 32+ character secret for stored config encryption |
Generate a strong encryption key:
openssl rand -base64 32Use one of these deployment paths.
# Standalone local path
nocorrect docker compose -f local-compose.yaml up -d --build
# Shared stack path
nocorrect docker compose -f compose.yaml up -d --build xrdbIf startup reports data-directory permission issues in non-default Docker uid/gid environments, set optional PUID and PGID in .env to match the host owner of your mounted data folder.
- Main UI:
http://localhost:3000or your configured hostname - Reference page:
/reference - Configurator:
/{type}where type isposter,backdrop,logo, orthumbnail - Health check:
/api/health
XRDB resolves metadata base URL at runtime for Open Graph, Twitter card, and icon links.
Resolution order:
X-Forwarded-HostandX-Forwarded-ProtowhenXRDB_TRUST_PROXY_HEADERS=trueHostheader from the incoming requestNEXT_PUBLIC_APP_URLfallbackhttp://localhost:3000default
For reverse-proxy deployments, enable XRDB_TRUST_PROXY_HEADERS=true.
If you need an explicit fixed fallback, set NEXT_PUBLIC_APP_URL=https://your-domain in .env.
GET /poster/:id.jpgGET /backdrop/:id.jpgGET /logo/:id.pngGET /thumbnail/:id.jpg
GET /api/healthGET /api/providersPOST /api/config-profile/loginPOST /api/config-profile/save
Use id formats like tt0133093, tmdb:603, or tmdb:movie:603.
AIOMetadata export patterns are available from the configurator export flow and can be copied directly from the Save and Proxy surfaces.
- Reference page
- Runtime variables
- Advanced self host settings
- Compose stacks
- Standalone compose
- Environment template
- Changelog (latest: v2.2.2)
docs/images/demo-videos/poster-workspace.pngdocs/images/demo-videos/proxy-workspace.pngdocs/images/metadata-translation/proxy-translation-anime-fallback-en-gb.pngdocs/images/metadata-translation/proxy-translation-fill-missing-movie-fr.pngdocs/images/metadata-translation/proxy-translation-prefer-language-show-fr-be.pngdocs/images/render-comparisons/anime-logo-comparison.pngdocs/images/render-comparisons/badge-style-comparison.pngdocs/images/render-comparisons/movie-poster-comparison.pngdocs/images/render-comparisons/show-backdrop-comparison.png
- Keep your current
.envvalues when updating. - Pull latest code, rebuild the image, and restart the container.
- If behavior changes after update, check CHANGELOG.md first.
Licensed under the ISC License. See LICENSE.