HELP & TROUBLESHOOTING
A little help. Back to watching.¶
Answers to the setup questions, connection issues, and everyday fixes that come up when running JellyGlance.
BasicsDoes JellyGlance replace Jellyfin?
No. Jellyfin stays the media server. Glance sits beside it and pulls sessions, libraries, users, requests, downloads, jobs, and health into one admin view.
BasicsWhat do I need to run it?
Docker Compose v2, PostgreSQL 16 (the compose file starts it), and a Jellyfin URL plus API key. Open http://localhost:3000 after docker compose up -d.
Change JWT_SECRET, POSTGRES_PASSWORD, and TZ before you expose the stack off your LAN. See Getting Started and Docker.
ConnectionJellyfin will not validate the URL or API key
Glance has to reach Jellyfin from the container, not from your browser.
- Use a LAN IP or hostname, not
localhost, if Jellyfin runs on the host or another container. - Match
http/httpsto what Jellyfin actually serves. - Use a Jellyfin API key with library and user access, not a user password.
- If Jellyfin is on another Docker network, put both stacks on the same network or use the host IP.
A 403 from Jellyfin usually means the key is wrong or the user that created it cannot see the libraries.
AccessWhich login should I pick?
Quick Connect — Household already on Jellyfin. They approve login there and inherit the Glance role from Users.
Local admin — You want a Glance-only owner account and will add other local users later.
OIDC — An external identity provider is already in the stack. Configure OIDC login and map the identity to an existing Jellyfin user. See authentication setup.
Quick Connect users and local accounts can share the same install.
TroubleshootingThe first sync is stuck or Home looks empty
The wizard only starts the sync. The work runs as Settings → Tasks.
- Wait for Complete Jellyfin Sync, not only Recently Added.
- Confirm Jellyfin still answers from the Glance container (
docker logs jellyglance). - Artwork and stats fill in after the first full sync, not instantly.
If the task never starts, check that Postgres is healthy (jellyglance-db) and restart the Glance container. Unable to start first sync means the API could not queue the job — logs are the next stop.
TroubleshootingWhere are Requests, Downloads, or Invites?
Those pages stay hidden until the matching integration is configured. Empty queue screens are intentional.
Connect the app under Settings → Integrations, then look again: Seerr for Requests, a download client for Downloads, Tdarr for Active Transcodes, Wizarr for Invites.
ConnectionHow do I put it behind a reverse proxy?
Follow the reverse-proxy guide for Nginx Proxy Manager, Caddy, Nginx, and Traefik configuration, HTTPS, WebSockets, and troubleshooting.
Point the proxy at Glance on port 3000. Do not publish Postgres.
Keep the UI and API on the same origin. Forward Host and X-Forwarded-Proto. LAN origins are already allowed; a public HTTPS name works when the browser talks to that same host.
Do not put a Glance API key in a public iframe URL. Widget calls should stay server-side on the LAN. See Homepage widgets.
AccessI changed JWT_SECRET and everyone is logged out
That is expected. JWT_SECRET signs Glance sessions. Changing it invalidates every login. Set it once, keep it stable, and store it with the rest of the compose secrets.
MaintenanceHow do I reset first-run?
Follow the backup and restore guide and save an independent backup first. Then wipe the database and start again.
If you use the repo compose file (Postgres in ./postgres-data):
If you used a named Docker volume instead, remove that volume. This deletes Glance state, not Jellyfin.
BasicsCan I skip the wizard?
Yes. The compose file has optional JF_HOST, JF_API_KEY, JS_AUTH_MODE, JS_USER, JS_PASSWORD, JS_SKIP_FIRST_RUN, and JS_AUTO_START_SYNC comments. That seeds the same first-run data the wizard writes.
BasicsUnraid or TrueNAS?
Same image and volumes as Docker Compose. PostgreSQL is a second container on the same network. Notes are on Unraid and TrueNAS.
TroubleshootingHomepage or Homarr says 403
That token is a JellyGlance API key from Settings → API Key, sent as x-api-token. It is not the Jellyfin API key from first-run.
Download Homarr JSON widgets or the Homepage YAML pack from that Settings page, or from Homepage widgets. After a Homarr import, paste the Glance key — it is not stored in the JSON. New keys can be widgets-only. Try the same routes in the app at Settings → API Key.
MaintenanceHow do I update?
Images are on ghcr.io/nerdy-technician/jellyglance for linux/amd64, linux/arm64, and linux/arm/v7.
docker-compose (v1, with a hyphen) can crash on modern Docker with KeyError: 'id'. Use docker compose.
No matching answers. Try a different search or choose another topic.
Still need a hand?¶
Start with the troubleshooting hub, then share what you tried and any relevant error messages. Remove passwords, API keys, and tokens before sharing logs.