What Is a Media Request Management Service?

Setting up a media server is often the first step toward owning your content, reducing reliance on streaming services, and improving privacy. However, as your library grows and other users gain access, managing requests for new content quickly becomes a challenge.

A media request management service solves this by allowing users to:

  • Search for movies, TV shows, or music
  • Submit requests without direct access to backend tools
  • Track request approval and availability

This removes friction for users while keeping control firmly with the server owner.


What Are Your Options?

The available options depend largely on which media server you run. The most common platforms are:

  • Emby
  • Jellyfin
  • Plex

In my setup, I run Emby, so I’m primarily interested in solutions that integrate well with it.

The three most common media request management tools are:


Feature Comparison

Feature Overseerr Seerr Ombi
Supported Media Servers Plex Emby, Jellyfin, Plex Emby, Jellyfin, Plex
User Import / Sync
Reverse Proxy Support
Custom Branding ✅ (CSS & branding)
Database Options SQLite SQLite, PostgreSQL SQLite, MySQL/MariaDB, PostgreSQL
Mobile App ✅ (iOS, Android)
Docker Image Size ~747 MB ~1.3 GB ~302 MB
RAM Usage ~300–800 MB ~300–800 MB ~250–500 MB

All three services are commonly deployed via Docker, making them easy to integrate into an existing homelab stack.


Overseerr

Overseerr is a well-designed request platform, but it is Plex-only. Because my environment is based on Emby, this immediately rules it out for my use case.

Example Docker Compose:

volumes:
  config:

services:
  overseerr:
    image: sctx/overseerr:latest
    container_name: overseerr
    environment:
      - LOG_LEVEL=debug
      - TZ=Etc/UTC
    ports:
      - 5055:5055
    volumes:
      - config:/app/config
    restart: unless-stopped

Seerr

Previously known as Jellyseerr, Seerr is a fork of Overseerr that extends support to Emby and Jellyfin.

Docker Compose example:

volumes:
  config:

services:
  seerr:
    image: ghcr.io/seerr-team/seerr:latest
    init: true
    container_name: seerr
    environment:
      - LOG_LEVEL=debug
      - TZ=Etc/UTC
      - PORT=5055 # optional
    ports:
      - 5055:5055
    volumes:
      - config:/app/config
    restart: unless-stopped

Seerr supports the following DVR Integrations:

Media Type Intgration
TV Sonarr
Movies Radarr

Ombi

Ombi is one of the most mature and feature-rich request management platforms available. It supports Emby, Jellyfin, and Plex, and offers official mobile applications.

Docker Compose example:

volumes:
  config:

services:
  ombi:
    image: lscr.io/linuxserver/ombi:latest
    container_name: ombi
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
      - BASE_URL=/ # optional
    ports:
      - 3579:3579
    volumes:
      - config:/config
    restart: unless-stopped

Seerr supports the following DVR Integrations:

Media Type Intgration
TV Sonarr, Sickrage
Movies Radarr, CouchPotato
Music Lidarr

Ombi also provides:

  • Bulk user importing and configuration
  • Music library requests
  • Advanced searching
  • Newsletters and notifications
  • Issue reporting

Using MariaDB

For larger deployments, Ombi recommends migrating from SQLite to MySQL or MariaDB for improved performance and stability, as it:

  • Handles multiple concurrent users more effectively
  • Avoids database locking issues common with SQLite
  • Scales far better as request volume grows

We can configure this within a single Docker Compose file:

volumes:
  config:
  db:

services:
  ombi:
    image: lscr.io/linuxserver/ombi:latest
    container_name: ombi
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
      - BASE_URL=/ # optional
    ports:
      - 3579:3579
    volumes:
      - config:/config
    restart: unless-stopped
    depends_on: 
      - db

  db:
    image: mariadb:latest
    container_name: ombi-db
    environment:
      - MARIADB_ROOT_PASSWORD=Super!SecretPa55word
      - PGID=1000
      - PUID=1000
      - TZ=Etc/UTC
    volumes:
      -  db:/var/lib/mysql
    restart: unless-stopped

After starting the stack, create the database and user:

mariadb -u root -p
CREATE DATABASE IF NOT EXISTS `ombi` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'ombi'@'%' IDENTIFIED BY 'ombi';
GRANT ALL PRIVILEGES ON `ombi`.* TO 'ombi'@'%' WITH GRANT OPTION;

Within the Ombi web interface, select MariaDB during the setup wizard. A container restart will be required.

Once confirmed, remove the SQLite database files:

rm Ombi.db OmbiExternal.db OmbiSettings.db

Continue through the web interface wizard, then verify the DB configuration within Settings.


Conclusion

Each request management platform targets a slightly different audience:

  • Overseerr is ideal for Plex-only environments, but is effectively superseded by Seerr
  • Seerr brings Overseerr’s workflow to Emby and Jellyfin
  • Ombi offers the most complete feature set, broad DVR support, and mobile applications

For an Emby-based media server, Ombi stands out as the most flexible and mature choice, particularly in multi-user environments where long-term scalability matters.

After using Ombi for quite some time, although on paper it has everything I did notice that the general operation lacked in comparison to Seerr.

Seerr uses a HTML 5 native web interface so there isn’t really a requirement for a dedicated iOS or Android app and using the web interface on both desktop and mobile is sleek with everything you would need at your fingertips and working perfectly, whereas I noticed some UI glitches when using Ombi.

My suggestion would be to deploy Seerr.