Requirements
Odeion runs on Linux via Docker. What you need depends almost entirely on one question: how much transcoding will your server do?
Sizing Factors
Section titled “Sizing Factors”| Factor | Cost | Notes |
|---|---|---|
| Direct play | Very low | When a client supports the file’s codecs, Odeion streams the file as-is. Any modern machine handles many direct-play streams. |
| Software transcoding | High, CPU-bound | Each concurrent transcode occupies one or more CPU cores, more for 4K and HDR tone mapping. |
| Hardware transcoding | Low, needs a GPU | A single supported GPU handles multiple concurrent streams with little CPU involvement. |
| Library scanning and processing | Moderate, bursty | Probing, thumbnail and preview generation, and audio fingerprinting run in the background after files are added, then go quiet. |
| Database | Low | PostgreSQL (embedded or external) adds modest memory overhead, growing with library size and watch history. |
Rule of thumb: if your clients mostly direct play, almost anything works. If you expect regular transcoding, either plan CPU headroom per concurrent stream or use a GPU.
Transcoding Hardware
Section titled “Transcoding Hardware”| GPU | API | Prerequisites |
|---|---|---|
| Intel or AMD | VAAPI | /dev/dri must exist on the host (kernel driver loaded). The Docker container joins the render group automatically. |
| NVIDIA | NVENC | The NVIDIA Container Toolkit must be installed on the host. |
| None | Software | Works everywhere; budget CPU cores per concurrent stream. |
The installation wizard generates the right device passthrough for your choice, and the server probes the GPU’s actual encode capabilities at setup time. See Transcoding for profiles and pools.
Storage
Section titled “Storage”Two distinct storage needs, detailed on the Storage page:
- Data directory: persistent state (database, thumbnails, backups). Regular disks are fine; size grows with library size, typically a few GB per thousand items.
- Cache directory: transcode scratch space. Use the fastest local disk available (NVMe ideal). The transcode cache is capped at 32 GB by default and evicts old segments automatically.
Your media itself stays on your existing storage and is mounted read-only.
Software
Section titled “Software”- Docker Engine with Docker Compose v2 (
docker compose versionto check). - No external database is required: the default setup runs an embedded PostgreSQL. An external PostgreSQL 15+ server is supported and recommended for large deployments.
Network
Section titled “Network”- Client apps (mobile, TV) require HTTPS, so you need a domain name and a reverse proxy for anything beyond LAN web access.
- The device-linking login flow also requires your server to be reachable over HTTPS at its configured base URL.