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
- Create this file in a directory (
/opt/overseerr/
is a common choice):
mkdir -p /opt/overseerr && nano /opt/overseerr/docker-compose.yml
- Save and exit the editor, then deploy Overseerr:
docker-compose up -d
- 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:
- 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
- Clone the Overseerr repository:
git clone https://github.com/sct/overseerr.git /opt/overseerr
cd /opt/overseerr
- Install dependencies and build Overseerr:
npm install
npm run build
- 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;
}
}
- 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:
- Install Certbot:
sudo apt install certbot python3-certbot-nginx
- Obtain an SSL certificate:
sudo certbot --nginx -d overseerr.yourdomain.com
- 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
-
Check for misconfigured environment variables or invalid ports in logs.
-
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
- Pull the latest Docker image:
docker pull sctx/overseerr:latest
- 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
-
Set custom quality profiles and download paths in Overseerrβs settings.
-
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!