adding scheduler
This commit is contained in:
@@ -18,6 +18,7 @@ Transmission Manager serves a fast, clean, dark-mode Single Page Application (SP
|
||||
- Filter torrents instantly by name.
|
||||
- Sort by **Status**, **Name**, **Progress**, **Ratio**, **Size**, **Speed**, or **Availability**.
|
||||
- **Interactive Controls**: Pause or resume individual torrents directly from the web interface.
|
||||
- **Smart Seed Scheduler**: Opt completed torrents in from the Scheduler tab, choose 1–100 managed seed slots, and rotate an idle slot to the least recently seeded waiting torrent after one hour without upload. A persistent cycle history shows activations and rotations.
|
||||
- **Robust Transmission RPC Support**:
|
||||
- Automatically handles Transmission `409 Conflict` session ID (`X-Transmission-Session-Id`) handshakes.
|
||||
- Supports optional HTTP Basic Authentication.
|
||||
@@ -33,6 +34,9 @@ Transmission Manager is configured entirely via environment variables:
|
||||
| `TRANSMISSION_URL` | **Yes** | Absolute HTTP or HTTPS RPC endpoint URL of your Transmission instance. |
|
||||
| `TRANSMISSION_RPC_USERNAME` | No | Basic Authentication username for Transmission RPC. |
|
||||
| `TRANSMISSION_RPC_PASSWORD` | No | Basic Authentication password for Transmission RPC. |
|
||||
| `SCHEDULER_DB_PATH` | No | SQLite database path (default `./data/scheduler.db`). |
|
||||
|
||||
The scheduler runs in the server even when no browser is open. It manages only opted-in torrents. A scheduled torrent that continues uploading can keep its slot indefinitely, so rotation does not guarantee a fixed maximum waiting time. Manual pause or resume of an opted-in torrent is temporary; the scheduler restores its chosen state on its next check.
|
||||
|
||||
---
|
||||
|
||||
@@ -46,6 +50,7 @@ Run the container directly:
|
||||
docker run -d \
|
||||
--name transmission-manager \
|
||||
-p 8080:8080 \
|
||||
-v transmission-manager-data:/app/data \
|
||||
-e TRANSMISSION_URL=http://192.168.1.100:9091/transmission/rpc \
|
||||
-e TRANSMISSION_RPC_USERNAME=admin \
|
||||
-e TRANSMISSION_RPC_PASSWORD=secret \
|
||||
@@ -63,11 +68,16 @@ services:
|
||||
container_name: transmission-manager
|
||||
ports:
|
||||
- "8080:8080"
|
||||
volumes:
|
||||
- transmission-manager-data:/app/data
|
||||
environment:
|
||||
TRANSMISSION_URL: http://192.168.1.100:9091/transmission/rpc
|
||||
TRANSMISSION_RPC_USERNAME: admin
|
||||
TRANSMISSION_RPC_PASSWORD: secret
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
transmission-manager-data:
|
||||
```
|
||||
|
||||
Then start the application:
|
||||
@@ -104,3 +114,5 @@ export TRANSMISSION_URL="http://localhost:9091/transmission/rpc"
|
||||
```
|
||||
|
||||
By default, the server listens on port `8080`.
|
||||
|
||||
Keep the `data` directory (or the path set by `SCHEDULER_DB_PATH`) across restarts to preserve scheduler settings, opt-ins, and cycle history. The app creates the database directory on startup and exits with a clear error if it cannot open the database.
|
||||
|
||||
Reference in New Issue
Block a user