docs: README'yi Türkçeleştir

This commit is contained in:
2026-01-02 20:49:10 +03:00
parent 4348f76a7c
commit 81e9fa8783

View File

@@ -1,59 +1,60 @@
# q-buffer # q-buffer
A production-ready monorepo that orchestrates qBittorrent torrents in a controlled playback loop with strict peer enforcement. 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.
## Overview ## Neler yapar?
- Backend: Node.js + TypeScript + Express + socket.io - qBittorrent WebUI API ile bağlanır, aktif torrent listesini gösterir.
- Frontend: React + Vite + TypeScript (shadcn-style UI) - Seçilen torrent için loop (indir → sil → yeniden ekle) işlemini yönetir.
- Storage: JSON file DB with atomic writes and mutex - Allow IP kuralıyla agresif peer kısıtlaması uygular (destek varsa ban).
- Docker: dev (two containers) and prod (single container) - Timer kurallarıyla etiket bazlı seed süresi dolan torrentleri otomatik siler.
- Gerçek zamanlı durum, log ve metrikleri UI üzerinden gösterir.
## Quick Start ## Hızlı Başlangıç
1. Copy `.env.example` to `.env` and fill values. 1) `.env.example` dosyasını `.env` olarak kopyalayın ve değerleri doldurun.
2. Start dev stack: 2) Geliştirme ortamını başlatın:
```bash ```bash
docker-compose -f docker-compose.dev.yml up --build docker-compose -f docker-compose.dev.yml up --build
``` ```
3. Open: 3) Açın:
- Web: http://localhost:5173 - Web: http://localhost:5173
- API/Socket: http://localhost:3001 - 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 ## Production
```bash ```bash
docker-compose up --build docker-compose up --build
``` ```
Open http://localhost:3001 Ardından http://localhost:3001
## Features ## Ortam Değişkenleri
- Login with env-configured credentials (JWT httpOnly cookie)
- Torrent list and selection
- Torrent archive to `/data/torrents/{hash}.torrent`
- Loop engine with delete/re-add between runs
- Aggressive allow-IP enforcement (peer ban when supported)
- Dry run report and profiles
- Real-time status/logs via socket.io
## Environment Variables
- `QBIT_BASE_URL`, `QBIT_USERNAME`, `QBIT_PASSWORD` - `QBIT_BASE_URL`, `QBIT_USERNAME`, `QBIT_PASSWORD`
- `APP_USERNAME`, `APP_PASSWORD`, `JWT_SECRET` - `APP_USERNAME`, `APP_PASSWORD`, `JWT_SECRET`
- `POLL_INTERVAL_MS`, `ENFORCE_INTERVAL_MS`, `DEFAULT_DELAY_MS`, `MAX_LOOP_LIMIT` - `POLL_INTERVAL_MS`, `ENFORCE_INTERVAL_MS`, `DEFAULT_DELAY_MS`, `MAX_LOOP_LIMIT`
- `WEB_ALLOWED_HOSTS` (ör: `localhost,qbuffer.bee`)
## Folder Layout ## Klasör Yapısı
- `apps/server`: Express API + socket.io - `apps/server`: Express API + socket.io
- `apps/web`: Vite React UI - `apps/web`: Vite React UI
- `data`: JSON DB, logs, torrent archive - `data`: JSON DB, loglar, arşivlenen torrent dosyaları
## Notes
- If magnet metadata generation fails, use Advanced upload to provide `.torrent` manually.
- The loop engine deletes downloaded data between loops.