Self-host Emby
Personal media server for movies, TV, music and live TV with apps on nearly every device — the project Jellyfin forked from before it went closed source. Browsing, streaming in the browser and on Roku, Apple TV and LG/Samsung TVs are free; hardware transcoding, downloads, DVR and full playback in the desktop, console and (without a one-off app unlock) mobile apps need a paid Emby Premiere key.
Key facts
Pick Emby when you want Jellyfin's lineage with a company behind the clients — official apps on Roku, Apple TV, LG/Samsung TVs, Android TV and Fire TV, iOS and Android, the desktop and Xbox/PS4 — and you accept a closed-source server whose most useful extras sit behind a paid Emby Premiere key. The official image is `emby/embyserver` (amd64, arm64 and armv7), one container with a `/config` volume and your media mounted under `/mnt/`, on host networking for DLNA and Wake-on-LAN; the web UI is on 8096 (8920 for HTTPS). Upstream's requirements are 512 MB of RAM on Linux without transcoding and at least 2 GB for HD transcoding, which is where our 2 GB floor sits. If you want the same core job with nothing paywalled, Jellyfin is the alternative in this catalog.
What you need
- Any VPS with at least 2048 MB of RAM
- A domain you control — most self-hosted setups need HTTPS in front of them
- About an afternoon — budget time for troubleshooting
Paid link — we earn a commission if you shop through it.
Install with Docker Compose
Save this as compose.yml and run docker compose up -d:
# Emby Server — host networking for DLNA and Wake-on-LAN, per the official Docker Hub compose
services:
emby:
image: emby/embyserver
network_mode: host
environment: { UID: 1000, GID: 100, GIDLIST: 100 } # match the owner of your media files
volumes: ["./config:/config", "/srv/media:/mnt/share1"]
restart: on-failure
# docker compose up -d → http://SERVER_IP:8096What you take on
Emby is straightforward to run; the surprises are commercial and in the container's permissions, and its own docs spell both out: