mirror of
https://github.com/JaviPege/sailarr-installer.git
synced 2025-12-31 09:49:31 -06:00
Move from Overseerr to Seerr
Overseerr and Jellyseerr will be merged and be called Seerr, so let's prepare for it
This commit is contained in:
10
CLAUDE.md
10
CLAUDE.md
@@ -4,7 +4,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
|
||||
|
||||
## Project Overview
|
||||
|
||||
Sailarr Installer is an automated Docker-based media streaming stack that leverages Real-Debrid and the *Arr ecosystem to create an "infinite" media library. This is a microservices architecture project using Docker Compose to orchestrate multiple services including Plex, Overseerr, Radarr, Sonarr, Prowlarr, Zilean, Zurg, Decypharr, Recyclarr, Autoscan, Tautulli, Homarr, Pinchflat, PlexTraktSync, and Watchtower.
|
||||
Sailarr Installer is an automated Docker-based media streaming stack that leverages Real-Debrid and the *Arr ecosystem to create an "infinite" media library. This is a microservices architecture project using Docker Compose to orchestrate multiple services including Plex, Seerr, Radarr, Sonarr, Prowlarr, Zilean, Zurg, Decypharr, Recyclarr, Autoscan, Tautulli, Homarr, Pinchflat, PlexTraktSync, and Watchtower.
|
||||
|
||||
## Essential Commands
|
||||
|
||||
@@ -69,7 +69,7 @@ crontab -l | grep healthcheck
|
||||
|
||||
### Data Flow Pattern
|
||||
The system uses a **symlink-based architecture** optimized for hardlinking:
|
||||
1. **Request**: Overseerr → Radarr/Sonarr → Prowlarr → Zilean/Torrentio/Public Indexers
|
||||
1. **Request**: Seerr → Radarr/Sonarr → Prowlarr → Zilean/Torrentio/Public Indexers
|
||||
2. **Download**: Decypharr → Real-Debrid → Zurg → Rclone Mount
|
||||
3. **Media**: Symlinks → Media folders → Plex → Autoscan refresh → PlexTraktSync tracking
|
||||
|
||||
@@ -77,7 +77,7 @@ The system uses a **symlink-based architecture** optimized for hardlinking:
|
||||
|
||||
**Core Media Stack:**
|
||||
- **Plex** - Media server (host network mode)
|
||||
- **Overseerr** - Request management interface (port 5055)
|
||||
- **Seerr** - Request management interface (port 5055)
|
||||
- **Radarr** - Movie management (port 7878)
|
||||
- **Sonarr** - TV show management (port 8989)
|
||||
- **Prowlarr** - Indexer manager (port 9696)
|
||||
@@ -112,7 +112,7 @@ ${ROOT_DIR}/
|
||||
│ ├── radarr-config/
|
||||
│ ├── sonarr-config/
|
||||
│ ├── prowlarr-config/
|
||||
│ ├── overseerr-config/
|
||||
│ ├── seerr-config/
|
||||
│ ├── zilean-config/
|
||||
│ ├── zurg-config/
|
||||
│ ├── autoscan-config/
|
||||
@@ -202,7 +202,7 @@ ${ROOT_DIR}/
|
||||
The setup.sh script creates system users with dynamic UIDs/GIDs starting from 1000 and sets critical permissions (775/664, umask 002). All containers run with these user IDs for proper file access.
|
||||
|
||||
**System users created:**
|
||||
- rclone, sonarr, radarr, recyclarr, prowlarr, overseerr, plex, decypharr, autoscan, pinchflat, zilean, zurg, tautulli, homarr, plextraktsync
|
||||
- rclone, sonarr, radarr, recyclarr, prowlarr, seerr, plex, decypharr, autoscan, pinchflat, zilean, zurg, tautulli, homarr, plextraktsync
|
||||
|
||||
All users are added to the `mediacenter` group for shared access.
|
||||
|
||||
|
||||
@@ -265,7 +265,7 @@ After answering all questions, the installer will:
|
||||
- Zilean (DMM Indexer)
|
||||
- PostgreSQL (Zilean database)
|
||||
- Decypharr (Download client)
|
||||
- Overseerr (Request management)
|
||||
- Seerr (Request management)
|
||||
- Autoscan (Library updates)
|
||||
- Traefik (if enabled)
|
||||
- Optional services (if selected)
|
||||
@@ -274,7 +274,7 @@ After answering all questions, the installer will:
|
||||
- Waits for services to generate API keys
|
||||
- Automatically extracts keys from configuration files
|
||||
- Stores them for automatic configuration
|
||||
- **Displays API keys at the end of installation** for Overseerr setup
|
||||
- **Displays API keys at the end of installation** for Seerr setup
|
||||
|
||||
### 5. Configure Services (1-2 minutes)
|
||||
|
||||
@@ -336,7 +336,7 @@ Access URLs depend on whether you enabled Traefik or not.
|
||||
- **Radarr:** `http://YOUR_SERVER_IP:7878`
|
||||
- **Sonarr:** `http://YOUR_SERVER_IP:8989`
|
||||
- **Prowlarr:** `http://YOUR_SERVER_IP:9696`
|
||||
- **Overseerr:** `http://YOUR_SERVER_IP:5055`
|
||||
- **Seerr:** `http://YOUR_SERVER_IP:5055`
|
||||
- **Zilean:** `http://YOUR_SERVER_IP:8181`
|
||||
- **Decypharr:** `http://YOUR_SERVER_IP:8283`
|
||||
- **Tautulli:** `http://YOUR_SERVER_IP:8282`
|
||||
@@ -355,7 +355,7 @@ All services are accessible via subdomains:
|
||||
- **Radarr:** `https://radarr.YOUR_DOMAIN`
|
||||
- **Sonarr:** `https://sonarr.YOUR_DOMAIN`
|
||||
- **Prowlarr:** `https://prowlarr.YOUR_DOMAIN`
|
||||
- **Overseerr:** `https://overseerr.YOUR_DOMAIN`
|
||||
- **Seerr:** `https://seerr.YOUR_DOMAIN`
|
||||
- **Zilean:** `https://zilean.YOUR_DOMAIN`
|
||||
- **Decypharr:** `https://decypharr.YOUR_DOMAIN`
|
||||
- **Tautulli:** `https://tautulli.YOUR_DOMAIN`
|
||||
@@ -377,8 +377,8 @@ Replace `YOUR_DOMAIN` with the domain you configured during installation.
|
||||
- Configure metadata preferences
|
||||
- Set library scanner to run automatically
|
||||
|
||||
2. **Overseerr Setup:**
|
||||
- Open Overseerr at your configured URL
|
||||
2. **Seerr Setup:**
|
||||
- Open Seerr at your configured URL
|
||||
- **📖 Follow the detailed guide:** [docker/POST-INSTALL.md](docker/POST-INSTALL.md)
|
||||
- The guide includes step-by-step instructions with exact values for:
|
||||
- Connecting to Plex
|
||||
@@ -394,9 +394,9 @@ Replace `YOUR_DOMAIN` with the domain you configured during installation.
|
||||
|
||||
### First Request
|
||||
|
||||
Once Overseerr is configured (see [docker/POST-INSTALL.md](docker/POST-INSTALL.md)):
|
||||
Once Seerr is configured (see [docker/POST-INSTALL.md](docker/POST-INSTALL.md)):
|
||||
|
||||
1. Open Overseerr at your configured URL
|
||||
1. Open Seerr at your configured URL
|
||||
2. Search for a movie or TV show
|
||||
3. Click "Request" and confirm
|
||||
4. Monitor progress:
|
||||
@@ -574,7 +574,7 @@ If you encounter issues:
|
||||
|
||||
Once installation is complete:
|
||||
|
||||
1. Configure Overseerr for content requests
|
||||
1. Configure Seerr for content requests
|
||||
2. Set up Plex libraries and metadata
|
||||
3. Customize quality profiles in Recyclarr
|
||||
4. Add additional indexers in Prowlarr
|
||||
|
||||
14
README.md
14
README.md
@@ -52,7 +52,7 @@ The stack includes these services, configured based on your selections:
|
||||
- **[Rclone](https://github.com/rclone/rclone)** - Mounts Zurg as local filesystem
|
||||
- **[Zilean](https://github.com/iPromKnight/zilean)** - Debrid Media Manager indexer
|
||||
- **[PostgreSQL](https://www.postgresql.org/)** - Database for Zilean
|
||||
- **[Overseerr](https://overseerr.dev/)** - Media request management
|
||||
- **[Seerr](https://seerr.dev/)** - Media request management
|
||||
- **[Autoscan](https://github.com/saltydk/autoscan)** - Automatic Plex library updates
|
||||
|
||||
### Download Client
|
||||
@@ -116,7 +116,7 @@ After installation, access your services at different URLs depending on your con
|
||||
- **Radarr:** `http://SERVER_IP:7878`
|
||||
- **Sonarr:** `http://SERVER_IP:8989`
|
||||
- **Prowlarr:** `http://SERVER_IP:9696`
|
||||
- **Overseerr:** `http://SERVER_IP:5055`
|
||||
- **Seerr:** `http://SERVER_IP:5055`
|
||||
- **Zilean:** `http://SERVER_IP:8181`
|
||||
- **Decypharr:** `http://SERVER_IP:8283`
|
||||
- **Tautulli:** `http://SERVER_IP:8282`
|
||||
@@ -135,7 +135,7 @@ Services are accessible via subdomains of your configured domain:
|
||||
- **Radarr:** `https://radarr.YOUR_DOMAIN`
|
||||
- **Sonarr:** `https://sonarr.YOUR_DOMAIN`
|
||||
- **Prowlarr:** `https://prowlarr.YOUR_DOMAIN`
|
||||
- **Overseerr:** `https://overseerr.YOUR_DOMAIN`
|
||||
- **Seerr:** `https://seerr.YOUR_DOMAIN`
|
||||
- **Zilean:** `https://zilean.YOUR_DOMAIN`
|
||||
- **Decypharr:** `https://decypharr.YOUR_DOMAIN`
|
||||
- **Tautulli:** `https://tautulli.YOUR_DOMAIN`
|
||||
@@ -155,7 +155,7 @@ After the automated installation completes, some services require manual configu
|
||||
|
||||
**📖 See [docker/POST-INSTALL.md](docker/POST-INSTALL.md) for detailed step-by-step instructions on:**
|
||||
|
||||
- **Overseerr Setup** - Connect Plex account, select libraries, and add Radarr/Sonarr servers
|
||||
- **Seerr Setup** - Connect Plex account, select libraries, and add Radarr/Sonarr servers
|
||||
- **Tautulli Setup** - Connect to Plex for analytics and monitoring
|
||||
- **Additional Configuration** - Optional tweaks and customizations
|
||||
|
||||
@@ -165,7 +165,7 @@ The automated installer handles 95% of the setup, but these services need your P
|
||||
|
||||
The workflow is completely automated:
|
||||
|
||||
1. **Request** content through Overseerr
|
||||
1. **Request** content through Seerr
|
||||
2. **Search** - Radarr/Sonarr search indexers via Prowlarr
|
||||
3. **Find** - Zilean provides cached torrents from Debrid Media Manager
|
||||
4. **Add** - Decypharr adds torrent to Real-Debrid
|
||||
@@ -239,7 +239,7 @@ cd /YOUR_INSTALL_DIR
|
||||
│ ├── radarr-config/
|
||||
│ ├── sonarr-config/
|
||||
│ ├── prowlarr-config/
|
||||
│ ├── overseerr-config/
|
||||
│ ├── seerr-config/
|
||||
│ ├── zilean-config/
|
||||
│ ├── zurg-config/
|
||||
│ ├── autoscan-config/
|
||||
@@ -461,7 +461,7 @@ This project builds upon the excellent work of many in the community:
|
||||
- **[Debrid Media Manager](https://github.com/debridmediamanager/debrid-media-manager)** - Torrent caching platform
|
||||
- **[dreulavelle/Prowlarr-Indexers](https://github.com/dreulavelle/Prowlarr-Indexers)** - Custom Prowlarr indexer definitions
|
||||
|
||||
And all the developers of the tools in this stack: Plex, Radarr, Sonarr, Prowlarr, Overseerr, Zurg, Rclone, Zilean, Decypharr, RDTClient, Autoscan, Traefik, Watchtower, Tautulli, Homarr, Dashdot, Pinchflat, and Plex-Trakt-Sync.
|
||||
And all the developers of the tools in this stack: Plex, Radarr, Sonarr, Prowlarr, Seerr, Zurg, Rclone, Zilean, Decypharr, RDTClient, Autoscan, Traefik, Watchtower, Tautulli, Homarr, Dashdot, Pinchflat, and Plex-Trakt-Sync.
|
||||
|
||||
## License
|
||||
|
||||
|
||||
@@ -11,8 +11,8 @@
|
||||
PLEX_IMAGE=lscr.io/linuxserver/plex
|
||||
PLEX_TAG=latest
|
||||
|
||||
OVERSEERR_IMAGE=sctx/overseerr
|
||||
OVERSEERR_TAG=latest
|
||||
SEERR_IMAGE=ghcr.io/seerr-team/seerr
|
||||
SEERR_TAG=latest
|
||||
|
||||
RADARR_IMAGE=lscr.io/linuxserver/radarr
|
||||
RADARR_TAG=latest
|
||||
@@ -77,7 +77,7 @@ PINCHFLAT_TAG=v2025.6.6
|
||||
# =============================================================================
|
||||
# SERVICE PORTS - Customizable for conflict resolution
|
||||
# =============================================================================
|
||||
OVERSEERR_PORT=5055
|
||||
SEERR_PORT=5055
|
||||
RADARR_PORT=7878
|
||||
SONARR_PORT=8989
|
||||
PROWLARR_PORT=9696
|
||||
@@ -102,7 +102,7 @@ RCLONE_UID=13001
|
||||
SONARR_UID=13002
|
||||
RADARR_UID=13003
|
||||
PROWLARR_UID=13004
|
||||
OVERSEERR_UID=13005
|
||||
SEERR_UID=13005
|
||||
PLEX_UID=13006
|
||||
RECYCLARR_UID=13007
|
||||
RDTCLIENT_UID=13008
|
||||
@@ -126,7 +126,7 @@ MEDIACENTER_GATEWAY=172.30.0.1
|
||||
# =============================================================================
|
||||
# TRAEFIK SERVICE NAMES - Standard service identifiers
|
||||
# =============================================================================
|
||||
OVERSEERR_TRAEFIK_NAME=overseerr
|
||||
SEERR_TRAEFIK_NAME=seerr
|
||||
RADARR_TRAEFIK_NAME=radarr
|
||||
SONARR_TRAEFIK_NAME=sonarr
|
||||
PROWLARR_TRAEFIK_NAME=prowlarr
|
||||
|
||||
@@ -53,7 +53,7 @@ RCLONE_UID=13001
|
||||
SONARR_UID=13002
|
||||
RADARR_UID=13003
|
||||
PROWLARR_UID=13004
|
||||
OVERSEERR_UID=13005
|
||||
SEERR_UID=13005
|
||||
PLEX_UID=13006
|
||||
RECYCLARR_UID=13007
|
||||
RDTCLIENT_UID=13008
|
||||
|
||||
@@ -4,7 +4,7 @@ This guide covers the manual configuration steps required after running the auto
|
||||
|
||||
## Table of Contents
|
||||
|
||||
1. [Overseerr Configuration](#overseerr-configuration)
|
||||
1. [Seerr Configuration](#seerr-configuration)
|
||||
- [Connect Plex Account](#1-connect-plex-account)
|
||||
- [Select Libraries](#2-select-libraries)
|
||||
- [Add Radarr Server](#3-add-radarr-server)
|
||||
@@ -14,20 +14,20 @@ This guide covers the manual configuration steps required after running the auto
|
||||
|
||||
---
|
||||
|
||||
## Overseerr Configuration
|
||||
## Seerr Configuration
|
||||
|
||||
Overseerr is your media request management system that connects to Plex, Radarr, and Sonarr.
|
||||
Seerr is your media request management system that connects to Plex, Radarr, and Sonarr.
|
||||
|
||||
### Access Overseerr
|
||||
### Access Seerr
|
||||
|
||||
1. Open your browser and navigate to: `http://YOUR_SERVER_IP:5055`
|
||||
2. You'll be greeted with the Overseerr setup wizard
|
||||
2. You'll be greeted with the Seerr setup wizard
|
||||
|
||||
### 1. Connect Plex Account
|
||||
|
||||
**Step 1: Sign in with Plex**
|
||||
- Click **"Sign in with Plex"**
|
||||
- Authorize Overseerr to access your Plex account
|
||||
- Authorize Seerr to access your Plex account
|
||||
- Select your Plex server from the list
|
||||
|
||||
**Step 2: Server Configuration**
|
||||
@@ -38,7 +38,7 @@ Overseerr is your media request management system that connects to Plex, Radarr,
|
||||
### 2. Select Libraries
|
||||
|
||||
**Step 3: Library Selection**
|
||||
- Enable the libraries you want Overseerr to manage:
|
||||
- Enable the libraries you want Seerr to manage:
|
||||
- ☑ **Movies** (your Plex Movies library)
|
||||
- ☑ **TV Shows** (your Plex TV Shows library)
|
||||
- Click **Continue**
|
||||
@@ -143,10 +143,10 @@ Or find it in the installation summary printed at the end of `./setup.sh`.
|
||||
|
||||
### 5. Finish Setup
|
||||
|
||||
**Step 6: Complete Overseerr Setup**
|
||||
**Step 6: Complete Seerr Setup**
|
||||
- Review your settings
|
||||
- Click **"Finish Setup"**
|
||||
- Overseerr is now ready to use!
|
||||
- Seerr is now ready to use!
|
||||
|
||||
---
|
||||
|
||||
@@ -186,7 +186,7 @@ No additional configuration needed unless you want to add more indexers.
|
||||
|
||||
| Service | URL | Purpose |
|
||||
|---------|-----|---------|
|
||||
| **Overseerr** | `http://YOUR_SERVER_IP:5055` | Media requests |
|
||||
| **Seerr** | `http://YOUR_SERVER_IP:5055` | Media requests |
|
||||
| **Plex** | `http://YOUR_SERVER_IP:32400/web` | Media server |
|
||||
| **Radarr** | `http://YOUR_SERVER_IP:7878` | Movie management |
|
||||
| **Sonarr** | `http://YOUR_SERVER_IP:8989` | TV show management |
|
||||
@@ -199,7 +199,7 @@ No additional configuration needed unless you want to add more indexers.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Overseerr Can't Connect to Radarr/Sonarr
|
||||
### Seerr Can't Connect to Radarr/Sonarr
|
||||
|
||||
**Problem**: Test button fails with connection error
|
||||
|
||||
@@ -225,7 +225,7 @@ No additional configuration needed unless you want to add more indexers.
|
||||
|
||||
4. Check Docker network:
|
||||
```bash
|
||||
docker network inspect mediacenter | grep -A 5 overseerr
|
||||
docker network inspect mediacenter | grep -A 5 seerr
|
||||
```
|
||||
|
||||
### Quality Profiles Not Loading
|
||||
@@ -272,7 +272,7 @@ If you encounter issues:
|
||||
|
||||
1. Check service logs:
|
||||
```bash
|
||||
docker logs overseerr
|
||||
docker logs seerr
|
||||
docker logs radarr
|
||||
docker logs sonarr
|
||||
```
|
||||
@@ -295,4 +295,4 @@ If you encounter issues:
|
||||
|
||||
**Configuration complete!** 🎉
|
||||
|
||||
You can now start requesting media through Overseerr. Movies and TV shows will be automatically downloaded and organized by Radarr/Sonarr.
|
||||
You can now start requesting media through Seerr. Movies and TV shows will be automatically downloaded and organized by Radarr/Sonarr.
|
||||
|
||||
@@ -13,7 +13,7 @@ Each service is defined in its own YAML file for better organization and mainten
|
||||
│ ├── volumes.yml # Volume definitions
|
||||
│ ├── traefik.yml # Reverse proxy
|
||||
│ ├── plex.yml # Media server
|
||||
│ ├── overseerr.yml # Request management
|
||||
│ ├── seerr.yml # Request management
|
||||
│ ├── radarr.yml # Movie management
|
||||
│ ├── sonarr.yml # TV show management
|
||||
│ └── ... # Other services
|
||||
@@ -28,8 +28,8 @@ docker compose up -d
|
||||
|
||||
### Start specific services:
|
||||
```bash
|
||||
# Start only Plex and Overseerr
|
||||
docker compose up -d plex overseerr
|
||||
# Start only Plex and Seerr
|
||||
docker compose up -d plex seerr
|
||||
|
||||
# Start media management stack
|
||||
docker compose up -d radarr sonarr prowlarr
|
||||
@@ -69,7 +69,7 @@ docker compose up -d radarr
|
||||
- `plex.yml` - Plex Media Server
|
||||
|
||||
### Request Management
|
||||
- `overseerr.yml` - Media requests
|
||||
- `seerr.yml` - Media requests
|
||||
|
||||
### Media Management (*arr stack)
|
||||
- `radarr.yml` - Movies
|
||||
|
||||
@@ -25,7 +25,7 @@ services:
|
||||
retries: 5
|
||||
start_period: 90s
|
||||
depends_on:
|
||||
overseerr:
|
||||
seerr:
|
||||
condition: service_healthy
|
||||
restart: true
|
||||
rclone:
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
# Overseerr - Request Management
|
||||
# Seerr - Request Management
|
||||
|
||||
services:
|
||||
overseerr:
|
||||
image: ${OVERSEERR_IMAGE}:${OVERSEERR_TAG}
|
||||
seerr:
|
||||
image: ${SEERR_IMAGE}:${SEERR_TAG}
|
||||
env_file:
|
||||
- ../.env.defaults
|
||||
- ../.env.local
|
||||
container_name: overseerr
|
||||
container_name: seerr
|
||||
cpus: 0.5
|
||||
user: ${OVERSEERR_UID}:${MEDIACENTER_GID}
|
||||
user: ${SEERR_UID}:${MEDIACENTER_GID}
|
||||
networks:
|
||||
mediacenter:
|
||||
ipv4_address: 172.30.0.12
|
||||
@@ -19,17 +19,17 @@ services:
|
||||
retries: 4
|
||||
start_period: 5s
|
||||
environment:
|
||||
- PUID=${OVERSEERR_UID}
|
||||
- PUID=${SEERR_UID}
|
||||
- PGID=${MEDIACENTER_GID}
|
||||
- UMASK=002
|
||||
- TZ=${TIMEZONE}
|
||||
tmpfs:
|
||||
- /tmp:mode=770,noexec,size=30M,uid=${OVERSEERR_UID},gid=${MEDIACENTER_GID}
|
||||
- /app/config/logs:mode=770,size=50M,uid=${OVERSEERR_UID},gid=${MEDIACENTER_GID}
|
||||
- /tmp:mode=770,noexec,size=30M,uid=${SEERR_UID},gid=${MEDIACENTER_GID}
|
||||
- /app/config/logs:mode=770,size=50M,uid=${SEERR_UID},gid=${MEDIACENTER_GID}
|
||||
volumes:
|
||||
- ${ROOT_DIR}/config/overseerr-config:/app/config
|
||||
- ${ROOT_DIR}/config/seerr-config:/app/config
|
||||
ports:
|
||||
- ${OVERSEERR_PORT}:5055
|
||||
- ${SEERR_PORT}:5055
|
||||
restart: on-failure:5
|
||||
logging:
|
||||
driver: local
|
||||
@@ -38,9 +38,9 @@ services:
|
||||
max-size: 10m
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.routers.overseerr.rule=Host(`${OVERSEERR_TRAEFIK_NAME}.${DOMAIN_NAME}`)
|
||||
- traefik.http.routers.overseerr.entrypoints=web
|
||||
- traefik.http.services.overseerr.loadbalancer.server.port=5055
|
||||
- traefik.http.routers.seerr.rule=Host(`${SEERR_TRAEFIK_NAME}.${DOMAIN_NAME}`)
|
||||
- traefik.http.routers.seerr.entrypoints=web
|
||||
- traefik.http.services.seerr.loadbalancer.server.port=5055
|
||||
depends_on:
|
||||
sonarr:
|
||||
condition: service_healthy
|
||||
@@ -18,7 +18,7 @@ include:
|
||||
- compose-services/plex.yml
|
||||
|
||||
# Request Management
|
||||
- compose-services/overseerr.yml
|
||||
- compose-services/seerr.yml
|
||||
|
||||
# Media Management
|
||||
- compose-services/radarr.yml
|
||||
|
||||
@@ -110,11 +110,11 @@ touch "${BACKUP_DIR}/data/realdebrid-zurg/.gitkeep"
|
||||
# 5. Backup system user configuration info
|
||||
echo " → System users information"
|
||||
getent group mediacenter > "${BACKUP_DIR}/mediacenter-group.txt" 2>/dev/null || echo "Group mediacenter not found" > "${BACKUP_DIR}/mediacenter-group.txt"
|
||||
getent passwd | grep -E '^(rclone|sonarr|radarr|prowlarr|overseerr|plex|recyclarr|rdtclient|autoscan|traefik|pinchflat|plextraktsync|homarr|dashdot):' > "${BACKUP_DIR}/mediacenter-users.txt" 2>/dev/null || echo "No mediacenter users found" > "${BACKUP_DIR}/mediacenter-users.txt"
|
||||
getent passwd | grep -E '^(rclone|sonarr|radarr|prowlarr|seerr|plex|recyclarr|rdtclient|autoscan|traefik|pinchflat|plextraktsync|homarr|dashdot):' > "${BACKUP_DIR}/mediacenter-users.txt" 2>/dev/null || echo "No mediacenter users found" > "${BACKUP_DIR}/mediacenter-users.txt"
|
||||
|
||||
# 6. Docker images list
|
||||
echo " → Docker images list"
|
||||
docker images --format "table {{.Repository}}:{{.Tag}}\t{{.ID}}\t{{.Size}}" | grep -E "(mediacenter|traefik|plex|overseerr|prowlarr|sonarr|radarr|zurg|zilean|rclone|autoscan|homarr|dashdot|recyclarr|rdtclient|pinchflat|plextraktsync|watchtower|postgres)" > "${BACKUP_DIR}/docker-images.txt" 2>/dev/null || echo "No mediacenter images found" > "${BACKUP_DIR}/docker-images.txt"
|
||||
docker images --format "table {{.Repository}}:{{.Tag}}\t{{.ID}}\t{{.Size}}" | grep -E "(mediacenter|traefik|plex|seerr|prowlarr|sonarr|radarr|zurg|zilean|rclone|autoscan|homarr|dashdot|recyclarr|rdtclient|pinchflat|plextraktsync|watchtower|postgres)" > "${BACKUP_DIR}/docker-images.txt" 2>/dev/null || echo "No mediacenter images found" > "${BACKUP_DIR}/docker-images.txt"
|
||||
|
||||
# 7. Create restore instructions
|
||||
cat > "${BACKUP_DIR}/RESTORE-INSTRUCTIONS.md" << 'EOF'
|
||||
|
||||
@@ -54,11 +54,11 @@ touch "${BACKUP_DIR}/data/realdebrid-zurg/.gitkeep"
|
||||
# 5. Backup system user configuration info
|
||||
echo " → System users information"
|
||||
getent group mediacenter > "${BACKUP_DIR}/mediacenter-group.txt" 2>/dev/null || echo "Group mediacenter not found" > "${BACKUP_DIR}/mediacenter-group.txt"
|
||||
getent passwd | grep -E '^(rclone|sonarr|radarr|prowlarr|overseerr|plex|recyclarr|rdtclient|autoscan|traefik|pinchflat|plextraktsync|homarr|dashdot):' > "${BACKUP_DIR}/mediacenter-users.txt" 2>/dev/null || echo "No mediacenter users found" > "${BACKUP_DIR}/mediacenter-users.txt"
|
||||
getent passwd | grep -E '^(rclone|sonarr|radarr|prowlarr|seerr|plex|recyclarr|rdtclient|autoscan|traefik|pinchflat|plextraktsync|homarr|dashdot):' > "${BACKUP_DIR}/mediacenter-users.txt" 2>/dev/null || echo "No mediacenter users found" > "${BACKUP_DIR}/mediacenter-users.txt"
|
||||
|
||||
# 6. Docker images list
|
||||
echo " → Docker images list"
|
||||
docker images --format "table {{.Repository}}:{{.Tag}}\t{{.ID}}\t{{.Size}}" | grep -E "(mediacenter|traefik|plex|overseerr|prowlarr|sonarr|radarr|zurg|zilean|rclone|autoscan|homarr|dashdot|recyclarr|rdtclient|pinchflat|plextraktsync|watchtower|postgres)" > "${BACKUP_DIR}/docker-images.txt" 2>/dev/null || echo "No mediacenter images found" > "${BACKUP_DIR}/docker-images.txt"
|
||||
docker images --format "table {{.Repository}}:{{.Tag}}\t{{.ID}}\t{{.Size}}" | grep -E "(mediacenter|traefik|plex|seerr|prowlarr|sonarr|radarr|zurg|zilean|rclone|autoscan|homarr|dashdot|recyclarr|rdtclient|pinchflat|plextraktsync|watchtower|postgres)" > "${BACKUP_DIR}/docker-images.txt" 2>/dev/null || echo "No mediacenter images found" > "${BACKUP_DIR}/docker-images.txt"
|
||||
|
||||
# 7. Create restore instructions
|
||||
cat > "${BACKUP_DIR}/RESTORE-INSTRUCTIONS.md" << 'EOF'
|
||||
@@ -127,7 +127,7 @@ cat > "${BACKUP_DIR}/RESTORE-INSTRUCTIONS.md" << 'EOF'
|
||||
|
||||
## Service Access
|
||||
- Homarr Dashboard: http://home.medianita
|
||||
- Overseerr: http://overseerr.medianita
|
||||
- Seerr: http://seerr.medianita
|
||||
- Plex: Network host mode
|
||||
- Other services: Check compose.yml for ports and domains
|
||||
EOF
|
||||
@@ -144,7 +144,7 @@ System: $(uname -a)
|
||||
|
||||
Services Included:
|
||||
- Plex Media Server
|
||||
- Overseerr (Request Management)
|
||||
- Seerr (Request Management)
|
||||
- Prowlarr (Indexer Management)
|
||||
- Radarr (Movie Management)
|
||||
- Sonarr (TV Management)
|
||||
|
||||
24
setup.sh
24
setup.sh
@@ -188,7 +188,7 @@ if [ "$SKIP_CONFIGURATION" = false ]; then
|
||||
["RADARR_UID"]="radarr"
|
||||
["RECYCLARR_UID"]="recyclarr"
|
||||
["PROWLARR_UID"]="prowlarr"
|
||||
["OVERSEERR_UID"]="overseerr"
|
||||
["SEERR_UID"]="seerr"
|
||||
["PLEX_UID"]="plex"
|
||||
["DECYPHARR_UID"]="decypharr"
|
||||
["AUTOSCAN_UID"]="autoscan"
|
||||
@@ -293,7 +293,7 @@ SONARR_UID=${SONARR_UID}
|
||||
RADARR_UID=${RADARR_UID}
|
||||
RECYCLARR_UID=${RECYCLARR_UID}
|
||||
PROWLARR_UID=${PROWLARR_UID}
|
||||
OVERSEERR_UID=${OVERSEERR_UID}
|
||||
SEERR_UID=${SEERR_UID}
|
||||
PLEX_UID=${PLEX_UID}
|
||||
DECYPHARR_UID=${DECYPHARR_UID}
|
||||
AUTOSCAN_UID=${AUTOSCAN_UID}
|
||||
@@ -347,7 +347,7 @@ echo " - sonarr (UID: ${SONARR_UID})"
|
||||
echo " - radarr (UID: ${RADARR_UID})"
|
||||
echo " - recyclarr (UID: ${RECYCLARR_UID})"
|
||||
echo " - prowlarr (UID: ${PROWLARR_UID})"
|
||||
echo " - overseerr (UID: ${OVERSEERR_UID})"
|
||||
echo " - seerr (UID: ${SEERR_UID})"
|
||||
echo " - plex (UID: ${PLEX_UID})"
|
||||
echo " - decypharr (UID: ${DECYPHARR_UID})"
|
||||
echo " - autoscan (UID: ${AUTOSCAN_UID})"
|
||||
@@ -359,7 +359,7 @@ echo " - mediacenter (GID: ${MEDIACENTER_GID})"
|
||||
echo ""
|
||||
echo "DIRECTORIES TO BE CREATED"
|
||||
echo "-------------------------"
|
||||
echo " - ${ROOT_DIR}/config/{sonarr,radarr,recyclarr,prowlarr,overseerr,plex,autoscan,zilean,decypharr}-config"
|
||||
echo " - ${ROOT_DIR}/config/{sonarr,radarr,recyclarr,prowlarr,seerr,plex,autoscan,zilean,decypharr}-config"
|
||||
echo " - ${ROOT_DIR}/data/symlinks/{radarr,sonarr}"
|
||||
echo " - ${ROOT_DIR}/data/realdebrid-zurg"
|
||||
echo " - ${ROOT_DIR}/data/media/{movies,tv}"
|
||||
@@ -414,7 +414,7 @@ add_user_to_group $USER mediacenter
|
||||
# Create directories
|
||||
echo ""
|
||||
echo "Creating directory structure..."
|
||||
sudo mkdir -pv "${ROOT_DIR}/config"/{sonarr,radarr,recyclarr,prowlarr,overseerr,plex,autoscan,zilean,decypharr,pinchflat}-config
|
||||
sudo mkdir -pv "${ROOT_DIR}/config"/{sonarr,radarr,recyclarr,prowlarr,seerr,plex,autoscan,zilean,decypharr,pinchflat}-config
|
||||
sudo mkdir -pv "${ROOT_DIR}/data/symlinks"/{radarr,sonarr}
|
||||
sudo mkdir -pv "${ROOT_DIR}/data/realdebrid-zurg"
|
||||
sudo mkdir -pv "${ROOT_DIR}/data/media"/{movies,tv}
|
||||
@@ -432,7 +432,7 @@ sudo chown -R sonarr:mediacenter ${ROOT_DIR}/config/sonarr-config
|
||||
sudo chown -R radarr:mediacenter ${ROOT_DIR}/config/radarr-config
|
||||
sudo chown -R recyclarr:mediacenter ${ROOT_DIR}/config/recyclarr-config
|
||||
sudo chown -R prowlarr:mediacenter ${ROOT_DIR}/config/prowlarr-config
|
||||
sudo chown -R overseerr:mediacenter ${ROOT_DIR}/config/overseerr-config
|
||||
sudo chown -R seerr:mediacenter ${ROOT_DIR}/config/seerr-config
|
||||
sudo chown -R plex:mediacenter ${ROOT_DIR}/config/plex-config
|
||||
sudo chown -R decypharr:mediacenter ${ROOT_DIR}/config/decypharr-config
|
||||
sudo chown -R autoscan:mediacenter ${ROOT_DIR}/config/autoscan-config
|
||||
@@ -740,7 +740,7 @@ if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||
"prowlarr"
|
||||
"radarr"
|
||||
"sonarr"
|
||||
"overseerr"
|
||||
"seerr"
|
||||
"plex"
|
||||
"zilean"
|
||||
"zilean-postgres"
|
||||
@@ -1215,7 +1215,7 @@ echo " ✓ Recyclarr - Quality profiles and naming conventions from TRaSH Guide
|
||||
echo ""
|
||||
echo "SERVICES REQUIRING MANUAL CONFIGURATION:"
|
||||
echo " • Plex - Add media libraries (/data/media/movies, /data/media/tv)"
|
||||
echo " • Overseerr - Connect to Plex and Radarr/Sonarr (optional)"
|
||||
echo " • Seerr - Connect to Plex and Radarr/Sonarr (optional)"
|
||||
echo " • Prowlarr - Add more indexers if needed (optional)"
|
||||
echo ""
|
||||
echo "IMPORTANT - ZILEAN INDEXER:"
|
||||
@@ -1231,13 +1231,13 @@ if [ "$TRAEFIK_ENABLED" = true ]; then
|
||||
echo " • Prowlarr: http://prowlarr.${DOMAIN_NAME} (already configured!)"
|
||||
echo " • Radarr: http://radarr.${DOMAIN_NAME} (already configured!)"
|
||||
echo " • Sonarr: http://sonarr.${DOMAIN_NAME} (already configured!)"
|
||||
echo " • Overseerr: http://overseerr.${DOMAIN_NAME}"
|
||||
echo " • Seerr: http://seerr.${DOMAIN_NAME}"
|
||||
echo " • Plex: http://${DOMAIN_NAME}:32400/web"
|
||||
else
|
||||
echo " • Prowlarr: http://${DOMAIN_NAME}:9696 (already configured!)"
|
||||
echo " • Radarr: http://${DOMAIN_NAME}:7878 (already configured!)"
|
||||
echo " • Sonarr: http://${DOMAIN_NAME}:8989 (already configured!)"
|
||||
echo " • Overseerr: http://${DOMAIN_NAME}:5055"
|
||||
echo " • Seerr: http://${DOMAIN_NAME}:5055"
|
||||
echo " • Plex: http://${DOMAIN_NAME}:32400/web"
|
||||
fi
|
||||
echo ""
|
||||
@@ -1248,13 +1248,13 @@ echo " • Movies: /data/media/movies"
|
||||
echo " • TV Shows: /data/media/tv"
|
||||
echo " • YouTube: /data/media/youtube"
|
||||
echo ""
|
||||
echo " OVERSEERR - Connect to Plex and Radarr/Sonarr:"
|
||||
echo " SEERR - Connect to Plex and Radarr/Sonarr:"
|
||||
echo " • Sign in with Plex account"
|
||||
echo " • Add Radarr and Sonarr with their API keys (see below)"
|
||||
echo " • Configure quality profiles and root folders"
|
||||
echo " • Detailed guide: docker/POST-INSTALL.md"
|
||||
echo ""
|
||||
echo " API KEYS FOR OVERSEERR CONFIGURATION:"
|
||||
echo " API KEYS FOR SEERR CONFIGURATION:"
|
||||
echo " • Radarr API Key: ${RADARR_API_KEY}"
|
||||
echo " • Sonarr API Key: ${SONARR_API_KEY}"
|
||||
echo " • Prowlarr API Key: ${PROWLARR_API_KEY}"
|
||||
|
||||
@@ -89,8 +89,8 @@ setup_mediacenter_users() {
|
||||
local radarr_uid=$(find_available_uid $((sonarr_uid + 1)))
|
||||
local recyclarr_uid=$(find_available_uid $((radarr_uid + 1)))
|
||||
local prowlarr_uid=$(find_available_uid $((recyclarr_uid + 1)))
|
||||
local overseerr_uid=$(find_available_uid $((prowlarr_uid + 1)))
|
||||
local plex_uid=$(find_available_uid $((overseerr_uid + 1)))
|
||||
local seerr_uid=$(find_available_uid $((prowlarr_uid + 1)))
|
||||
local plex_uid=$(find_available_uid $((seerr_uid + 1)))
|
||||
local decypharr_uid=$(find_available_uid $((plex_uid + 1)))
|
||||
local autoscan_uid=$(find_available_uid $((decypharr_uid + 1)))
|
||||
local pinchflat_uid=$(find_available_uid $((autoscan_uid + 1)))
|
||||
@@ -109,7 +109,7 @@ setup_mediacenter_users() {
|
||||
create_system_user "radarr" "$radarr_uid" "$mediacenter_gid" "Radarr"
|
||||
create_system_user "recyclarr" "$recyclarr_uid" "$mediacenter_gid" "Recyclarr"
|
||||
create_system_user "prowlarr" "$prowlarr_uid" "$mediacenter_gid" "Prowlarr"
|
||||
create_system_user "overseerr" "$overseerr_uid" "$mediacenter_gid" "Overseerr"
|
||||
create_system_user "seerr" "$seerr_uid" "$mediacenter_gid" "Seerr"
|
||||
create_system_user "plex" "$plex_uid" "$mediacenter_gid" "Plex Media Server"
|
||||
create_system_user "decypharr" "$decypharr_uid" "$mediacenter_gid" "Decypharr"
|
||||
create_system_user "autoscan" "$autoscan_uid" "$mediacenter_gid" "Autoscan"
|
||||
@@ -127,7 +127,7 @@ setup_mediacenter_users() {
|
||||
export RADARR_UID=$radarr_uid
|
||||
export RECYCLARR_UID=$recyclarr_uid
|
||||
export PROWLARR_UID=$prowlarr_uid
|
||||
export OVERSEERR_UID=$overseerr_uid
|
||||
export SEERR_UID=$seerr_uid
|
||||
export PLEX_UID=$plex_uid
|
||||
export DECYPHARR_UID=$decypharr_uid
|
||||
export AUTOSCAN_UID=$autoscan_uid
|
||||
|
||||
@@ -17,7 +17,7 @@ output_dir.mkdir(exist_ok=True)
|
||||
|
||||
# Services to extract
|
||||
services_to_extract = {
|
||||
'overseerr': 'overseerr.yml',
|
||||
'seerr': 'seerr.yml',
|
||||
'prowlarr': 'prowlarr.yml',
|
||||
'radarr': 'radarr.yml',
|
||||
'sonarr': 'sonarr.yml',
|
||||
@@ -48,7 +48,7 @@ for service_name, filename in services_to_extract.items():
|
||||
|
||||
# Create service description
|
||||
descriptions = {
|
||||
'overseerr': 'Overseerr - Request Management',
|
||||
'seerr': 'Seerr - Request Management',
|
||||
'prowlarr': 'Prowlarr - Indexer Management',
|
||||
'radarr': 'Radarr - Movie Management',
|
||||
'sonarr': 'Sonarr - TV Show Management',
|
||||
@@ -85,4 +85,4 @@ for service_name, filename in services_to_extract.items():
|
||||
|
||||
print("\nAll services have been split into individual files!")
|
||||
print("You can now use: docker compose up -d")
|
||||
print("Or for specific services: docker compose up -d plex overseerr")
|
||||
print("Or for specific services: docker compose up -d plex seerr")
|
||||
Reference in New Issue
Block a user