mirror of
https://github.com/AmarnathCJD/CloudTorrent.git
synced 2026-04-27 06:45:58 +03:00
self-hosted web torrent-client in pure go
| .github | ||
| .vscode | ||
| static | ||
| .gitignore | ||
| arigo.go | ||
| Dockerfile | ||
| ffmpeg.go | ||
| go.mod | ||
| go.sum | ||
| handlers.go | ||
| helpers.go | ||
| main.go | ||
| Procfile | ||
| README.md | ||
| torrent.go | ||
| websocket.go | ||
CloudTorrent
A modern, self-hosted torrent client with web UI. Features include:
- Torrent Downloads - Using Rain torrent library
- Direct Downloads - Via Aria2 integration (optional)
- Video Conversion - Via FFmpeg integration (optional)
- Real-time Updates - WebSocket-based live progress
- Modern UI - Dark editorial theme, mobile responsive
Features
- 🧲 Magnet link and torrent file support
- ⚡ Real-time download progress via WebSocket
- 📁 Built-in file browser with download/stream
- 🎬 Video player with streaming support
- 🔄 Aria2 integration for HTTP/FTP downloads
- 🎥 FFmpeg video conversion (MP4, WebM, MKV)
- 🔍 Torrent search
- 📱 Mobile responsive UI
Quick Start
Using Docker
docker build -t cloudtorrent .
docker run -d -p 8080:8080 -v ./downloads:/app/downloads cloudtorrent
Manual Build
# Prerequisites: Go 1.21+
go build -o cloudtorrent .
./cloudtorrent
Access the UI at http://localhost:8080
Optional Dependencies
-
Aria2 - For HTTP/FTP direct downloads
- Install:
apt install aria2orbrew install aria2 - CloudTorrent will auto-detect and enable if available
- Install:
-
FFmpeg - For video format conversion
- Install:
apt install ffmpegorbrew install ffmpeg - CloudTorrent will auto-detect and enable if available
- Install:
Configuration
By default, CloudTorrent uses:
- Port:
8080(or auto-detected available port) - Downloads directory:
./downloads/ - Torrent data:
./downloads/torrents/ - Database:
./downloads/torrents.db
API Endpoints
Torrents
POST /api/add- Add torrent by magnetGET /api/torrents- List active torrentsPOST /api/remove- Remove torrentPOST /api/pause- Pause torrentPOST /api/resume- Resume torrent
Aria2 (if available)
GET /api/aria2/status- Check availabilityPOST /api/aria2/add- Add download URLGET /api/aria2/downloads- List downloads
FFmpeg (if available)
GET /api/ffmpeg/status- Check availabilityPOST /api/ffmpeg/convert- Start conversionGET /api/ffmpeg/queue- List conversions
WebSocket
GET /ws- Real-time updates
License
MIT