Sep 29, 2024 3 min read

Overseerr: The Full Guide to Self-Hosting Anywhere

Overseerr: The Full Guide to Self-Hosting Anywhere
Table of Contents

Overseerr is a self-hosted application designed to streamline media requests and permissions for services like Plex and Jellyfin. It offers a sleek, intuitive interface for managing user requests and provides integration with popular media servers, making it a must-have tool for media enthusiasts and administrators seeking customization and complete control. In this guide, we’ll walk you through installing, configuring, and managing Overseerr, covering everything from deploying the app to setting up backups, reverse proxies, and leveraging its advanced features.

Installing Overseerr

πŸ“¦ Docker/Docker Compose Setup

The easiest and most efficient way to deploy Overseerr is with Docker. Below is a docker-compose.yml configuration tailored for Overseerr:


version: "3.8"

services:

overseerr:

image: sctx/overseerr:latest

container_name: overseerr

ports:

- 5055:5055

environment:

- TZ=America/New_York

- LOG_LEVEL=info

volumes:

- ./overseerr/config:/app/config

restart: unless-stopped

  1. Create this file in a directory (/opt/overseerr/ is a common choice):

mkdir -p /opt/overseerr && nano /opt/overseerr/docker-compose.yml

  1. Save and exit the editor, then deploy Overseerr:

docker-compose up -d

  1. Verify the container status:

docker ps

πŸš€ Manual Installation

For those who prefer not to use Docker, follow these steps to install Overseerr directly on a Linux server:

  1. Install Node.js (Overseerr requires Node.js v14+ and npm):

curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -

sudo apt-get install -y nodejs

  1. Clone the Overseerr repository:

git clone https://github.com/sct/overseerr.git /opt/overseerr

cd /opt/overseerr

  1. Install dependencies and build Overseerr:

npm install

npm run build

  1. Start the application:

npm start

Configuring Nginx as a Reverse Proxy

🌐 Nginx Configuration

To serve Overseerr over a custom domain or subdomain, set up Nginx with the following server block:


server {

listen 80;

server_name overseerr.yourdomain.com;

location / {

proxy_pass http://localhost:5055;

proxy_set_header Host $host;

proxy_set_header X-Forwarded-For $remote_addr;

proxy_set_header X-Forwarded-Proto $scheme;

}

}

  1. Save this configuration to /etc/nginx/sites-available/overseerr and enable it:

sudo ln -s /etc/nginx/sites-available/overseerr /etc/nginx/sites-enabled/

sudo nginx -t

sudo systemctl reload nginx

πŸ”’ SSL/TLS Setup

Use Let's Encrypt to secure Overseerr with HTTPS:

  1. Install Certbot:

sudo apt install certbot python3-certbot-nginx

  1. Obtain an SSL certificate:

sudo certbot --nginx -d overseerr.yourdomain.com

  1. Verify automatic renewal is working:

sudo certbot renew --dry-run

Logging and Debugging Overseerr

πŸ—ƒοΈ Enabling Debug Logs

Modify the LOG_LEVEL environment variable to debug in your docker-compose.yml file or Overseerr configuration:


environment:

- LOG_LEVEL=debug

πŸ“„ Viewing Logs

For Docker installations, access logs with the following command:


docker logs overseerr -f

For manual installations, logs are stored in /opt/overseerr/logs.

πŸ› οΈ Troubleshooting Common Issues

  1. Check for misconfigured environment variables or invalid ports in logs.

  2. Verify that Overseerr is running by checking the service status or Docker container health.

πŸ“€ Exporting Logs

To forward logs to an ELK stack, use Filebeat or similar tools to ship Overseerr logs for advanced analysis.

Backup and Restore

πŸ—‚οΈ File-Based Backups

Back up the configuration directory for Docker deployments:


tar -czvf overseerr_backup.tar.gz /opt/overseerr/config

πŸ”„ Database Backups

If Overseerr is using a database, back it up with this command (e.g., SQLite):


cp /opt/overseerr/config/db.sqlite /opt/overseerr/db_backup.sqlite

πŸ“… Automated Backup Scripts

Add the following cron job to automate backups:


0 2 * * * tar -czvf /backup/overseerr_$(date +\%F).tar.gz /opt/overseerr/config

Updating and Upgrading Overseerr

⬆️ Updating Docker Images

  1. Pull the latest Docker image:

docker pull sctx/overseerr:latest

  1. Recreate the container:

docker-compose down && docker-compose up -d

πŸ› οΈ Manual Updates

For manually installed Overseerr, pull the latest changes:


cd /opt/overseerr

git pull

npm install

npm run build

npm start

πŸ” Checking for Updates

Visit Overseerr’s GitHub releases page or enable notifications within Overseerr's settings.

Leveraging Overseerr’s Unique Features

πŸ”§ Enabling APIs

To integrate with other tools, enable Overseerr’s API within the settings menu. Use this example to fetch the status of requests via curl:


curl -H "X-Api-Key: YOUR_API_KEY" \

http://localhost:5055/api/v1/request

🌟 Advanced Configurations

  1. Set custom quality profiles and download paths in Overseerr’s settings.

  2. Integrate Overseerr with media automation tools like Radarr and Sonarr for seamless workflows.

Wrapping Up

In this guide, we’ve covered the full lifecycle of deploying, configuring, and managing Overseerr, from installation to leveraging its unique features. By self-hosting Overseerr, you gain complete control over your media request system, allowing for customization and scalability. Start implementing these steps today to streamline your media server management and enhance your user experience!

Great! You’ve successfully signed up.
Welcome back! You've successfully signed in.
You've successfully subscribed to Selfhosted Ninja.
Your link has expired.
Success! Check your email for magic link to sign-in.
Success! Your billing info has been updated.
Your billing was not updated.