Self-hosted XMLTV web guide with live, evening, grid, and full-text search views.
845
Lightweight, self-hosted XMLTV schedule browser with live, evening, grid, and full-text search views.
linux/amd64 and linux/arm64Source, issues, and release notes: github.com/cerede2000/tvguide
services:
tvguide:
image: cerede2000/tvguide:latest
container_name: tvguide
restart: unless-stopped
ports:
- "8080:8080"
environment:
TZ: Europe/Paris
ADMIN_PASSWORD: change-this-password
XMLTV_SYNC_WORKERS: 1
MALLOC_ARENA_MAX: 2
volumes:
- ./data:/data
security_opt:
- no-new-privileges:true
read_only: true
tmpfs:
- /tmp:size=16m,mode=1777
mkdir -p data/imports
chown -R 1000:1000 data
docker compose up -d
Open http://localhost:8080, then add an XMLTV source from Administration → XMLTV sources.
| Variable | Default | Description |
|---|---|---|
TZ | Europe/Paris | Default display and XMLTV fallback timezone. |
ADMIN_PASSWORD | empty | Protects administration when set. |
LOG_LEVEL | INFO | Logging level. |
ALLOW_PRIVATE_XMLTV_SOURCES | false | Allows private/loopback XMLTV URLs. |
XMLTV_MAX_DOWNLOAD_MB | 100 | Maximum download size. |
XMLTV_MAX_UNCOMPRESSED_MB | 500 | Maximum decompressed size. |
XMLTV_HTTP_TIMEOUT_SECONDS | 30 | Download timeout. |
XMLTV_DOWNLOAD_RETRIES | 3 | Download retry count. |
XMLTV_SYNC_WORKERS | 1 | Concurrent imports; keep 1 for lower RAM/CPU. |
XMLTV_USER_AGENT | tvguide/1.0 | XMLTV download User-Agent. |
MALLOC_ARENA_MAX | 2 | Limits retained native allocator arenas. |
FORWARDED_ALLOW_IPS | * | Trusted reverse-proxy IPs. |
The container listens on port 8080, runs as UID/GID 1000, stores all persistent data under /data, and exposes GET /api/health.
latest: latest stable release1.17.0: exact release1.17: latest patch in the release linePin an exact version for controlled deployments. Database migrations run automatically at startup; back up /data/app.db before upgrades.
Content type
Image
Digest
sha256:f9c2cdbd1…
Size
57.8 MB
Last updated
2 months ago
docker pull cerede2000/tvguide