Skip to main contentSkip to navigation
[email protected]
Client AreaSupport
Hosting Mammoth
HostingMammothYour Data, Our Responsibility
Home
Solutions
Hosting Services
Store
Pricing
About
Blog
API
Contact

Stay Ahead of the Curve

Get the latest insights on cybersecurity, AI innovations, and enterprise data solutions delivered to your inbox.

Hosting Mammoth
HostingMammothEnterprise Solutions

Enterprise-grade data solutions. Hosting, recovery, cybersecurity, and AI-powered services for businesses worldwide.

[email protected]
Sun - Fri, 9:00am - 5:00pm

Services

  • Cloud Hosting
  • Data Recovery
  • Cybersecurity
  • Legal Support
  • MSP Services
  • Web Development
  • AI Services
  • Free Server Migration

Hosting

  • VPS Hosting (NVMe SSD)
  • VDS Hosting (NVMe)
  • Storage VPS (High SSD)
  • GPU Servers
  • Managed Services
  • Cloud Firewall
  • Load Balancer
  • One-Click Apps
  • n8n Hosting
  • Object Storage
  • FAQ

Company

  • Store
  • Pricing
  • About Us
  • Locations
  • Blog
  • Testimonials
  • Contact
  • Affiliate Program
  • White-Label
  • Terms of Service
  • Privacy Policy
  • Browser Cookies
  • SLA

Support

  • Client Area
  • Submit Ticket
  • Knowledge Base
  • Server Status
  • API Documentation

© 2026 Hosting Mammoth. All rights reserved.

Knowledge Base
Getting StartedAccount ManagementVPS HostingGPU ServersStorage VPSCloud FirewallLoad BalancerServer ManagementBilling & PaymentsSupport & TicketsAffiliate ProgramReseller ProgramMarketplace & Appsn8n HostingManaged ServicesServer MigrationAPI & DevelopersSecurityTroubleshootingGlossaryInstall Guides
  1. Home
  2. /
  3. Support
  4. /
  5. Install Guides
  6. /
  7. How To Install Emby Ubuntu
GUIDEInstall Guides

How to Install Emby Media Server on Ubuntu 24.04 — Stream Your Library Anywhere

25 min read

How to Install Emby Media Server on Ubuntu 24.04 — Stream Your Library Anywhere

Emby turns a modest VPS into a polished personal streaming service that indexes your movies, TV shows, music, photos, and live TV, then delivers them to every device you own — phones, smart TVs, browsers, Kodi, Roku, Apple TV, and DLNA receivers. This guide walks you through installing the official Emby Server package on Ubuntu 24.04, configuring libraries, enabling hardware acceleration where possible, exposing the server safely to the internet behind Nginx with TLS, and deciding whether an Emby Premiere subscription makes sense for your setup.

Want a bigger media box? The CloudCore Professional plan ships with 6 vCPU, 12 GB RAM, and 200 GB NVMe for EUR 19.99/month — comfortable for a family-scale Emby deployment.

Table of Contents

  • What is Emby?
  • Why Self-Host Emby on a VPS?
  • Emby vs Plex vs Jellyfin
  • Prerequisites
  • Step 1: Update the System
  • Step 2: Download the Emby Server .deb
  • Step 3: Install with dpkg
  • Step 4: Verify the Service
  • Step 5: First-Run Wizard
  • Step 6: Configure Library Paths
  • Step 7: Enable Hardware Acceleration
  • Step 8: Emby Premiere — What It Adds
  • Step 9: Configure DLNA
  • Step 10: Nginx Reverse Proxy with TLS
  • Companion Apps: Sonarr, Radarr, and More
  • Troubleshooting
  • FAQ
  • Next Steps
  • What is Emby?

    Emby is a closed-core, freemium media server that organizes your personal media library and streams it to clients over the local network and the internet. The server component runs on Linux, Windows, macOS, FreeBSD, NAS appliances, and Docker. Clients exist for nearly every modern platform, including iOS, Android, Android TV, Apple TV, Fire TV, Roku, LG webOS, Samsung Tizen, Xbox, PlayStation, and the web.

    Emby scrapes metadata from TheMovieDB, TheTVDB, and MusicBrainz, fetches artwork, reads subtitles and chapters, detects intros and credits, and transcodes on the fly so that a 1080p H.265 movie plays smoothly on an older phone that only supports H.264. It also handles user profiles, parental controls, watch history, multi-device resume, DVR, live TV via HDHomeRun tuners or IPTV M3U playlists, and photo libraries synced from phones. Out of the box you get a clean web UI at http://your-server:8096.

    Emby sits between fully-open Jellyfin and the cloud-bound Plex. The server binary is not open source, but the product model is "own your data" — your database, metadata, and media live entirely on your VPS.

    Why Self-Host Emby on a VPS?

    Running Emby on a VPS instead of a home NAS or paying for a streaming service has several upsides:

    • Public internet access without port forwarding. A VPS has a stable public IP. You do not need to poke holes in a home router, deal with CGNAT, or rely on a dynamic DNS client.
    • Symmetric, unmetered bandwidth. Many home ISPs cap upload to 10-40 Mbit/s. A datacenter VPS typically offers 1 Gbit/s or more, so 4K remote playback becomes realistic.
    • Always-on, 24/7. No wake-on-LAN dance, no family member pulling the plug on the NAS, no brownout pausing a transcode mid-movie.
    • Better than cloud services for your own files. Netflix and Disney+ can remove titles at any time. Your Emby library is whatever you put into it, available forever.
    • Full data ownership. No telemetry pipeline back to a vendor, no "our free tier just changed." Your watch history and user accounts live only on your server.
    • Cheaper long-term than multi-service streaming bundles. A single VPS at EUR 19.99/month is usually less than one premium streaming subscription, with far more content control.
    • Compliant with your own backup policy. Snapshot the VPS, replicate to a second region, or rsync to a Hetzner Storage Box — you decide the RPO and RTO.

    Cost Comparison: VPS-Hosted Emby vs Cloud Streaming

    ScenarioCloud Streaming BundleHome NAS + Home ISPVPS-Hosted Emby
    Monthly costEUR 30-60/mo (bundles)Hardware + electricityEUR 19.99/mo flat
    Upload bandwidthN/A10-40 Mbit/s typical1 Gbit/s unmetered
    ReliabilityVendor-dependentHome power / ISP outagesDatacenter SLA
    Content controlVendor curatesFull controlFull control
    Remote accessNativeRequires VPN / port fwdBuilt-in via public IP
    Offline downloads (Emby mobile)Requires vendor appYes (with Premiere)Yes (with Premiere)
    4K remote playbackVendor-dependentUpload-limitedPractical on 1 Gbit/s

    Emby vs Plex vs Jellyfin

    Choosing the right media server matters because migration between them is time-consuming (metadata, watch history, and user accounts do not move cleanly). Here is how Emby positions against the alternatives:

    • Emby — Polished UI, strong native clients on smart TVs and consoles, optional paid tier for advanced features, server binary closed source. Good middle ground.
    • Plex — The most refined UI and the best smart-TV client ecosystem, but requires a Plex cloud account and routes some relay traffic through Plex.tv servers. Plex Pass subscription unlocks most premium features.
    • Jellyfin — Fully open-source fork of an earlier Emby release. No paid tier, no telemetry, no vendor dependency, but clients are less polished on smart TVs.
    If the idea of any external dependency bothers you, pick Jellyfin. If you want the most turnkey experience and do not mind a subscription for premium features, pick Plex. Emby sits between the two: you own the installation, but the developer still monetizes through Premiere.

    Prerequisites

    Before starting, make sure you have:

    • A VPS running Ubuntu 24.04 LTS with root or sudo access.
    • SSH access to the server.
    • A domain name (such as media.example.com) with an A record pointing to your VPS IP.
    • At least 2 GB of RAM (4 GB+ recommended for transcoding).
    • At least 100 GB of storage for a starter media library (1-2 TB for a serious collection).
    • Ports 80 and 443 open on the firewall for Nginx and Let's Encrypt.
    Recommended Plan: CloudCore Professional
    >
    For a comfortable Emby deployment with room for metadata, transcoding, and other services, we recommend the CloudCore Professional plan:
    >
    - 6 vCPU cores
    - 12 GB RAM
    - 200 GB NVMe SSD
    - Unmetered 1 Gbit/s bandwidth
    - EUR 19.99/month
    >
    This supports 2-3 simultaneous transcoded 1080p streams plus background metadata tasks. For larger libraries, add a block storage volume or mount an external object store.

    Connect to your VPS:

    bash
    ssh root@your-server-ip

    Step 1: Update the System

    Refresh the package index, upgrade existing packages, and install a few helpers you will need later (curl for downloading the deb, ffmpeg libs are pulled in automatically by Emby, but keeping apt current prevents dpkg conflicts):

    bash
    sudo apt update && sudo apt upgrade -y
    sudo apt install -y curl wget ca-certificates gnupg lsb-release ufw

    If the kernel was upgraded, reboot:

    bash
    sudo reboot

    Reconnect after a minute.

    Step 2: Download the Emby Server .deb

    Emby does not ship an apt repository the way Jellyfin does. Instead, downloads are hosted directly on emby.media and on GitHub. We grab the latest stable emby-server-deb package for amd64 (use arm64 for ARM VPS).

    Browse to the official download page to confirm the latest version number. For this guide we use version 4.8.10.0 as an example — substitute the current version in the URL below.

    bash
    cd /tmp
    wget https://github.com/MediaBrowser/Emby.Releases/releases/download/4.8.10.0/emby-server-deb_4.8.10.0_amd64.deb

    Expected output:

    text
    Resolving github.com (github.com)... 140.82.121.3
    Connecting to github.com (github.com)|140.82.121.3|:443... connected.
    HTTP request sent, awaiting response... 302 Found
    ...
    2026-04-16 10:00:00 (24.1 MB/s) - 'emby-server-deb_4.8.10.0_amd64.deb' saved [162384720/162384720]

    Verify the file size is roughly what the release page advertised (around 155-165 MB for amd64).

    Step 3: Install with dpkg

    Install the package. dpkg -i does the install, and apt install -f resolves any missing dependencies that the deb declares (ffmpeg libs, libicu, libssl, and similar):

    bash
    sudo dpkg -i emby-server-deb_4.8.10.0_amd64.deb
    sudo apt install -f -y

    Expected output:

    text
    Selecting previously unselected package emby-server.
    (Reading database ... 73421 files and directories currently installed.)
    Preparing to unpack emby-server-deb_4.8.10.0_amd64.deb ...
    Unpacking emby-server (4.8.10.0) ...
    Setting up emby-server (4.8.10.0) ...
    Created symlink /etc/systemd/system/multi-user.target.wants/emby-server.service
    Emby Server started successfully.

    The installer:

  • Drops binaries into /opt/emby-server/.
  • Creates a dedicated emby system user and group.
  • Creates /var/lib/emby/ for the database, metadata, and user data.
  • Installs a systemd unit at /lib/systemd/system/emby-server.service.
  • Enables and starts the service.
  • Step 4: Verify the Service

    Confirm Emby is running:

    bash
    sudo systemctl status emby-server

    Expected output:

    text
    emby-server.service - Emby Server
         Loaded: loaded (/lib/systemd/system/emby-server.service; enabled)
         Active: active (running) since Wed 2026-04-16 10:05:00 UTC; 30s ago
       Main PID: 2345 (EmbyServer)
          Tasks: 32 (limit: 14236)
         Memory: 240.0M
         CGroup: /system.slice/emby-server.service
                 └─2345 /opt/emby-server/emby-server ...

    Allow the Emby port locally and confirm it is listening on 8096:

    bash
    sudo ss -tlnp | grep 8096

    You should see a line containing 0.0.0.0:8096.

    Before opening 8096 to the public, we will proxy it behind Nginx (Step 10). For now, use SSH port forwarding from your laptop to complete the first-run wizard privately:

    bash
    # Run this on your local machine
    ssh -L 8096:localhost:8096 root@your-server-ip

    Then open http://localhost:8096 in your browser.

    Step 5: First-Run Wizard

    The Emby first-run wizard appears the first time anyone loads the web UI. Work through these screens:

  • Preferred display language — Pick English (or your language).
  • Create your user account — This is the admin account. Use a strong password; this user has full server rights.
  • Setup media libraries — Skip for now and add them in Step 6, or start with one if you already have content copied to the server.
  • Preferred metadata language and country — Defaults to match the UI language.
  • Allow remote access — Enable it. We will still front it with Nginx + TLS, but Emby's own remote-access flag should be on.
  • Enable automatic port mapping (UPnP) — Disable this. UPnP does not apply on a VPS, and leaving it on causes log noise.
  • Review and agree to the terms.
  • At the end, click Finish and sign in with the admin user you created. You land on the Emby dashboard.

    Step 6: Configure Library Paths

    Libraries are the top-level organizational unit in Emby. Each one maps to a folder on disk and a content type.

    Create Media Directories

    On the server, create a predictable directory layout. We use /srv/media as the root. Adjust if your storage is mounted elsewhere (such as /mnt/blockstorage/media):

    bash
    sudo mkdir -p /srv/media/{movies,tv,music,photos,audiobooks}
    sudo chown -R emby:emby /srv/media
    sudo chmod -R 755 /srv/media

    Populate the folders with content via scp, rsync, rclone, or by mounting an external drive. Emby expects a standard naming convention:

    • Movies: /srv/media/movies/Inception (2010)/Inception (2010).mkv
    • TV shows: /srv/media/tv/Breaking Bad/Season 01/Breaking Bad - S01E01.mkv
    • Music: /srv/media/music/Artist/Album/01 - Track.flac

    Add Libraries in the Emby UI

  • Open Dashboard → Library → Add Media Library.
  • Pick the content type (Movies, TV Shows, Music, Home Videos and Photos, Books).
  • Click Add folder and enter the path, for example /srv/media/movies.
  • Set the metadata language and preferred image language.
  • For movies and TV, enable Enable real time monitoring so Emby picks up new files the moment they land on disk.
  • Enable Enable chapter image extraction only if you have spare CPU; it is expensive during initial scans.
  • Save. Emby begins scanning immediately.
  • The first scan of a large library can take hours. Watch progress under Dashboard → Scheduled Tasks → Scan media library.

    Step 7: Enable Hardware Acceleration

    Transcoding converts video to a format the client can play. Software transcoding (libx264) burns CPU — one 1080p stream can saturate 4 vCPU cores. Hardware acceleration offloads that work to a GPU or an integrated Intel iGPU.

    On a VPS, availability depends on the underlying hypervisor. Contabo and OVH KVM instances on modern Intel Xeon hosts expose Intel Quick Sync (QSV) through the virtualized /dev/dri/renderD128 device on some plans. On most shared plans, only software transcoding is available, and you should plan capacity around that.

    Check for a Render Node

    bash
    ls -la /dev/dri/

    Expected output if acceleration is available:

    text
    crw-rw---- 1 root render 226, 128 Apr 16 10:00 renderD128

    If /dev/dri/ is empty or absent, the VPS does not expose a GPU — skip this step.

    Grant Emby Access to the Render Node

    bash
    sudo usermod -aG render,video emby
    sudo systemctl restart emby-server

    Enable in the Emby UI

  • Go to Dashboard → Playback → Transcoding.
  • Set Hardware acceleration to:
  • - VAAPI for Intel iGPU / AMD GPU - Intel Quick Sync (QSV) for Intel-branded drivers - NVIDIA NVENC if an NVIDIA GPU is passed through
  • Set VA-API Device to /dev/dri/renderD128.
  • Enable Allow encoding in HEVC format only if your clients support it.
  • Enable Enable hardware decoding for the codecs you actually serve (H.264, HEVC, VP9).
  • Save.
  • Test with a Transcode

    Play a file in the Emby web app at a lower quality than the source (for example a 1080p file at 720p 2 Mbit/s). Watch CPU usage:

    bash
    top -p $(pgrep -d, EmbyServer)

    With hardware acceleration, total Emby CPU usage during a 1080p transcode should stay under 30%. Without it, expect 200-400%.

    Step 8: Emby Premiere — What It Adds

    Emby Server is free for core streaming. An Emby Premiere subscription unlocks features aimed at heavy users:

    • Mobile sync and offline downloads on iOS and Android clients.
    • Cinema Mode — trailers and custom intros before main features.
    • DVR — record live TV from an HDHomeRun or IPTV tuner with series scheduling, ad skipping, and automatic commercial detection.
    • Cover art and posters downloaded at higher resolution from premium sources.
    • Parental controls with per-user PINs.
    • Free Emby Connect account linking for remote access without manual port setup.
    • Free apps — the iOS, Android, Apple TV, Android TV, and Fire TV apps cost a one-time unlock fee for non-Premiere users, included with Premiere.
    • Hardware transcoding on some client-server combinations — certain advanced transcoding features are gated behind Premiere.

    Pricing (as of publication)

    • Monthly: USD 4.99
    • Yearly: USD 54
    • Lifetime: USD 119
    For a family that uses Emby daily across mobile devices, Premiere pays for itself quickly through the bundled mobile apps alone. For a single-user web-only setup, the free tier is usually enough. See the official Emby support site for feature matrices and troubleshooting.

    Step 9: Configure DLNA

    DLNA lets smart TVs, PlayStation and Xbox consoles, and network audio receivers discover the Emby server on the local network without installing an app. Emby speaks DLNA out of the box on UDP port 1900 (SSDP discovery) and a random high TCP port for streaming.

    Important security warning: DLNA has no authentication. Anyone who can reach the discovery port sees every library and can stream anything. On a public VPS, keep DLNA bound to a private interface only (WireGuard, Tailscale, or a LAN subnet reachable through VPN). Never expose 1900/udp on the public internet.

    Enable and Restrict DLNA

  • Go to Dashboard → DLNA.
  • Enable Enable DLNA server.
  • Disable Enable DLNA play to unless you plan to push content from Emby to a DLNA renderer.
  • Under Advanced, set Default user to a profile that only has access to the libraries you want DLNA clients to see.
  • Bind DLNA to a Private Interface

    Install WireGuard on the VPS (see our WireGuard install guide) or join the server to a Tailscale network. Then constrain Emby's DLNA to the private interface:

  • Dashboard → Networking → Advanced.
  • Set LAN Networks to the private subnet (for example 100.64.0.0/10 for Tailscale or 10.8.0.0/24 for WireGuard).
  • Set Public port to 8920 (HTTPS) and leave HTTP internal only.
  • Save and restart Emby: sudo systemctl restart emby-server.
  • On the public side of the firewall, explicitly block DLNA:

    bash
    sudo ufw deny 1900/udp
    sudo ufw deny 7359/udp

    Step 10: Nginx Reverse Proxy with TLS

    Now expose Emby on the public internet at https://media.example.com behind Nginx. This gives you a friendly URL, automatic HTTPS via Let's Encrypt, and a place to add extra hardening like rate limiting and security headers.

    Install Nginx and Certbot

    bash
    sudo apt install -y nginx certbot python3-certbot-nginx

    Open Firewall Ports

    bash
    sudo ufw allow OpenSSH
    sudo ufw allow 'Nginx Full'
    sudo ufw enable

    Create the Nginx Site Config

    bash
    sudo tee /etc/nginx/sites-available/emby > /dev/null <<'EOF'
    server {
        listen 80;
        server_name media.example.com;
        return 301 https://$host$request_uri;
    }

    server { listen 443 ssl http2; server_name media.example.com;

    ssl_certificate /etc/letsencrypt/live/media.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/media.example.com/privkey.pem;

    ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on;

    # Security headers add_header X-Frame-Options "SAMEORIGIN" always; add_header X-Content-Type-Options "nosniff" always; add_header Referrer-Policy "strict-origin-when-cross-origin" always; add_header Strict-Transport-Security "max-age=63072000; includeSubDomains" always;

    # Large uploads for artwork and subtitle imports client_max_body_size 50m;

    location / { proxy_pass http://127.0.0.1:8096; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Protocol $scheme; proxy_set_header X-Forwarded-Host $http_host;

    # WebSockets for real-time updates and Chromecast control proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade";

    # Long-running streams — do not cut off during a movie proxy_buffering off; proxy_read_timeout 1800s; proxy_send_timeout 1800s; }

    # Optional: direct WebSocket endpoint for embedded players location /embywebsocket { proxy_pass http://127.0.0.1:8096; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } EOF

    Replace media.example.com with your real hostname.

    Enable the Site and Issue a Certificate

    bash
    sudo ln -s /etc/nginx/sites-available/emby /etc/nginx/sites-enabled/
    sudo rm -f /etc/nginx/sites-enabled/default
    sudo nginx -t
    sudo certbot --nginx -d media.example.com
    sudo systemctl reload nginx

    Certbot edits the config to reference the issued certificate and installs an automatic renewal timer.

    Tell Emby About the Public URL

    Back in the Emby UI:

  • Dashboard → Networking.
  • Set Public HTTPS port to 443.
  • Set External domain to media.example.com.
  • Enable Require HTTPS for remote connections.
  • Save and restart Emby.
  • Browse to https://media.example.com and sign in. Your Emby is now publicly accessible over TLS.

    Companion Apps: Sonarr, Radarr, and More

    Emby handles playback brilliantly but does not download new content on its own. Pair it with the *-arr stack for end-to-end automation:

    • Sonarr — monitors TV shows, watches for new episodes on configured indexers, and hands them to a download client. Sonarr renames the resulting files into the exact layout Emby expects, and real-time monitoring picks them up within seconds.
    • Radarr — the movie equivalent of Sonarr. Configure a quality profile (say 1080p Bluray remux, fall back to 1080p WEB-DL), a size limit, and let it fill your watchlist automatically.
    • Lidarr — same pattern for music albums.
    • Bazarr — sidecar that grabs subtitles for everything Sonarr and Radarr manage, in the languages you configure.
    • Prowlarr — unified indexer manager; point Sonarr, Radarr, and Lidarr at Prowlarr and it distributes torrent/Usenet indexers to all of them.
    Deploy each alongside Emby on the same VPS (they are lightweight) and reverse-proxy them behind the same Nginx under subpaths or subdomains.

    Troubleshooting

    ProblemCauseSolution
    dpkg: error processing package emby-serverMissing dependencyRun sudo apt install -f -y to let apt fetch the missing libs.
    Web UI loads forever after loginNginx WebSocket not configuredVerify proxy_http_version 1.1, Upgrade, and Connection "upgrade" headers in the Nginx config.
    Playback starts then stops after ~1 minuteNginx proxy_read_timeout too lowIncrease proxy_read_timeout to 1800s as shown in the Step 10 config.
    Hardware acceleration option greyed outemby user lacks render/video group membershipsudo usermod -aG render,video emby && sudo systemctl restart emby-server.
    Media library empty after scanPermission mismatch — emby cannot read /srv/mediasudo chown -R emby:emby /srv/media.
    Mobile app keeps asking for a login unlockRunning on free tier without PremiereEither pay the one-time app unlock, subscribe to Premiere, or use the web UI on mobile browsers.
    Certbot fails with DNS / port 80 errorDNS not propagated or firewall blocks 80Verify dig media.example.com resolves, and sudo ufw status shows Nginx Full allowed.
    Server appears in DLNA on public internetUPnP or DLNA leaked to public interfaceDisable UPnP, bind LAN networks to a private subnet only, and block 1900/udp + 7359/udp at the firewall.

    Logs

    Emby logs live at /var/lib/emby/logs/. The most useful file is embyserver.txt:

    bash
    sudo tail -f /var/lib/emby/logs/embyserver.txt

    Or follow systemd-level events:

    bash
    sudo journalctl -u emby-server -f

    FAQ

    Is Emby free to use?

    Emby Server is free for core streaming. Advanced features such as mobile sync, Cinema Mode, DVR, and hardware-accelerated transcoding on remote clients require an Emby Premiere subscription. The server software itself is freely installable on Ubuntu.

    How much storage do I need on my VPS?

    Budget roughly 4-8 GB per 1080p movie and 20-40 GB per 4K movie. For a 500-movie library, plan on at least 2-4 TB. Many users keep Emby's metadata and database on fast NVMe on the VPS itself, and mount bulk media from a block storage volume or an S3-compatible object store via rclone mount.

    Does Emby support hardware transcoding on a VPS?

    Yes, when the underlying hypervisor exposes an Intel iGPU (QSV) or a passed-through GPU through /dev/dri/renderD128. On most shared VPS plans only software (libx264) transcoding is available, which is CPU-heavy. If hardware acceleration matters to you, pick a plan with a dedicated GPU or confirmed IGP passthrough before deploying.

    Can I run Emby and Jellyfin side by side?

    Yes, but it is rarely worth it. They use similar default ports (Emby on 8096, Jellyfin also on 8096 — one must be changed), separate config directories, and duplicate the entire metadata cache. Running both doubles CPU, RAM, and disk usage. Most self-hosters pick one and stick with it.

    Should I choose Emby, Plex, or Jellyfin?

    Emby balances polish and self-hosting control; Plex offers the slickest UI but depends on Plex cloud accounts and routes some traffic through Plex.tv; Jellyfin is fully open source with no paid tier, though its smart-TV clients lag behind. If you want a premium-feel product you mostly own, Emby is the middle ground.

    Is DLNA safe to enable on a public VPS?

    DLNA is unauthenticated by design and should never be exposed to the public internet. Keep it bound to the local subnet or to a WireGuard/Tailscale interface and firewall ports 1900/udp and 7359/udp on the public interface. If you only stream via the Emby web app and native clients (which authenticate), DLNA is not needed at all on a VPS — disable it entirely.

    How do I back up an Emby Server?

    Stop the service and back up the entire /var/lib/emby directory:

    bash
    sudo systemctl stop emby-server
    sudo tar czf /root/emby-backup-$(date +%F).tar.gz /var/lib/emby
    sudo systemctl start emby-server

    It contains the database, metadata cache, user accounts, plugins, and server configuration. Pair this with a snapshot schedule on your VPS for point-in-time recovery, and mirror the tarball to off-site storage (Backblaze B2, Hetzner Storage Box, AWS S3).

    Next Steps

    With Emby running behind TLS on a production-grade VPS, consider these add-ons to round out a full media stack:

    • Automate downloads with Sonarr and Radarr — end-to-end pipeline from release to playable file with zero manual work.
    • Add Bazarr for subtitles — auto-downloads subtitles in your chosen languages for every library item Sonarr and Radarr manage.
    • Set up Tautulli-style analytics — Emby ships its own Playback Reporting plugin under Dashboard → Plugins. Enable it to see who watches what, when, and from where.
    • Monitor uptime with Uptime Kuma — ping the public URL and alert to Telegram or email if Emby stops responding.
    • Mirror the library — for disaster recovery, sync /srv/media to a second VPS or a Hetzner Storage Box with rclone sync --fast-list.

    Need a bigger box? The CloudCore Professional plan delivers 6 vCPU, 12 GB RAM, 200 GB NVMe, and 1 Gbit/s unmetered traffic for EUR 19.99/month — enough headroom for Emby plus Sonarr, Radarr, Bazarr, and Prowlarr on a single VPS.
    >
    For deeper troubleshooting, the official Emby support site maintains an active forum and documentation portal.

    Was this article helpful?

    ← Back to Install GuidesBrowse all categories →

    Still have questions?

    Contact Support →Submit a Ticket