Files
ansible-playbooks/roles/seerr

Seerr Role

Deploys Seerr - the media request manager (successor of Overseerr/Jellyseerr) - using Podman with k8s files. Uses the official ghcr.io/seerr-team/seerr image.

Prerequisites

The podman role must have been applied to the host first. Order it before seerr in the playbook for fresh installs.

Role Variables

See defaults/main.yml for all available variables and their default values.

First Login

The web UI listens on http://<host>:{{ seerr_port }}. Complete the setup wizard, then point Seerr at Jellyfin and the *arr services. Because Seerr runs in a container, reach the host-side services via the pasta gateway ({{ podman_gw_gateway }}, default 100.64.0.1) or host.containers.internal, not localhost.

Storage

  • seerr_config_dir - SQLite database, users, requests and settings. Backed up.

The image runs as the unprivileged node user (UID/GID 1000). The pod maps the rootless pod user onto that UID via the io.podman.annotations.userns annotation, so the host-owned config directory is writable.

Ports

Port Protocol Purpose
seerr_port (5055) tcp Web UI

Nginx Reverse Proxy

Set seerr_nginx_enabled: true and seerr_nginx_hostname to expose the web UI over HTTPS. Certificates are provisioned via the shared nginx role's certbot tasks. If the hostname is not the apex, point a DNS record at the host first.

Backup

The role exposes seerr_backup_paths (config only). Add a job in the host inventory to include it:

backup_jobs:
    - name: seerr
      repositories: [next_s3]
      paths: "{{ seerr_backup_paths }}"

Troubleshooting

systemctl --user status seerr
journalctl --user -u seerr -f
podman logs seerr