Commit 387e35
2026-04-21 11:52:59 Anonymous: Base| /dev/null .. streaming service/*arr stack setup overview.md | |
| @@ 0,0 1,110 @@ | |
| + | # *Arr Stack Setup Overview |
| + | |
| + | ## Overview |
| + | |
| + | The stack consists of: |
| + | |
| + | - [Radarr](https://radarr.video) — movies |
| + | - [Sonarr](https://sonarr.tv) — TV series |
| + | - [Prowlarr](https://prowlarr.com) — indexers |
| + | - [qBittorrent](https://www.qbittorrent.org) — downloads |
| + | - [Jellyseerr](https://docs.seerr.dev) — request UI! |
| + | |
| + |  |
| + | |
| + | |
| + | ## Core Principles |
| + | Single data root in container: `/data` |
| + | Config isolation in container: `/config` |
| + | UID/GID consistency: `1000:1000` |
| + | No `user:` overrides in containers |
| + | |
| + | ## Configuration Management |
| + | |
| + | Each service maintains isolated configuration directories: |
| + | |
| + | ``` |
| + | /opt/docker/media/config/ |
| + | ├── radarr/ |
| + | ├── sonarr/ |
| + | ├── prowlarr/ |
| + | ├── qbittorrent/ |
| + | └── jellyseerr/ |
| + | ``` |
| + | |
| + | The docker-compose.yml file and all persistent configurations are co-located in this structure for maintainability and portability. |
| + | |
| + | ## Network Exposure Policy |
| + | |
| + | Only one service is intended for external access: |
| + | |
| + | [Jellyseerr](seerr.lucjans26.com) (user-facing interface) |
| + | |
| + | All other services are restricted to internal network access only: |
| + | |
| + | - Radarr (administration only) |
| + | - Sonarr (administration only) |
| + | - Prowlarr (administration only) |
| + | - qBittorrent (administration only) |
| + | |
| + | This reduces attack surface and prevents unintended external exposure of management tools. |
| + | |
| + | --- |
| + | ## Key Setup Commands |
| + | Start stack |
| + | ``` |
| + | docker compose up -d |
| + | ``` |
| + | Stop stack |
| + | ``` |
| + | docker compose down |
| + | ``` |
| + | Restart a service |
| + | ``` |
| + | docker restart radarr |
| + | ``` |
| + | View logs |
| + | ``` |
| + | docker compose logs -f sonarr |
| + | ``` |
| + | --- |
| + | ## Permission Management |
| + | |
| + | To ensure container access consistency across all services: |
| + | |
| + | ### Fix configuration ownership |
| + | ``` |
| + | sudo chown -R 1000:1000 /opt/docker/media/config |
| + | ``` |
| + | |
| + | ### Fix media library ownership |
| + | ``` |
| + | sudo chown -R 1000:1000 /mnt/BonusDisk/JellyfinMedia/Streaming |
| + | ``` |
| + | |
| + | These commands ensure all containers can properly read and write to both configuration and media directories. |
| + | |
| + | ## Container Inspection & Debugging |
| + | ### Inspect container configuration |
| + | ``` |
| + | docker inspect radarr |
| + | ``` |
| + | |
| + | This is used to verify: |
| + | |
| + | - volume mappings |
| + | - environment variables |
| + | - network configuration |
| + | - runtime state |
| + | |
| + | ## Summary |
| + | |
| + | This stack is designed for: |
| + | |
| + | - full automation of media acquisition |
| + | - strict separation between configuration and media |
| + | - consistent permission handling via UID/GID alignment |
| + | - minimal external exposure for security |
| + | - predictable and reproducible container behavior |
| + | |
| + | Once correctly configured, the system operates without manual intervention, automatically managing download, import, and organization workflows across both movies and TV series. |
