### Install Dependencies and Start Development Server Source: https://github.com/seerr-team/seerr/blob/develop/CONTRIBUTING.md Install project dependencies using pnpm and start the development server. Alternatively, Docker can be used. ```bash pnpm install pnpm dev ``` -------------------------------- ### Build and Start Server for Migration Generation Source: https://github.com/seerr-team/seerr/blob/develop/CONTRIBUTING.md Steps to switch to the develop branch, install dependencies, build the project, and start the server. This prepares the environment for TypeORM to generate initial migrations. ```bash git switch develop pnpm i rm -r .next dist; pnpm build pnpm start DB_TYPE="postgres" DB_USER=postgres DB_PASS=postgres pnpm start ``` -------------------------------- ### Create and Navigate to Working Directory Source: https://github.com/seerr-team/seerr/blob/develop/docs/getting-started/buildfromsource.mdx Create the directory where Seerr will be installed and change into it. This is the initial setup step for the source build on Unix-like systems. ```bash sudo mkdir -p /opt/seerr && cd /opt/seerr ``` -------------------------------- ### Enable and Start Systemd Service (Linux) Source: https://github.com/seerr-team/seerr/blob/develop/docs/getting-started/buildfromsource.mdx Enable the Seerr systemd service to start automatically on boot and then start the service immediately. ```bash sudo systemctl enable seerr sudo systemctl start seerr ``` -------------------------------- ### Install Seerr with yay Source: https://github.com/seerr-team/seerr/blob/develop/docs/getting-started/third-parties/aur.mdx Use this command to install Seerr if you are using the `yay` AUR helper. Ensure `yay` is installed and up-to-date before running. ```bash yay -S seerr ``` -------------------------------- ### Install Seerr with paru Source: https://github.com/seerr-team/seerr/blob/develop/docs/getting-started/third-parties/aur.mdx Use this command to install Seerr if you are using the `paru` AUR helper. Ensure `paru` is installed and up-to-date before running. ```bash paru -S seerr ``` -------------------------------- ### Start Seerr Application Source: https://github.com/seerr-team/seerr/blob/develop/docs/getting-started/buildfromsource.mdx Run the built Seerr application. This command starts the server, making it accessible via the configured port. ```bash pnpm start ``` -------------------------------- ### Start Seerr with PM2 Source: https://github.com/seerr-team/seerr/blob/develop/docs/getting-started/buildfromsource.mdx Start the Seerr application using PM2, setting the Node environment to production and naming the process 'seerr'. ```bash NODE_ENV=production pm2 start dist/index.js --name seerr ``` -------------------------------- ### Configure NSSM Service to Start on Boot Source: https://github.com/seerr-team/seerr/blob/develop/docs/getting-started/buildfromsource.mdx Sets the NSSM-managed Seerr service to automatically start when the computer boots up. ```powershell nssm set Seerr Start SERVICE_AUTO_START ``` -------------------------------- ### Start Seerr NSSM Service Source: https://github.com/seerr-team/seerr/blob/develop/docs/getting-started/buildfromsource.mdx Starts the Seerr service that was previously installed using NSSM. ```powershell nssm start Seerr ``` -------------------------------- ### Install Dependencies Source: https://github.com/seerr-team/seerr/blob/develop/gen-docs/README.md Installs project dependencies using pnpm. ```bash pnpm install ``` -------------------------------- ### Install Seerr using Nix Source: https://github.com/seerr-team/seerr/blob/develop/docs/getting-started/nixpkg.mdx Run this command after updating your `configuration.nix` to apply the changes and install Seerr. This command rebuilds your NixOS system. ```bash nixos-rebuild switch ``` -------------------------------- ### Load and Start macOS Launchd Service Source: https://github.com/seerr-team/seerr/blob/develop/docs/getting-started/buildfromsource.mdx Load the Seerr launchd service definition and then start the service. The `launchctl load` command also ensures the service is loaded on system startup. ```bash sudo launchctl load ~/Library/LaunchAgents/com.seerr.plist sudo launchctl start com.seerr sudo lauchctl load ``` -------------------------------- ### Install Project Dependencies Source: https://github.com/seerr-team/seerr/blob/develop/docs/getting-started/buildfromsource.mdx Install all necessary project dependencies using pnpm. The `CYPRESS_INSTALL_BINARY=0` environment variable is used to prevent Cypress from downloading its binary during installation, and `--frozen-lockfile` ensures reproducible builds. ```bash CYPRESS_INSTALL_BINARY=0 pnpm install --frozen-lockfile ``` -------------------------------- ### Start PostgreSQL Docker Container Source: https://github.com/seerr-team/seerr/blob/develop/CONTRIBUTING.md Use this command to start a PostgreSQL Docker container for development. Ensure the port is correctly mapped. ```bash sudo docker run --name postgres-seerr -e POSTGRES_PASSWORD=postgres -d -p 127.0.0.1:5432:5432/tcp postgres:latest ``` -------------------------------- ### Start Services with Docker Compose Source: https://github.com/seerr-team/seerr/blob/develop/docs/getting-started/docker.mdx Command to start all services defined in the current directory's `compose.yaml` file in detached mode. ```bash docker compose up -d ``` -------------------------------- ### Install Seerr using Helm Chart Source: https://github.com/seerr-team/seerr/blob/develop/docs/getting-started/kubernetes.mdx Use this command to install the official Seerr Helm chart. Ensure you have Helm installed and configured for your Kubernetes cluster. ```bash helm install seerr oci://ghcr.io/seerr-team/seerr/seerr-chart ``` -------------------------------- ### Install Project Dependencies Source: https://github.com/seerr-team/seerr/blob/develop/docs/getting-started/buildfromsource.mdx Installs global Node.js environment variables and project dependencies using pnpm. The `--frozen-lockfile` flag ensures that the exact versions specified in the lockfile are installed. ```powershell npm install -g win-node-env $env:CYPRESS_INSTALL_BINARY = 0; pnpm install --frozen-lockfile ``` -------------------------------- ### Build the Project Source: https://github.com/seerr-team/seerr/blob/develop/docs/getting-started/buildfromsource.mdx Compile the Seerr project's source code into executable files. This step is necessary after installing dependencies to prepare the application for running. ```bash pnpm build ``` -------------------------------- ### Enable Seerr Service in Nix Configuration Source: https://github.com/seerr-team/seerr/blob/develop/docs/getting-started/nixpkg.mdx Add this configuration to your `configuration.nix` file to enable the Seerr service. This is a prerequisite for installing Seerr via Nix. ```nix { config, pkgs, ... }: { services.seerr.enable = true; } ``` -------------------------------- ### Start Seerr with PM2 Source: https://github.com/seerr-team/seerr/blob/develop/docs/getting-started/buildfromsource.mdx Launches Seerr using PM2, setting the Node.js environment to production and naming the process 'seerr'. ```powershell $env:NODE_ENV = "production"; pm2 start dist/index.js --name seerr ``` -------------------------------- ### Ensure PM2 Starts on Boot Source: https://github.com/seerr-team/seerr/blob/develop/docs/getting-started/buildfromsource.mdx Configure PM2 to start automatically when the system boots up. This command typically generates a startup script and provides instructions to enable it. ```bash pm2 startup ``` -------------------------------- ### Run Seerr with Docker CLI (Unix) Source: https://github.com/seerr-team/seerr/blob/develop/docs/migration-guide.mdx Example command for running Seerr using the Docker CLI. The '--init' flag is required for proper initialization. This includes essential environment variables, port mapping, and volume configuration. ```bash docker run -d \ ``` ```bash --name seerr \ ``` ```bash --init \ ``` ```bash -e LOG_LEVEL=debug \ ``` ```bash -e TZ=Asia/Tashkent \ ``` ```bash -e PORT=5055 \ ``` ```bash -p 5055:5055 \ ``` ```bash -v /path/to/appdata/config:/app/config \ ``` ```bash --restart unless-stopped \ ``` ```bash ghcr.io/seerr-team/seerr:latest ``` -------------------------------- ### Install PM2 Source: https://github.com/seerr-team/seerr/blob/develop/docs/getting-started/buildfromsource.mdx Install PM2, a production process manager for Node.js applications, globally using npm. This is a prerequisite for managing Seerr with PM2. ```bash npm install -g pm2 ``` -------------------------------- ### Run Seerr with Docker Compose (Unix) Source: https://github.com/seerr-team/seerr/blob/develop/docs/migration-guide.mdx Example Docker Compose configuration for running Seerr. Ensure 'init: true' is set for proper initialization. This configuration includes environment variables, port mapping, volume mounting, and health checks. ```yaml --- ``` ```yaml services: ``` ```yaml seerr: ``` ```yaml image: ghcr.io/seerr-team/seerr:latest ``` ```yaml init: true ``` ```yaml container_name: seerr ``` ```yaml environment: ``` ```yaml - LOG_LEVEL=debug ``` ```yaml - TZ=Asia/Tashkent ``` ```yaml - PORT=5055 #optional ``` ```yaml ports: ``` ```yaml - 5055:5055 ``` ```yaml volumes: ``` ```yaml - /path/to/appdata/config:/app/config ``` ```yaml healthcheck: ``` ```yaml test: wget --no-verbose --tries=1 --spider http://localhost:5055/api/v1/settings/public || exit 1 ``` ```yaml start_period: 20s ``` ```yaml timeout: 3s ``` ```yaml interval: 15s ``` ```yaml retries: 3 ``` ```yaml restart: unless-stopped ``` -------------------------------- ### Set Folder Permissions (Unraid Default) Source: https://github.com/seerr-team/seerr/blob/develop/docs/getting-started/third-parties/unraid.mdx Apply the correct ownership to the Seerr configuration directory for the 'Unraid Default' installation. ```bash chown -R 99:100 /mnt/user/appdata/seerr ``` -------------------------------- ### Set Folder Permissions (Seerr Default) Source: https://github.com/seerr-team/seerr/blob/develop/docs/getting-started/third-parties/unraid.mdx Apply the correct ownership to the Seerr configuration directory for the 'Seerr Default' installation. ```bash chown -R 1000:1000 /mnt/user/appdata/seerr ``` -------------------------------- ### Install Seerr as an NSSM Service Source: https://github.com/seerr-team/seerr/blob/develop/docs/getting-started/buildfromsource.mdx Configures Seerr to run as a Windows service using NSSM (Non-Sucking Service Manager). This involves installing the service, setting its application directory, and configuring environment variables. ```powershell nssm install Seerr "C:\Program Files\nodejs\node.exe" "C:\seerr\dist\index.js" nssm set Seerr AppDirectory "C:\seerr" nssm set Seerr AppEnvironmentExtra NODE_ENV=production ``` -------------------------------- ### Access Seerr URL Source: https://github.com/seerr-team/seerr/blob/develop/docs/getting-started/third-parties/synology.mdx Access Seerr via its IP address and default port after installation. ```text http://:5055 ``` -------------------------------- ### Backup PostgreSQL Database Source: https://github.com/seerr-team/seerr/blob/develop/docs/using-seerr/backups.md Dump the PostgreSQL database to a SQL file for backup. Ensure you replace placeholders with your actual database credentials and desired output path. This command requires the `postgresql-client` to be installed. ```bash pg_dump -U -d -f /tmp/seerr_db.sql ``` -------------------------------- ### Verify Podman/Skopeo Image Signature Source: https://github.com/seerr-team/seerr/blob/develop/docs/using-seerr/advanced/verifying-signed-artifacts.mdx Inspect a container image's digest using Skopeo and verify its signature with Cosign. This is an alternative for users not using Docker. Requires Skopeo and Cosign to be installed. ```bash DIGEST=$(skopeo inspect docker://ghcr.io/seerr-team/seerr/seerr-chart:3.0.0 --format '{{.Digest}}') cosign verify ghcr.io/seerr-team/seerr/seerr-chart@"$DIGEST" \ --certificate-identity-regexp "https://github.com/seerr-team/seerr/.github/workflows/helm.yml@refs/heads/main" \ --certificate-oidc-issuer "https://token.actions.githubusercontent.com" ``` -------------------------------- ### Verify Seerr Service Status Source: https://github.com/seerr-team/seerr/blob/develop/docs/getting-started/nixpkg.mdx After the NixOS rebuild is complete, use this command to check if the Seerr service is running correctly. This helps confirm a successful installation. ```bash systemctl status seerr ``` -------------------------------- ### Verify Docker Image Attestation Source: https://github.com/seerr-team/seerr/blob/develop/docs/using-seerr/advanced/verifying-signed-artifacts.mdx Verify the CycloneDX attestation for a Docker image using Cosign. This confirms the software bill of materials (SBOM) associated with the image is authentic. Requires Docker and Cosign to be installed. ```bash DIGEST=$(docker buildx imagetools inspect ghcr.io/seerr-team/seerr/seerr-chart:3.0.0 --format '{{json .Manifest.Digest}}' | tr -d '"') cosign verify-attestation ghcr.io/seerr-team/seerr/seerr-chart@"$DIGEST" \ --type cyclonedx \ --certificate-identity-regexp "https://github.com/seerr-team/seerr/.github/workflows/helm.yml@refs/heads/main" \ --certificate-oidc-issuer "https://token.actions.githubusercontent.com" ``` -------------------------------- ### Create and Navigate to Working Directory Source: https://github.com/seerr-team/seerr/blob/develop/docs/getting-started/buildfromsource.mdx Sets up the project directory and changes the current directory to it. Ensure you have the necessary permissions to create directories. ```powershell mkdir C:\seerr cd C:\seerr ``` -------------------------------- ### Build pgloader from Source Source: https://github.com/seerr-team/seerr/blob/develop/docs/extending-seerr/database-config.mdx Instructions for cloning the pgloader repository, checking out a specific version, and building it from source. This is an alternative if you prefer not to use Docker. ```bash # Clone the repository and checkout the working version git clone https://github.com/dimitri/pgloader.git cd pgloader git fetch origin pull/1531/head:pr-1531 git checkout pr-1531 # Follow the official installation instructions # See: https://github.com/dimitri/pgloader/blob/master/INSTALL.md ``` -------------------------------- ### Update PNPM Installation Source: https://github.com/seerr-team/seerr/blob/develop/gen-docs/blog/2026-02-10/seerr-release.md If you are building Seerr from source or contributing, update your local PNPM installation to v10. This command updates PNPM to the latest version. ```bash pnpm self-update ``` -------------------------------- ### Create and Chown Appdata Folder (Docker CLI) Source: https://github.com/seerr-team/seerr/blob/develop/docs/getting-started/docker.mdx Before running the container, create the directory for persistent configuration and ensure it has the correct ownership for the node user (UID 1000). ```bash # Create the appdata folder mkdir /path/to/appdata/config # Chown the folder as the container runs as the `node` user (UID 1000). chown -R 1000:1000 /path/to/appdata/config ``` -------------------------------- ### Create Config Directory (Seerr Default) Source: https://github.com/seerr-team/seerr/blob/develop/docs/getting-started/third-parties/unraid.mdx Use this command to create the necessary configuration directory for Seerr when using the 'Seerr Default' permission method. ```bash mkdir -p /mnt/user/appdata/seerr ``` -------------------------------- ### Verify PNPM Version Source: https://github.com/seerr-team/seerr/blob/develop/gen-docs/blog/2026-02-10/seerr-release.md After updating PNPM, verify that you are running version 10.x.x by checking the installed version. ```bash pnpm -v ``` -------------------------------- ### Enable Nginx Site Configuration Source: https://github.com/seerr-team/seerr/blob/develop/docs/extending-seerr/reverse-proxy.mdx Create a symbolic link to enable the Nginx site configuration in sites-enabled. ```bash sudo ln -s /etc/nginx/sites-available/seerr.example.com.conf /etc/nginx/sites-enabled/seerr.example.com.conf ``` -------------------------------- ### Generate Database Migrations Source: https://github.com/seerr-team/seerr/blob/develop/CONTRIBUTING.md Commands to generate TypeORM migrations for both SQLite and PostgreSQL. Ensure you are on a feature branch and have installed dependencies. ```bash git switch -c your-feature-branch pnpm i pnpm migration:generate server/migration/sqlite/YourMigrationName DB_TYPE="postgres" DB_USER=postgres DB_PASS=postgres pnpm migration:generate server/migration/postgres/YourMigrationName ``` -------------------------------- ### Run Seerr with Docker CLI (PowerShell) Source: https://github.com/seerr-team/seerr/blob/develop/docs/migration-guide.mdx PowerShell command to run Seerr. Includes the '--init' flag for initialization and uses a named volume for configuration persistence. Adjust ports and paths as needed. ```powershell docker run -d ` ``` ```powershell --name seerr ` ``` ```powershell --init ` ``` ```powershell -e LOG_LEVEL=debug ` ``` ```powershell -e TZ=Asia/Tashkent ` ``` ```powershell -e PORT=5055 ` ``` ```powershell -p 5055:5055 ` ``` ```powershell -v seerr-data:/app/config ` ``` ```powershell --restart unless-stopped ` ``` ```powershell ghcr.io/seerr-team/seerr:latest ``` -------------------------------- ### Nginx Subdomain Reverse Proxy Configuration Source: https://github.com/seerr-team/seerr/blob/develop/docs/extending-seerr/reverse-proxy.mdx Use this Nginx configuration for a subdomain setup with SSL. Ensure your SSL certificates are correctly placed. ```nginx server { listen 80; server_name seerr.example.com; return 301 https://$server_name$request_uri; } server { listen 443 ssl http2; server_name seerr.example.com; ssl_certificate /etc/letsencrypt/live/seerr.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/seerr.example.com/privkey.pem; proxy_set_header Referer $http_referer; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Real-Port $remote_port; proxy_set_header X-Forwarded-Host $host:$remote_port; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-Port $remote_port; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Ssl on; location / { proxy_pass http://127.0.0.1:5055; } } ``` -------------------------------- ### Create Systemd Service File (Linux) Source: https://github.com/seerr-team/seerr/blob/develop/docs/getting-started/buildfromsource.mdx Define a systemd service unit file for Seerr. This configuration specifies how the service should be managed, including environment variables, working directory, and the executable path. ```bash [Unit] Description=Seerr Service Wants=network-online.target After=network-online.target [Service] EnvironmentFile=/etc/seerr/seerr.conf Environment=NODE_ENV=production Type=exec Restart=on-failure WorkingDirectory=/opt/seerr ExecStart=/usr/bin/node dist/index.js [Install] WantedBy=multi-user.target ``` -------------------------------- ### Reset SQLite and PostgreSQL Databases Source: https://github.com/seerr-team/seerr/blob/develop/CONTRIBUTING.md Commands to remove existing SQLite and PostgreSQL databases and reset the PostgreSQL database. This is part of the migration setup process. ```bash rm config/db/db.* rm config/settings.* PGPASSWORD=postgres sudo docker exec -it postgres-seerr /usr/bin/psql -h 127.0.0.1 -U postgres -c "DROP DATABASE IF EXISTS seerr;" PGPASSWORD=postgres sudo docker exec -it postgres-seerr /usr/bin/psql -h 127.0.0.1 -U postgres -c "CREATE DATABASE seerr;" ``` -------------------------------- ### Update Seerr Repository Source: https://github.com/seerr-team/seerr/blob/develop/docs/getting-started/buildfromsource.mdx Fetches the latest changes from the Seerr repository's main branch. After pulling, you should follow the installation steps to rebuild and restart the application. ```bash git pull ``` -------------------------------- ### Configure DNS in Linux /etc/resolv.conf Source: https://github.com/seerr-team/seerr/blob/develop/docs/troubleshooting.mdx Manually edit the `/etc/resolv.conf` file in Linux to set custom DNS servers for improved TMDB API connectivity. ```bash nameserver 8.8.8.8 ``` ```bash nameserver 1.1.1.1 ``` ```bash nameserver 9.9.9.9 ``` -------------------------------- ### Restore PostgreSQL Database Source: https://github.com/seerr-team/seerr/blob/develop/docs/using-seerr/backups.md Restore a PostgreSQL database from a SQL dump file. This command requires the `postgresql-client` to be installed. Replace placeholders with your actual database credentials. ```bash pg_restore -U -d /tmp/seerr_db.sql ``` -------------------------------- ### Add Seerr Docker Container (Seerr Default) Source: https://github.com/seerr-team/seerr/blob/develop/docs/getting-started/third-parties/unraid.mdx Configuration details for adding the Seerr Docker container on Unraid using the 'Seerr Default' permission method. Ensure 'Extra Parameters' includes '--init --restart=unless-stopped'. ```bash --init --restart=unless-stopped ``` -------------------------------- ### Manage Seerr Service with PM2 Source: https://github.com/seerr-team/seerr/blob/develop/docs/getting-started/buildfromsource.mdx Common commands for managing the Seerr service when it's run under PM2, including starting, stopping, restarting, viewing logs, and checking status. ```powershell pm2 start seerr pm2 stop seerr pm2 restart seerr pm2 logs seerr pm2 status seerr ``` -------------------------------- ### Run Seerr Container with Docker CLI Source: https://github.com/seerr-team/seerr/blob/develop/docs/getting-started/docker.mdx This command starts the Seerr container in detached mode, configuring essential environment variables, port mapping, volume mounts for persistence, and health checks. ```bash docker run -d \ --name seerr \ --init \ -e LOG_LEVEL=debug \ -e TZ=Asia/Tashkent \ -e PORT=5055 \ -p 5055:5055 \ -v /path/to/appdata/config:/app/config \ --restart unless-stopped \ --health-cmd "wget --no-verbose --tries=1 --spider http://localhost:5055/api/v1/settings/public || exit 1" \ --health-start-period 20s \ --health-timeout 3s \ --health-interval 15s \ --health-retries 3 \ ghcr.io/seerr-team/seerr:latest ``` -------------------------------- ### Backup SQLite Database Source: https://github.com/seerr-team/seerr/blob/develop/docs/using-seerr/backups.md Use the SQLite CLI to create a backup of the database without stopping the application. The backup file is saved to `/tmp/seerr_db.sqlite3.bak`. ```bash sqlite3 db/db.sqlite3 ".backup '/tmp/seerr_db.sqlite3.bak'" ``` -------------------------------- ### Full Verification Flow for Seerr Container Images (Podman/Skopeo) Source: https://github.com/seerr-team/seerr/blob/develop/docs/using-seerr/advanced/verifying-signed-artifacts.mdx Perform a full verification flow for Seerr container images using Podman or Skopeo. This includes verifying the image signature, ensuring it matches the expected GitHub Actions workflow identity. ```bash DIGEST=$(skopeo inspect docker://ghcr.io/seerr-team/seerr:latest --format '{{.Digest}}') cosign verify ghcr.io/seerr-team/seerr@"$DIGEST" \ --certificate-identity-regexp "https://github.com/seerr-team/seerr/.github/workflows/release.yml@refs/tags/v.*" \ --certificate-oidc-issuer "https://token.actions.githubusercontent.com" ``` -------------------------------- ### Configure SQLite Database Source: https://github.com/seerr-team/seerr/blob/develop/docs/extending-seerr/database-config.mdx Use these environment variables to configure Seerr for SQLite. This is the default configuration. ```dotenv DB_TYPE=sqlite # Which DB engine to use, either sqlite or postgres. The default is sqlite. CONFIG_DIRECTORY="config" # (optional) The path to the config directory where the db file is stored. The default is "config". DB_LOG_QUERIES="false" # (optional) Whether to log the DB queries for debugging. The default is "false". ``` -------------------------------- ### Verify Docker Image Signature Source: https://github.com/seerr-team/seerr/blob/develop/docs/using-seerr/advanced/verifying-signed-artifacts.mdx Inspect the Docker image digest and verify its signature using Cosign. This ensures the image comes from the expected source and has not been tampered with. Requires Docker and Cosign to be installed. ```bash DIGEST=$(docker buildx imagetools inspect ghcr.io/seerr-team/seerr/seerr-chart:3.0.0 --format '{{json .Manifest.Digest}}' | tr -d '"') cosign verify ghcr.io/seerr-team/seerr/seerr-chart@"$DIGEST" \ --certificate-identity-regexp "https://github.com/seerr-team/seerr/.github/workflows/helm.yml@refs/heads/main" \ --certificate-oidc-issuer "https://token.actions.githubusercontent.com" ``` -------------------------------- ### Run Seerr with Docker Compose (Windows) Source: https://github.com/seerr-team/seerr/blob/develop/docs/migration-guide.mdx Docker Compose configuration for Windows environments. It uses a named volume 'seerr-data' for persistent configuration. Ensure 'init: true' is set. ```yaml --- ``` ```yaml services: ``` ```yaml seerr: ``` ```yaml image: ghcr.io/seerr-team/seerr:latest ``` ```yaml init: true ``` ```yaml container_name: seerr ``` ```yaml environment: ``` ```yaml - LOG_LEVEL=debug ``` ```yaml - TZ=Asia/Tashkent ``` ```yaml ports: ``` ```yaml - 5055:5055 ``` ```yaml volumes: ``` ```yaml - seerr-data:/app/config ``` ```yaml healthcheck: ``` ```yaml test: wget --no-verbose --tries=1 --spider http://localhost:5055/api/v1/settings/public || exit 1 ``` ```yaml start_period: 20s ``` ```yaml timeout: 3s ``` ```yaml interval: 15s ``` ```yaml retries: 3 ``` ```yaml restart: unless-stopped ``` ```yaml ``` ```yaml volumes: ``` ```yaml seerr-data: ``` ```yaml external: true ``` -------------------------------- ### Clone Repository and Set Upstream Source: https://github.com/seerr-team/seerr/blob/develop/CONTRIBUTING.md Clone the Seerr repository and add the upstream remote for tracking changes. ```bash git clone https://github.com/YOUR_USERNAME/seerr.git cd seerr/ git remote add upstream https://github.com/seerr-team/seerr.git ``` -------------------------------- ### Run Seerr with Docker CLI (CMD) Source: https://github.com/seerr-team/seerr/blob/develop/docs/migration-guide.mdx CMD command to run Seerr. Similar to the PowerShell version, it requires the '--init' flag and uses a named volume for configuration. Note the use of '^' for line continuation. ```batch docker run -d ^ ``` ```batch --name seerr ^ ``` ```batch --init ^ ``` ```batch -e LOG_LEVEL=debug ^ ``` ```batch -e TZ=Asia/Tashkent ^ ``` ```batch -e PORT=5055 ^ ``` ```batch -p 5055:5055 ^ ``` ```batch -v seerr-data:/app/config ^ ``` ```batch --restart unless-stopped ^ ``` ```batch ghcr.io/seerr-team/seerr:latest ``` -------------------------------- ### Add Seerr Docker Container (Unraid Default) Source: https://github.com/seerr-team/seerr/blob/develop/docs/getting-started/third-parties/unraid.mdx Configuration details for adding the Seerr Docker container on Unraid using the 'Unraid Default' permission method. The '--user 99:100' parameter is crucial for correct ownership. ```bash --init --restart=unless-stopped --user 99:100 ``` -------------------------------- ### Nginx Subfolder Reverse Proxy Workaround Source: https://github.com/seerr-team/seerr/blob/develop/docs/extending-seerr/reverse-proxy.mdx This Nginx location block is an unsupported workaround for subfolder setups. It includes path rewrites and substitutions to ensure Seerr functions correctly. Use with caution as filters may break on Seerr updates. ```nginx location ^~ /seerr { set $app 'seerr'; # Remove /seerr path to pass to the app rewrite ^/seerr/?(.*)$ /$1 break; proxy_pass http://127.0.0.1:5055; # NO TRAILING SLASH # Redirect location headers proxy_redirect ^ /$app; proxy_redirect /setup /$app/setup; proxy_redirect /login /$app/login; # Sub filters to replace hardcoded paths proxy_set_header Accept-Encoding ""; sub_filter_once off; sub_filter_types *; sub_filter 'href="/"' 'href="/$app"'; sub_filter 'href="/login"' 'href="/$app/login"'; sub_filter 'href:"/"' 'href="/$app"'; sub_filter '\/_next' '\/$app\/_next'; sub_filter '/_next' '/$app/_next'; sub_filter '/api/v1' '/$app/api/v1'; sub_filter '/login/plex/loading' '/$app/login/plex/loading'; sub_filter '/images/' '/$app/images/'; sub_filter '/imageproxy/' '/$app/imageproxy/'; sub_filter '/avatarproxy/' '/$app/avatarproxy/'; sub_filter '/android-' '/$app/android-'; sub_filter '/apple-' '/$app/apple-'; sub_filter '/favicon' '/$app/favicon'; sub_filter '/logo_' '/$app/logo_'; sub_filter '/site.webmanifest' '/$app/site.webmanifest'; } ``` -------------------------------- ### Migrate SQLite to PostgreSQL using pgloader (Standalone) Source: https://github.com/seerr-team/seerr/blob/develop/docs/extending-seerr/database-config.mdx Run the migration command after building pgloader from source. Ensure the path to your SQLite database is correctly specified. ```bash # Run migration (adjust path to your config directory) ./pgloader --with "quote identifiers" --with "data only" \ /path/to/your/config/db.sqlite3 \ postgresql://{{DB_USER}}:{{DB_PASS}}@{{DB_HOST}}:{{DB_PORT}}/{{DB_NAME}} ``` -------------------------------- ### Kubernetes Manifests: New Values Source: https://github.com/seerr-team/seerr/blob/develop/docs/migration-guide.mdx Illustrates the updated image repository and enhanced security context configurations for Seerr in Kubernetes manifests, supporting non-root execution. ```yaml image: repository: seerr-team/seerr podSecurityContext: fsGroup: 1000 fsGroupChangePolicy: OnRootMismatch securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: false runAsNonRoot: true privileged: false runAsUser: 1000 runAsGroup: 1000 seccompProfile: type: RuntimeDefault ``` -------------------------------- ### Run Seerr Container with Docker CLI (CMD) Source: https://github.com/seerr-team/seerr/blob/develop/docs/getting-started/docker.mdx This command starts the Seerr container in detached mode using CMD. It configures logging, time zone, port mapping, volume mounts, and health checks. The PORT environment variable is optional. ```batch docker run -d ^ --name seerr ^ --init ^ -e LOG_LEVEL=debug ^ -e TZ=Asia/Tashkent ^ -e PORT=5055 ^ -p 5055:5055 ^ -v seerr-data:/app/config ^ --restart unless-stopped ^ --health-cmd "wget --no-verbose --tries=1 --spider http://localhost:5055/api/v1/settings/public || exit 1" ^ --health-start-period 20s ^ --health-timeout 3s ^ --health-interval 15s ^ --health-retries 3 ^ ghcr.io/seerr-team/seerr:latest ``` -------------------------------- ### Run Seerr Container with Docker CLI (PowerShell) Source: https://github.com/seerr-team/seerr/blob/develop/docs/getting-started/docker.mdx This command starts the Seerr container in detached mode using PowerShell. It configures logging, time zone, port mapping, volume mounts, and health checks. The PORT environment variable is optional. ```powershell docker run -d \ --name seerr \ --init \ -e LOG_LEVEL=debug \ -e TZ=Asia/Tashkent \ -e PORT=5055 \ -p 5055:5055 \ -v seerr-data:/app/config \ --restart unless-stopped \ --health-cmd "wget --no-verbose --tries=1 --spider http://localhost:5055/api/v1/settings/public || exit 1" \ --health-start-period 20s \ --health-timeout 3s \ --health-interval 15s \ --health-retries 3 \ ghcr.io/seerr-team/seerr:latest ``` -------------------------------- ### Clone Seerr Repository and Checkout Main Branch Source: https://github.com/seerr-team/seerr/blob/develop/docs/getting-started/buildfromsource.mdx Download the Seerr source code from GitHub and switch to the main development branch. This ensures you have the latest code for building. ```bash git clone https://github.com/seerr-team/seerr.git . git checkout main ``` -------------------------------- ### Caddyfile Configuration Source: https://github.com/seerr-team/seerr/blob/develop/docs/extending-seerr/reverse-proxy.mdx Configure Caddy to reverse proxy to Seerr. Caddy automatically handles SSL certificates. ```caddyfile seerr.example.com { reverse_proxy http://127.0.0.1:5055 } ``` ```bash sudo caddy run --config /path/to/Caddyfile ``` -------------------------------- ### SSL Configuration Options Source: https://github.com/seerr-team/seerr/blob/develop/docs/extending-seerr/database-config.mdx These environment variables control SSL settings for database connections. Ensure DB_USE_SSL is set to 'true' to enable other SSL options. Certificates can be provided as strings or file paths. ```dotenv DB_USE_SSL="false" # (optional) Whether to enable ssl for database connection. This must be "true" to use the other ssl options. The default is "false". DB_SSL_REJECT_UNAUTHORIZED="true" # (optional) Whether to reject ssl connections with unverifiable certificates i.e. self-signed certificates without providing the below settings. The default is "true". DB_SSL_CA= # (optional) The CA certificate to verify the connection, provided as a string. The default is "". DB_SSL_CA_FILE= # (optional) The path to a CA certificate to verify the connection. The default is "". DB_SSL_KEY= # (optional) The private key for the connection in PEM format, provided as a string. The default is "". DB_SSL_KEY_FILE= # (optional) Path to the private key for the connection in PEM format. The default is "". DB_SSL_CERT= # (optional) Certificate chain in pem format for the private key, provided as a string. The default is "". DB_SSL_CERT_FILE= # (optional) Path to certificate chain in pem format for the private key. The default is "". ``` -------------------------------- ### HAProxy Frontend and Backend Configuration Source: https://github.com/seerr-team/seerr/blob/develop/docs/extending-seerr/reverse-proxy.mdx Configure HAProxy for Seerr. This is third-party documentation and not officially supported or tested by the Seerr team. ```haproxy frontend seerr-frontend bind 0.0.0.0:80 bind 0.0.0.0:443 ssl crt /etc/ssl/private/seerr.example.com.pem mode http log global option httplog option http-keep-alive http-request set-header X-Real-IP %[src] option forwardfor acl seerr hdr(host) -i seerr.example.com redirect scheme https code 301 if !{ ssl_fc } use_backend seerr-backend if seerr backend seerr-backend mode http log global option httplog http-response set-header Strict-Transport-Security max-age=15552000 option httpchk GET /api/v1/settings/public timeout connect 30000 timeout server 30000 retries 3 server seerr 127.0.0.1:5055 check inter 1000 ```