Files
q-buffer/README.md

61 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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) qBittorrentte 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 qBittorrentte 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,qbuffer.panda`)
## Klasör Yapısı
- `apps/server`: Express API + socket.io
- `apps/web`: Vite React UI
- `data`: JSON DB, loglar, arşivlenen torrent dosyaları