-
Notifications
You must be signed in to change notification settings - Fork 0
FAQ
Common questions and answers about SafeHarbor Media Stack setup, configuration, and troubleshooting.
A: SafeHarbor is a complete Docker-based media management solution that routes all traffic through a VPN for privacy. What makes it unique is the revolutionary combination of keepalive client/server monitoring + live Telegram notifications - a dual-system approach that detects VPN issues and instantly alerts you on your phone. It includes download clients (qBittorrent), media managers (Sonarr, Radarr), indexers (Prowlarr), and this game-changing monitoring system.
A: Basic Docker and command-line knowledge is helpful, but the detailed guides make it accessible to beginners. Most users can follow the step-by-step installation guide successfully.
A: SafeHarbor runs on:
- Linux (Ubuntu, Debian, CentOS, etc.)
- Synology NAS (DSM 6.2+ with Docker)
- Windows (with WSL2 and Docker Desktop)
- macOS (with Docker Desktop)
- Raspberry Pi (ARM64 support)
A: Yes, but be aware of your provider's terms of service regarding torrenting. Most VPS providers prohibit torrent traffic. Consider using a dedicated server or seedbox service instead.
A: The VPN provides:
- Privacy protection from ISP monitoring
- IP address masking for download activities
- Geo-restriction bypass for some indexers
- Legal protection in restrictive jurisdictions
A: SafeHarbor features a unique dual-system architecture that no other media stack offers:
๐ง Keepalive Client/Server System:
- Client monitors VPN health from inside the protected network
- Server receives reports and coordinates responses from your real IP
- Continuous detection of DNS leaks, connection failures, and networking issues
๐ฑ Telegram Notification System:
- Instant mobile alerts when any issue is detected
-
Interactive commands (
/ping,/status,/help) for remote monitoring - Smart log analysis that provides meaningful, actionable alerts
โก The Magic: These systems work together - keepalive detects technical issues, Telegram instantly notifies you with human-friendly alerts. Most other stacks fail silently, leaving you exposed without knowing.
A: 25+ providers are supported via Gluetun, including:
- Popular: PrivateVPN, NordVPN, ExpressVPN, Surfshark
- Privacy-focused: Mullvad, ProtonVPN, IVPN
- Budget-friendly: Windscribe, TunnelBear, HideMyAss
See the Gluetun provider list for complete compatibility.
A: SafeHarbor includes multiple protection layers:
- Kill switch: Traffic stops if VPN fails
- Network isolation: Download clients can't access internet without VPN
- Auto-reconnection: Gluetun automatically reconnects
- Monitoring alerts: Telegram notifications for connection issues
A: Absolutely! This is one of SafeHarbor's key advantages. The keepalive + Telegram monitoring system can be deployed independently with any Docker VPN setup:
# Add to your existing docker-compose.yml
services:
# Your existing VPN container (gluetun, transmission-vpn, etc.)
your-vpn:
# ... your existing VPN config ...
# Add SafeHarbor's dual monitoring system
keepalive-server:
image: safeharbor/keepalive-server:latest
environment:
- TELEGRAM_BOT_TOKEN=your_bot_token
- TELEGRAM_CHAT_ID=your_chat_id
ports:
- "5421:5421"
keepalive-client:
image: safeharbor/keepalive-client:latest
network_mode: "container:your-vpn" # Monitor your VPN
depends_on: [your-vpn]Benefits: Drop-in monitoring, no changes to existing setup, universal VPN support, instant mobile alerts.
A: Not recommended. Running two VPN clients can cause conflicts. SafeHarbor's containerized VPN only affects the media stack, not your entire system.
A: Check your VPN IP:
docker exec gluetun wget -qO- https://ipinfo.io/jsonThe IP should match your VPN server location, not your real location.
A:
- CPU: Dual-core 2GHz+ (Intel/AMD x64)
- RAM: 4GB minimum, 8GB+ recommended
- Storage: 50GB+ free space
- Network: Stable broadband connection
A: Yes! Raspberry Pi 4 with 4GB+ RAM works well. Use external storage for downloads and consider adjusting memory limits for containers.
A: Depends on your usage:
- API calls: <1GB/month for *arr applications
- Downloads: Whatever you configure in qBittorrent
- Monitoring: <100MB/month for Telegram bot
A: Absolutely! SafeHarbor organizes media files that Plex/Jellyfin can read. Just ensure your media folders are accessible to both systems.
A: Initial setup requires configuring indexers and download clients in each *arr app, but Prowlarr simplifies this by syncing indexers to all applications automatically.
A: Yes! You can migrate existing configurations by copying config files to the appropriate directories before starting SafeHarbor.
A: Edit the port mappings in compose.yaml:
qbittorrent:
ports:
- "9802:8085" # Change 9802 to your preferred portA: Yes! SafeHarbor is designed to be extensible. You can add services like:
- Bazarr (subtitles)
- Lidarr (music)
- LazyLibrarian (books)
- Ombi/Overseerr (requests)
Bonus: The keepalive + Telegram monitoring system will automatically monitor any new services you add to the VPN network, providing the same instant failure notifications.
A: All configurations are stored in the paths defined by VOLUME_DOCKER_PROJECT in your .env file. Each service has its own subdirectory (e.g., sonarr/config/, radarr/config/).
A: No, it's optional but highly recommended. The monitoring provides:
- VPN connection status alerts
- Download completion notifications
- System health monitoring
- Remote control commands
A:
- Message @BotFather on Telegram
- Send
/newbotand follow prompts - Copy the bot token to your
.envfile - Get your chat ID from @userinfobot
- Add both values to
.envand restart the stack
A: Available commands:
-
/ping- Test bot connectivity -
/status- System and VPN status -
/help- List all commands - Text messages - Log analysis and alerts
A: The bot responds to the configured chat ID only. For multiple users, you can:
- Create a Telegram group and add the bot
- Use the group chat ID in configuration
- All group members can interact with the bot
A: Yes! There are several solutions for dynamic IP addresses:
๐ Dynamic DNS (DDNS) Services:
-
DuckDNS (free) -
yourname.duckdns.org -
No-IP (free tier available) -
yourname.ddns.net -
Dynu (free) -
yourname.dynu.net -
Cloudflare (free with domain) -
monitor.yourdomain.com
๐ Router-based DDNS:
- Most routers support built-in DDNS clients
- Automatically updates your IP when it changes
- Works with services like DuckDNS, No-IP
โ๏ธ Custom Domain Solutions:
- Cloudflare Tunnel (free) - Secure tunnel without port forwarding
- Ngrok (free tier) - Secure tunnels to localhost
- Tailscale - Mesh VPN for secure access
๐ฑ Configuration Example:
# In your .env file, use DDNS hostname instead of IP
KEEPALIVE_SERVER_URL=https://yourname.duckdns.org:5421
# Or with custom domain
KEEPALIVE_SERVER_URL=https://monitor.yourdomain.com:5421๐ก Pro Tip: Cloudflare Tunnel is recommended for maximum security as it doesn't require port forwarding and provides SSL certificates automatically.
A: Common causes:
-
VPN authentication failure - Check credentials in
.env - Permission issues - Verify PUID/PGID settings match your user
- Port conflicts - Ensure no other services use the same ports
- Insufficient resources - Check available RAM and CPU
A: Check these items:
- Indexers configured in Prowlarr and synced to *arr apps
- Download client (qBittorrent) added to *arr applications
- VPN connection working (can't download without VPN)
- Disk space available in download directory
A: Troubleshooting steps:
-
Check container status:
docker compose ps -
Verify ports:
netstat -tlnp | grep 9802 - Check firewall: Ensure ports 9802-9811 are open
-
Container logs:
docker compose logs service-name
A: Try these solutions:
- Change VPN protocol from UDP to TCP (or vice versa)
-
Switch VPN servers by changing
SERVER_COUNTRIES - Check VPN account for active subscription
-
Review logs:
docker logs gluetun --tail 50
A: Common issues:
- Path mapping - Ensure download and media paths match between qBittorrent and *arr apps
- Permissions - Files must be readable by media server user
- Import settings - Check "Completed Download Handling" in *arr apps
- File naming - Ensure proper scene naming for recognition
A: Recommended structure:
/media/
โโโ movies/ # Radarr manages this
โโโ tv/ # Sonarr manages this
โโโ music/ # Lidarr manages this
โโโ books/ # Readarr manages this
A: Regular backups should include:
# Backup configurations
tar -czf safeharbor-backup.tar.gz \
.env compose.yaml */config/
# Backup to cloud storage
rclone copy safeharbor-backup.tar.gz remote:backups/A: Yes! The process:
-
Stop services:
docker compose down -
Backup configurations and
.envfile - Install SafeHarbor on new machine
- Restore configurations to new location
-
Update paths in
.envif needed -
Start services:
docker compose up -d
A: Planning recommendations:
- Configurations: 1-5GB
- Downloads: 50-500GB (temporary storage)
- Media library: Depends on collection size
- Buffer space: 20% extra for download peaks
A: Recommended schedule:
- Security updates: Immediately when available
- Container updates: Weekly or bi-weekly
- SafeHarbor repository: Monthly
- Major versions: Quarterly with testing
A: SafeHarbor maintains backward compatibility, but:
- Minor updates: Usually seamless
- Major updates: May require configuration changes
- Always backup before updating
- Read release notes for breaking changes
A: Yes:
# Update single container
docker compose pull qbittorrent
docker compose up -d qbittorrent
# Update all containers
docker compose pull && docker compose up -dA: Several options:
- VPN to home network (most secure)
- Reverse proxy with SSL certificates
- Cloudflare Tunnel for secure exposure
- Port forwarding (least secure, not recommended)
A: Check these settings:
- Firewall rules allow the ports
-
Bind to all interfaces: Use
0.0.0.0:portinstead of127.0.0.1:port - Docker network configuration allows external access
- Router configuration for local network access
A: Yes! Options include:
- Local DNS: Set up Pi-hole or router DNS entries
- Dynamic DNS: Use services like DuckDNS or No-IP
- Reverse proxy: Traefik or Nginx with SSL certificates
A: Security features:
- VPN isolation prevents IP leaks
- Container isolation limits attack surface
- No external exposure by default
- Active monitoring - keepalive system continuously verifies VPN protection
- Instant leak detection - Telegram alerts if your real IP is exposed
- DNS leak protection - continuous verification that queries don't leak
- Regular updates for security patches
A: Not recommended without proper security:
- Use VPN access to your home network instead
- If you must expose services, use:
- Strong authentication (2FA where possible)
- SSL certificates
- Fail2ban or similar protection
- Regular security monitoring
A: SafeHarbor itself collects no data. Individual services may log:
- Local logs only (not sent anywhere)
- API requests to indexers and trackers
- VPN connection logs (varies by provider)
A: Change defaults immediately:
-
qBittorrent: Default is
admin/adminadmin - Other services: Usually no default password, set one in settings
- Use strong, unique passwords for each service
A: Optimization tips:
- Allocate more RAM if available
- Use SSD storage for configurations
- Limit concurrent downloads in qBittorrent
- Adjust indexer refresh intervals in *arr apps
- Enable hardware acceleration where supported
A: Yes, add resource limits to compose.yaml:
services:
qbittorrent:
deploy:
resources:
limits:
memory: 1G
cpus: '1.0'A: Depends on your hardware:
- Basic system: 5-20 active torrents
- Mid-range: 20-100 active torrents
- High-end: 100+ active torrents
- Monitor performance and adjust limits as needed
A: Support resources:
- Troubleshooting guide for common issues
- GitHub Issues for bug reports and feature requests
- Community forums for user discussions
- Documentation for detailed guides
A: When reporting issues:
- Check existing issues first
- Provide system information (OS, Docker version)
-
Include relevant logs from
docker compose logs - Describe steps to reproduce the problem
- Use issue templates on GitHub
A: Yes! The keepalive + Telegram monitoring system is designed to work with any Docker VPN container, including:
- Gluetun (recommended)
- transmission-openvpn
- qbittorrent-vpn
- Custom VPN containers
Simply deploy the monitoring components alongside your existing VPN setup - no modifications to your current stack required.
A: Absolutely! Contributions welcome:
- Documentation improvements
- Bug fixes and features
- Testing on different platforms
- Community support
- Monitoring system enhancements - help improve the keepalive + Telegram integration
See the contribution guidelines on GitHub for details.
Still have questions?
- Check the Troubleshooting guide
- Search existing GitHub Issues
- Open a new issue if your question isn't answered
Quick Links:
- Installation Guide - Getting started
- Configuration - Advanced settings
- Updates - Keeping current
- Synology Guide - NAS-specific setup