4344b4bba4e93a9e09a08e9caf0241f678c845a0
du.pe - Simple, Fast & Lightweight Torrent Server ⚡📦
A self-hosted torrent-based file manager and media player, similar to Put.io — fast, minimal, and elegant.
Add torrents, monitor downloads, and instantly stream videos through a clean web interface! 🖥️🎬
✨ Features
-
🧲 Add Torrents
- Upload
.torrentfiles (via form) - Add magnet links (via prompt)
- Upload
-
👤 Profil & Avatar
- Profil bilgilerini görüntüle
- Avatarı güvenli şekilde yükle/kırp (PNG, 3MB sınır)
-
📥 Download Management
- View active torrents
- See progress, speed, and remaining time
- Browse file trees within torrents
-
🔴 Real-Time Updates
- Live progress updates via WebSocket
-
🎞️ Instant Playback
- Stream video files directly in the browser
- ffmpeg-ready structure for Safari/codec compatibility
-
🗂️ Clean & Modern Web Interface
- Svelte-powered fast and lightweight UI
- Search bar, torrent list, detailed view
- Custom modal video player: title, progress bar, volume, subtitles, and download icons
- Mobile-friendly layout with hamburger menu support
-
🐳 Easy Docker Setup
- One-command deployment with
docker-compose.yml
- One-command deployment with
📝 Login and user authentication are not yet implemented — planned in the roadmap.
🏗️ Architecture
root
├─ client/ # Svelte-based Web UI
├─ server/ # Node.js (Express) API + WebSocket + WebTorrent
└─ docker-compose.yml
-
client
- Developed and built using Vite
- Backend API configured via
VITE_API(e.g.,http://192.168.x.x:3001)
-
server
- Express REST endpoints (list, add, stream torrents)
- Real-time updates via WebSocket (
progressevents) - WebTorrent for downloading and seeding
- Optional ffmpeg integration for video transcoding
🚀 Quick Start
🐳 Docker Compose (Recommended)
docker compose up -d --build
Default Ports:
- RUN:
http://localhost:3001
🔌 API & WebSocket Endpoints
| Method | URL | Description |
|---|---|---|
GET |
/api/torrents |
Returns active torrents |
POST |
/api/transfer |
Adds a torrent via .torrent file upload |
POST |
/api/magnet |
Adds a torrent via magnet link |
GET |
/stream/:infoHash/:fileIndex |
Streams a video or file |
WS |
ws://<API_HOST>:3001/ |
Torrent progress updates (type: progress) |
🧠 Developer Notes
- Safari Compatibility: Some codecs may cause issues. It’s recommended to remux files (
.mkv → .mp4) with ffmpeg if needed.
🛣️ Roadmap
- 🔐 Authentication (JWT or session-based)
- 🎛️ Advanced player features (subtitle selection, quality control)
- 🧹 File management, trash bin, and history
- 🧪 Automated testing and CI setup
Description
Languages
Svelte
51.8%
JavaScript
45.9%
CSS
2.1%
