# Docker Deployment Guide This guide covers running PrunArr using Docker and Docker Compose. ## Quick Start ### Pull from GitHub Container Registry PrunArr images are automatically built and published to GitHub Container Registry (GHCR): ```bash # Pull latest version docker pull ghcr.io/haijeploeg/prunarr:latest # Pull specific version docker pull ghcr.io/haijeploeg/prunarr:1.0.0 # Pull by major version (automatically gets latest minor/patch) docker pull ghcr.io/haijeploeg/prunarr:1 ``` **Available Tags:** - `latest` - Latest stable release from main branch - `1.0.0` - Full version (e.g., v1.0.0 → 1.0.0) - `1.0` - Major.minor version (e.g., v1.0.0 → 1.0) - `1` - Major version only (e.g., v1.0.0 → 1) **Supported Architectures:** - `linux/amd64` (x86_64) - `linux/arm64` (ARM 64-bit, including Apple Silicon) ### Build Locally ```bash # Clone the repository git clone https://github.com/hploeg/prunarr.git cd prunarr # Build the image docker build -t prunarr:latest . # Build for multiple architectures (requires buildx) docker buildx build --platform linux/amd64,linux/arm64 -t prunarr:latest . ``` ## Running with Docker ### Basic Usage Run a one-time command: ```bash docker run --rm \ -e RADARR_API_KEY="your-api-key" \ -e RADARR_URL="https://radarr.example.com" \ -e SONARR_API_KEY="your-api-key" \ -e SONARR_URL="https://sonarr.example.com" \ -e TAUTULLI_API_KEY="your-api-key" \ -e TAUTULLI_URL="https://tautulli.example.com" \ ghcr.io/haijeploeg/prunarr:latest movies list --limit 10 ``` ### With Persistent Cache Create a volume for cache persistence: ```bash docker volume create prunarr-cache docker run --rm \ -e RADARR_API_KEY="your-api-key" \ -e RADARR_URL="https://radarr.example.com" \ -e SONARR_API_KEY="your-api-key" \ -e SONARR_URL="https://sonarr.example.com" \ -e TAUTULLI_API_KEY="your-api-key" \ -e TAUTULLI_URL="https://tautulli.example.com" \ -e CACHE_ENABLED=true \ -v prunarr-cache:/home/prunarr/.prunarr/cache \ ghcr.io/haijeploeg/prunarr:latest series list --limit 10 ``` ### Using Config File Mount a config file instead of environment variables: ```bash docker run --rm \ -v $(pwd)/config.yaml:/app/config.yaml:ro \ -v prunarr-cache:/home/prunarr/.prunarr/cache \ ghcr.io/haijeploeg/prunarr:latest --config /app/config.yaml movies list ``` ## Docker Compose ### Setup 1. Copy the example docker-compose file: ```bash # Already included in the repository cp docker-compose.yml docker-compose.yml ``` 2. Create a `.env` file with your API keys: ```bash cat > .env <