# q-buffer q-buffer, qBittorrent üzerinde torrentleri kontrollü şekilde döngüye almayı ve peer kısıtlamasını otomatikleştirmeyi amaçlayan bir uygulamadır. Buffer ekranında torrent seçip loop akışını başlatabilir, Timer ekranında etiket bazlı otomatik silme kuralları tanımlayabilirsiniz. ## Neler yapar? - qBittorrent WebUI API ile bağlanır, aktif torrent listesini gösterir. - Seçilen torrent için loop (indir → sil → yeniden ekle) işlemini yönetir. - Allow IP kuralıyla agresif peer kısıtlaması uygular (destek varsa ban). - Timer kurallarıyla etiket bazlı seed süresi dolan torrentleri otomatik siler. - Gerçek zamanlı durum, log ve metrikleri UI üzerinden gösterir. ## Hızlı Başlangıç 1) `.env.example` dosyasını `.env` olarak kopyalayın ve değerleri doldurun. 2) Geliştirme ortamını başlatın: ```bash docker-compose -f docker-compose.dev.yml up --build ``` 3) Açın: - Web: http://localhost:5173 - API/Socket: http://localhost:3001 ## Kullanım (Buffer) 1) qBittorrent’te torrentleri ekleyin (UI listeye düşer). 2) Loop yapmak istediğiniz torrent için listede **upload ikonu**na tıklayın ve `.torrent` dosyasını seçin. - Bu işlem torrent dosyasını arşivler. - **Arşiv yüklenmeden Loop Setup başlamaz.** 3) Allow IP, Loop sayısı ve Delay değerlerini girip **Start**’a basın. ## Kullanım (Timer) 1) Etiketleri qBittorrent’te oluşturun (radarr, tv-sonarr gibi). 2) Timer ekranında etiket seçip seed süresi kuralı ekleyin. 3) Süresi dolan torrentler qBittorrent ve diskten silinir. ## Production ```bash docker-compose up --build ``` Ardından http://localhost:3001 ## Ortam Değişkenleri - `QBIT_BASE_URL`, `QBIT_USERNAME`, `QBIT_PASSWORD` - `APP_USERNAME`, `APP_PASSWORD`, `JWT_SECRET` - `POLL_INTERVAL_MS`, `ENFORCE_INTERVAL_MS`, `DEFAULT_DELAY_MS`, `MAX_LOOP_LIMIT` - `WEB_ALLOWED_HOSTS` (ör: `localhost,qbuffer.bee`) ## Klasör Yapısı - `apps/server`: Express API + socket.io - `apps/web`: Vite React UI - `data`: JSON DB, loglar, arşivlenen torrent dosyaları