Containerized Media Management: Deploying Seerr for Automated Discovery and API-Driven Workflows


Containerized Media Management: Deploying Seerr for Automated Discovery and API-Driven Workflows

seerr-team/seerr

2026-02-23

If you’re running a media server, you know the headache of friends texting you at 2 AM asking, "Hey, can you add the latest season of that one show?" Seerr solves that by providing a beautiful, automated interface for those requests.

From an architecture perspective, Seerr is brilliant because it acts as a centralized orchestrator. Instead of giving everyone access to your backend (Plex/Jellyfin) or your "arr" apps (Sonarr/Radarr), you give them a safe, read-only frontend.

Decoupling
Users interact with Seerr; Seerr talks to the APIs of your other services.

Authentication
It integrates with Plex/Jellyfin, so users don't need a new set of credentials.

Automation
Once a request is approved, it automatically sends the instructions to your download clients. No manual clicking required.

As engineers, we love containers. It keeps the environment clean and makes updates a breeze. Here is a standard docker-compose.yml snippet to get you started.

services:
  seerr:
    image: fallenbagel/jellyseerr:latest # Using Jellyseerr for Jellyfin/Plex compatibility
    container_name: jellyseerr
    environment:
      - LOG_LEVEL=info
      - TZ=Asia/Tokyo
    volumes:
      - /path/to/appdata/config:/app/config
    ports:
      - 5055:5055
    restart: unless-stopped

Steps to deploy

Save the code above to a file.

Run docker-compose up -d.

Open your browser and head to http://localhost:5055.

If you want to build custom scripts (e.g., a Telegram bot that checks request status), Seerr has a robust API. Here’s a quick Python example of how you might fetch all pending requests

import requests

# Your Seerr URL and API Key (found in Settings > General)
BASE_URL = "http://your-server-ip:5055/api/v1"
API_KEY = "your_super_secret_api_key"

headers = {
    "X-Api-Key": API_KEY,
    "Content-Type": "application/json"
}

def get_pending_requests():
    response = requests.get(f"{BASE_URL}/request?take=10&skip=0&filter=pending", headers=headers)
    if response.status_code == 200:
        requests_data = response.json().get('results', [])
        for req in requests_data:
            print(f"User requested: {req['media']['externalServiceId']} - Status: {req['status']}")
    else:
        print(f"Error: {response.status_code}")

get_pending_requests()

Notifications
Use the "Notifications" feature to link it to Discord or Slack. You'll get a ping the second a friend requests a movie.

Auto-Approve
You can set rules so that trusted users (like yourself) get their requests approved and sent to the download queue instantly, while others require your manual "OK."

Discovery
It’s not just for requests! It has a "Trending" and "Recommended" section that helps you find what to watch next based on your current library.

It's essentially the "Glue" that makes a DIY media server feel like a professional Netflix-style experience.


seerr-team/seerr




Dockerized macOS for CI/CD and Cross-Platform Testing

Hey there! As a software engineer, you're probably used to a lot of different development environments. Sometimes, though


Trivy for Engineers: Finding Vulnerabilities in Go, Docker, and Kubernetes

Trivy helps you ensure the security of your software supply chain from a developer's perspective. It can be integrated into your CI/CD pipeline to automatically scan your code and container images for security issues before they are deployed


containerd: The Engine Driving Modern Container Runtimes

containerd is a core container runtime that manages the complete container lifecycle of its host system. It's an open-source project donated to the Cloud Native Computing Foundation (CNCF) and provides a robust


Termix: A Self-Hosted Web SSH Platform for Engineers

Termix, created by LukeGus, is a self-hosted, web-based server management platform. Think of it as a central hub for managing your servers


Architecting Autonomous Chatbots: A Deep Dive into AstrBot, Docker, and Python Plugins

Think of it as the "Swiss Army Knife" for building AI agents that actually live where people talk—whether that's Discord


Android-as-a-Service: Containerizing Your Emulator for Consistent Workflows

That’s where HQarroum/docker-android comes in. It’s essentially "Android-as-a-Service. "For a developer, this project solves three major headaches


Scaling with Plane: Deploying an Open-Source Linear Alternative with Docker

You've pointed out a very exciting project. Plane is a powerful, open-source project management tool designed to be a streamlined alternative to Jira or Linear


The Software Engineer's Secret Weapon: Taming Alert Storms with Alertmanager

Alertmanager is a standalone service that works alongside your Prometheus server. While Prometheus handles the monitoring (collecting metrics) and alert generation (deciding when an alert should fire based on PromQL rules), Alertmanager handles the alerts themselves


Neko: Self-Hosted Remote Browse for Engineers

At its core, m1k1o/neko is a solution that allows you to run a full-fledged web browser (like Chromium) within a Docker container


Running Windows Applications on Linux with winboat

As a developer, you often encounter situations where a client, a specific library, or a tool you need for a project only works on Windows