Skip to content

Self-host Emby

updated Sep 2026prices checked · Jul 2026Install verified on Ubuntu 26.04 · Sep 2026 · how we test
We earn commissions when you shop through the links below. Full disclosure →

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

CategoryMedia server
LicenseProprietary
StackProprietary core, .NET
Min RAM2048 MB
Official imageyes
Measured idle RAM146 MB
Difficulty
Our recommendation

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
Where to host itaffiliate disclosure
Hetzner Cloudrun it on
From $23.59/mo · 2 vCPU / 4 GB / 80 GB · EU + US
Get Hetzner Cloud (opens in new tab)
Kamaterafree trial
From $4/mo · 1 vCPU / 1 GB / 20 GB · US + EU + Asia
Start free on Kamatera → (opens in new tab)
DigitalOceanalso works on
From $6/mo · 1 vCPU / 1 GB / 25 GB · US + EU + Asia
Deploy on DigitalOcean → (opens in new tab)

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:8096

What 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:

non-negotiableEmby Premiere is tied to the server, not the viewer: install the key and every connected client inherits it. Without it, hardware-accelerated transcoding (except on Nvidia Shield and WD NAS), HDR tone mapping, live TV and DVR, downloads and sync, intro skipping, backup/restore and LDAP are unavailable, and the Windows, macOS, Linux, Xbox and PS4 apps play only one minute. The iOS and Android apps have the same limit, lifted by Premiere or a one-off app unlock. Browser, Roku, Apple TV and LG/Samsung TV playback is free.
non-negotiableThe container runs as UID/GID 2 by default. Upstream's example sets UID/GID to your media owner's IDs but recommends leaving them at 2 and using GIDLIST instead to add the groups that own your media and the /dev/dri render nodes — without it, the server may be unable to read your library or reach the GPU. ls -l on the directories shows the owning group.
non-negotiableHardware transcoding in Docker needs the render nodes passed through (--device /dev/dri:/dev/dri, or --gpus all / runtime: nvidia for NVIDIA) on top of Premiere. There is no in-place updater in the container: upgrading is docker pull emby/embyserver:latest and recreating it.
non-negotiableThe server is proprietary. The MediaBrowser/Emby repository on GitHub still shows a GPL-2.0 license, but its last commit is from 2018 — it is the pre-fork code Jellyfin grew from, not the server you run today.

Head-to-head

More in Media server

We use analytics cookies (Google Analytics, PostHog) to see which guides are useful. No ad networks, no cross-site tracking. See our privacy policy.