This project sets up a Private Torrent Downloader on your server using Transmission for torrent downloading and FileBrowser for file management. Nginx Proxy Manager provides secure, easy access with HTTPS to both services.
With this setup, you can:
- Download torrents privately and securely on your own server.
- Manage your downloaded files with a simple web interface (FileBrowser).
- Access all services securely through Nginx Proxy Manager with HTTPS.
- Privacy & Control: Full control over your environment ensures privacy and avoids third-party clients.
- Seamless Access: User-friendly experience with Transmission, FileBrowser, and Nginx Proxy Manager.
- Web-Based Management: Both Transmission and FileBrowser are accessible through a web interface.
- Enhanced Security: Nginx Proxy Manager enables secure access to services via HTTPS.
- A Linux server with Docker and Docker Compose installed.
- A GitHub account for repository management.
- A domain for Nginx Proxy Manager setup (optional but recommended).
- Transmission: Access your torrent downloader via https://tor.techdevops.me
- FileBrowser: Access your file manager via https://download.techdevops.me
- Fork the Private-Torrent-Downloader repository on GitHub.
Set up GitHub secrets for automatic deployment:
- Navigate to Settings > Secrets > Actions in your GitHub repository.
- Add the following secrets:
SSH_PRIVATE_KEY: Your private SSH key for server access.GHUB_USERNAME: Your GitHub username.TOKEN: Your GitHub personal access token.
In .github/workflows/deploy.yml, set the following environment variables:
INSTANCE_IP: Your server's IP address.USERNAME: Your server's username, usuallyubuntu.
Ensure SSH access is configured by adding your public key to ~/.ssh/authorized_keys on the server.
Pushing changes to the main branch will automatically trigger the deployment process.
Once deployment is complete, access Nginx Proxy Manager at http://your-server-ip:81.
- Log in with default credentials:
- Email:
admin@example.com - Password:
changeme
- Email:
- Set up a new admin user.
- Add proxy hosts for Transmission and FileBrowser:
- Transmission: Proxy host on port
9091. - FileBrowser: Proxy host on port
80.
- Transmission: Proxy host on port
- Enable SSL with Let's Encrypt for HTTPS.
Access your services via the configured domain or IP:
- Transmission:
https://your-domain/transmission - FileBrowser:
https://your-domain/filebrowser
Log in to FileBrowser with default credentials:
- Username:
admin - Password:
admin
Change the password upon first login for security.
- Image:
pasinduljay/transmission:1.1 - Purpose: Torrent client for downloading torrents.
- Volume Mounts:
/downloads: Directory for downloaded files./config: Configuration files.
- Image:
pasinduljay/filebrowser:1.1 - Purpose: Web-based file manager for managing downloaded files.
- Volume Mounts:
/srv: Directory shared with Transmission.
- Image:
pasinduljay/nginx-proxy-manager:1.1 - Purpose: Manage access with SSL-enabled proxy hosts.