Docker deployment is highly recommended as it automatically sets up Plank, Prowlarr (torrent search), and FlareSolverr (captcha solving) with proper networking.
Quick Start
Create environment file
.env with your settings (see Environment Variables).Services
The Docker Compose setup includes three services:Plank (Main Application)
- Ports:
3300(web interface),6881(torrent client) - Volumes:
plank-db- SQLite databaseplank-data- Downloaded media files./media- Media library (optional, configurable viaMEDIA_PATH)
- Health Check: HTTP endpoint at
http://localhost:3000/health
Prowlarr (Torrent Indexer)
- Port:
9696 - Image:
lscr.io/linuxserver/prowlarr:latest - Volume:
prowlarr-config- Configuration and API keys - Purpose: Searches torrent indexers and provides results to Plank
FlareSolverr (Captcha Solver)
- Port:
8191 - Image:
ghcr.io/flaresolverr/flaresolverr:latest - Purpose: Bypasses captchas on torrent sites
Docker Compose Configuration
The completedocker-compose.yml configuration:
docker/docker-compose.yml
Essential Environment Variables
Minimal.env for Docker:
.env
Management Commands
Start Services
Stop Services
View Logs
Restart Services
Rebuild Image
Update to Latest Version
Volumes and Data
Named Volumes
Docker automatically manages these volumes:plank-db- SQLite database at/app/db/plank.dbplank-data- Downloaded torrent files at/app/dataprowlarr-config- Prowlarr configuration and API keys
Host Bind Mount
The media library can be mounted from your host:MEDIA_PATH in .env to customize:
Backup Data
Networking
Internal Docker Network
Services communicate using Docker service names:- Plank → Prowlarr:
http://prowlarr:9696 - Plank → FlareSolverr:
http://flaresolverr:8191
Use service names (e.g.,
prowlarr) for internal communication, not localhost.Port Mapping
| Service | Internal Port | Host Port |
|---|---|---|
| Plank Web | 3000 | 3300 |
| Plank Torrent | 6881 | 6881 |
| Prowlarr | 9696 | 9696 |
| FlareSolverr | 8191 | 8191 |
Custom Ports
To change host ports, editdocker-compose.yml:
ORIGIN accordingly:
Prowlarr Configuration
Add indexers
Go to Indexers → Add Indexer and configure your preferred torrent sources:
- YTS (movies, small file sizes)
- 1337x (general content)
- The Pirate Bay (largest library)
- Nyaa.si (anime)
- EZTV (TV shows)
Configure FlareSolverr (if needed)
Some indexers require FlareSolverr for captcha solving:
- Go to Settings → Indexers
- Set FlareSolverr URL:
http://flaresolverr:8191
Troubleshooting
"Cross-site POST form submissions are forbidden"
"Cross-site POST form submissions are forbidden"
This CSRF error occurs when Restart after changing:
ORIGIN doesn’t match your browser URL.Solution:.env
Containers fail to start
Containers fail to start
Check for port conflicts:View detailed logs:
Can't connect to Prowlarr
Can't connect to Prowlarr
Verify Prowlarr is running:Test connectivity from Plank container:Check Prowlarr logs:
Permission errors on volumes
Permission errors on volumes
The Plank container runs as the default user. For custom user IDs:Or set ownership on host:
docker-compose.yml
High memory usage
High memory usage
Monitor container resources:Limit memory in
docker-compose.yml:Production Deployment
For production deployments:- Use a reverse proxy (Nginx, Traefik, Caddy) for HTTPS
- Set strong secrets:
- Configure firewall to restrict access to ports 9696, 8191
- Enable restart policies (already configured in docker-compose.yml)
- Set up regular backups of volumes
- Use a VPN for torrent traffic (see Security)
Next Steps
Environment Variables
Complete reference for all configuration options
Security Best Practices
Configure secure deployments and VPN protection
Torrent Indexers
Configure Prowlarr indexers for best results
Troubleshooting
Common issues and solutions