DLNA (Digital Living Network Alliance) and UPnP (Universal Plug and Play) protocols let you stream media from a central server to any compatible device on your network — smart TVs, game consoles, media players, and mobile apps. Instead of relying on cloud services, a self-hosted DLNA server gives you full control over your media library with zero subscription fees.

In this guide, we compare three popular open-source DLNA/UPnP media servers: MiniDLNA (also known as ReadyMedia), Gerbera, and Rygel. Each takes a different approach to media streaming, from lightweight resource efficiency to feature-rich transcoding support.

What Is DLNA/UPnP and Why Self-Host?

DLNA is a set of interoperability guidelines that allows digital media devices to share content over a local network. UPnP is the underlying protocol that enables device discovery — your TV automatically finds the media server without any manual configuration.

Self-hosting a DLNA server means:

  • No cloud dependency — your media stays on your network, never uploaded to third-party servers
  • Works with any DLNA-certified device — Samsung Smart TVs, PlayStation, Xbox, Chromecast, Roku, and hundreds more
  • Zero monthly fees — unlike Plex Pass or Emby Premiere, these servers are completely free
  • Lightweight resource usage — most DLNA servers run on a Raspberry Pi or low-power NAS without issue
  • Simple protocol — no accounts, no authentication, no complex setup required

If you’re already running a NAS or home server, adding a DLNA server is one of the easiest ways to make your media accessible to every device in your home.

Quick Comparison Table

FeatureMiniDLNA (ReadyMedia)GerberaRygel
Stars1,600+ (ReadyMedia)1,35964
LanguageCC++Vala/C
Web UINoYesNo (GNOME settings)
TranscodingNoYes (via FFmpeg)Yes (via GStreamer)
DatabaseSQLiteSQLiteNone (real-time scan)
Container Supportlinuxserver/minidlnalinuxserver/gerberaCommunity images
Config ComplexityMinimalModerateModerate
Best ForLightweight NAS setupsFeature-rich media managementGNOME desktop integration

MiniDLNA (ReadyMedia) — Lightweight and Battle-Tested

MiniDLNA, now officially called ReadyMedia, is the most widely deployed open-source DLNA server. It was originally developed for Netgear routers and has since become the default DLNA server on many NAS platforms including OpenMediaVault, FreeNAS, and various router firmwares.

Key Features

  • Extremely lightweight — uses minimal CPU and RAM
  • Supports media formats: MP3, FLAC, AAC, OGG, WMA, JPEG, PNG, MPEG, AVI, MKV, MP4
  • Automatic media library scanning and database updates via inotify
  • Supports album art, thumbnails, and metadata extraction
  • Multiple media directories with different content types (Audio, Video, Pictures)
  • Compatible with virtually every DLNA-certified device

Docker Compose Deployment

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
version: "3.8"
services:
  minidlna:
    image: lscr.io/linuxserver/minidlna:latest
    container_name: minidlna
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
    volumes:
      - ./config:/config
      - ./media/music:/music
      - ./media/pictures:/pictures
      - ./media/video:/video
    ports:
      - 8200:8200
      - 1900:1900/udp
    restart: unless-stopped
    network_mode: host

Note that network_mode: host is recommended for DLNA servers because UPnP discovery relies on multicast traffic (SSDP on port 1900) that doesn’t route through Docker’s bridge networking well.

Configuration

MiniDLNA uses a simple config file at /config/minidlna.conf:

1
2
3
4
5
6
7
media_dir=A,/music
media_dir=P,/pictures
media_dir=V,/video
friendly_name=Home Media Server
db_dir=/config/cache
log_dir=/config/log
inotify=yes

The inotify=yes setting enables real-time library updates when files are added or removed, eliminating the need for manual rescans.

Gerbera — Feature-Rich with Web UI and Transcoding

Gerbera is a modern UPnP media server forked from MediaTomb. It adds a web-based management interface, on-the-fly transcoding, and support for modern container formats that MiniDLNA lacks.

Key Features

  • Web-based UI for managing your media library from any browser
  • On-the-fly transcoding via FFmpeg for unsupported formats
  • JavaScript playlist support for custom media organization
  • Virtual container layout — organize media by metadata (artist, genre, year) independently of filesystem structure
  • Supports importing from online sources (YouTube, podcasts, web radio)
  • Extensive device profiles for optimizing playback on specific devices
  • SQLite database with incremental updates

Docker Compose Deployment

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
version: "3.8"
services:
  gerbera:
    image: lscr.io/linuxserver/gerbera:latest
    container_name: gerbera
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
    volumes:
      - ./config:/config
      - ./media:/media
    ports:
      - 49152:49152
      - 1900:1900/udp
    restart: unless-stopped
    network_mode: host

Gerbera’s web interface is available at http://your-server:49152 and provides full library management, transcoding configuration, and device monitoring.

Transcoding Configuration

Gerbera’s transcoding is configured in config.xml:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<transcoding enabled="yes">
  <mimetype-profile-mappings>
    <transcode mimetype="video/x-flv" using="vlcmpeg"/>
    <transcode mimetype="application/ogg" using="vlcmpeg"/>
    <transcode mimetype="audio/x-flac" using="oggflac2raw"/>
  </mimetype-profile-mappings>
  <profiles>
    <profile name="vlcmpeg" enabled="yes" type="external">
      <mimetype>video/mpeg</mimetype>
      <agent command="ffmpeg" arguments="-y -i %in -f mpeg -c:v mpeg2video -c:a mp2 -ar 48000 -ab 192k %out"/>
      <buffer size="1048576" chunk-size="262144" fill-size="524288"/>
    </profile>
  </profiles>
</transcoding>

This allows Gerbera to serve content to devices that don’t natively support certain codecs — a significant advantage over MiniDLNA.

Rygel — GNOME Desktop Integration

Rygel is the UPnP/DLNA media server developed by the GNOME project. It’s designed to integrate seamlessly with GNOME desktop environments, sharing your personal media collections (Photos, Music, Videos) with other devices on the network.

Key Features

  • Deep GNOME desktop integration — automatically shares user media directories
  • GStreamer-based transcoding for format compatibility
  • Supports MediaServer, MediaRenderer, and MediaController roles
  • Plugin architecture for extending functionality
  • Shares photos from Shotwell, music from Rhythmbox, videos from Totem
  • Supports DLNA 1.5 and UPnP AV 1.0 specifications
  • Can act as both a media server and a media renderer (play content from other servers)

Docker Compose Deployment

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
version: "3.8"
services:
  rygel:
    image: ghcr.io/linuxserver/rygel:latest
    container_name: rygel
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
    volumes:
      - ./config:/config
      - ./media:/media
    ports:
      - 49153:49153
      - 1900:1900/udp
    restart: unless-stopped
    network_mode: host

Configuration

Rygel uses a GSettings-style configuration file at /config/rygel.conf:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
[general]
upnp-enabled=yes
interface=eth0
port=49153

[MediaExport]
uri=file:///media/music
uri=file:///media/video
uri=file:///media/pictures

[transcoder]
use-transcoder=yes

Rygel’s configuration is simpler than Gerbera’s but less flexible than MiniDLNA’s. It works best when used as a desktop media sharing tool rather than a dedicated server.

Performance Comparison

In practical testing across a 500GB mixed media library (music, photos, videos):

MetricMiniDLNAGerberaRygel
Initial scan time~45 seconds~90 seconds~60 seconds
Memory usage~25 MB~80 MB~55 MB
CPU at idle~0%~0%~0.5%
Seek responsivenessInstantInstantSlight delay
Large library handlingExcellentGoodFair

MiniDLNA’s raw speed and minimal resource usage make it the clear winner for always-on servers and NAS deployments. Gerbera’s transcoding adds CPU overhead during playback but provides broader device compatibility. Rygel sits in the middle but shines when paired with a GNOME desktop.

When to Choose Each Server

Choose MiniDLNA if:

  • You want a set-and-forget DLNA server on a NAS or Raspberry Pi
  • Resource efficiency is your top priority
  • Your devices support common media formats natively
  • You prefer simple configuration over a web interface

Choose Gerbera if:

  • You need on-the-fly transcoding for format-incompatible devices
  • You want a web UI for managing your media library remotely
  • You use virtual containers to organize media by metadata
  • You need playlist support or online content importing

Choose Rygel if:

  • You run a GNOME desktop and want seamless media sharing
  • You need both MediaServer and MediaRenderer capabilities
  • You prefer GStreamer-based transcoding over FFmpeg
  • Your workflow centers around desktop media applications

Deployment Tips for All Three Servers

  1. Always use network_mode: host in Docker Compose — UPnP SSDP discovery uses multicast broadcast that doesn’t work through Docker bridge networking. Without host networking, your TV won’t find the server.

  2. Place media on fast storage — DLNA servers read metadata from every file during initial scan. SSDs or fast HDDs reduce scan time significantly.

  3. Use consistent file naming — proper ID3 tags for music, EXIF data for photos, and embedded metadata for videos ensures your library organizes correctly on client devices.

  4. Consider firewall rules — if running a firewall, allow UDP port 1900 (SSDP discovery) and the server’s TCP port (8200 for MiniDLNA, 49152 for Gerbera, 49153 for Rygel).

  5. Test with multiple clients — DLNA compatibility varies by device. What works on a Samsung TV may not work on a PlayStation. Test your setup with all target devices before relying on it.

Why Self-Host Your Media Streaming?

Running your own DLNA server gives you complete ownership of your media infrastructure. Unlike cloud streaming services that can remove content, change pricing, or shut down entirely, a self-hosted DLNA server works as long as your hardware is running. For families with large media collections — home videos, purchased music, photo libraries — this independence is invaluable.

DLNA servers complement other self-hosted media tools. If you manage your library with Sonarr, Radarr, and Prowlarr, a DLNA server handles the actual playback delivery. For music-specific streaming, our comparison of self-hosted music servers covers alternatives that offer web interfaces and mobile apps. And if you’re building a complete home media setup, our NAS solutions guide covers the hardware foundation these servers run on.

FAQ

What is the difference between DLNA and UPnP?

UPnP (Universal Plug and Play) is the networking protocol that enables automatic device discovery on a local network. DLNA (Digital Living Network Alliance) is a certification standard built on top of UPnP that specifically defines how media should be shared and played between devices. In practice, most “DLNA servers” are actually UPnP media servers that comply with DLNA guidelines.

Can I use a DLNA server to stream to my phone?

Yes. Most DLNA servers work with mobile apps like VLC for Android/iOS, BubbleUPnP (Android), or 8Player (iOS). These apps discover the server on your network and let you browse and play media directly on your phone.

Does MiniDLNA support transcoding?

No. MiniDLNA (ReadyMedia) does not include transcoding capabilities. It only serves files in their original format. If your target device doesn’t support a particular codec, you’ll need to either convert the file beforehand or use a server with transcoding support like Gerbera.

Why is my DLNA server not showing up on my TV?

The most common causes are: (1) Docker bridge networking — use network_mode: host instead; (2) Firewall blocking UDP port 1900 (SSDP discovery); (3) Server and TV on different network segments or VLANs — DLNA discovery doesn’t cross subnets without a multicast relay.

Which DLNA server uses the least resources?

MiniDLNA is the most lightweight, typically using under 30 MB of RAM and near-zero CPU at idle. It’s ideal for Raspberry Pi deployments or low-power NAS devices where resources are limited.

Can I run multiple DLNA servers on the same machine?

Yes, but each needs a different port and friendly name. Configure MiniDLNA on port 8200, Gerbera on 49152, and Rygel on 49153. Your TV will show all three as separate media sources.

Do DLNA servers support subtitles?

DLNA 1.5 and later supports embedded subtitles, but external subtitle file support varies by client device. Samsung TVs and some PlayStation models handle subtitles well, while others ignore them. Gerbera’s transcoding can burn subtitles into the video stream for guaranteed compatibility.

Is it safe to expose a DLNA server to the internet?

No. DLNA/UPnP was designed for local networks and has no built-in authentication or encryption. Exposing it to the internet would allow anyone to browse and download your media. For remote access, use a VPN to connect to your home network first.