- Add Plugin GPU Quota config section to scheduler.yaml.example - Add audit logging config to homelab-secure.yaml (HIPAA-compliant) - Add Jupyter and vLLM plugin configs to all worker configs: - Security settings (passwords, trusted channels, blocked packages) - Resource limits (GPU, memory, CPU) - Model cache paths and quantization options for vLLM - Disable plugins in HIPAA deployment mode for compliance - Update deployments README with plugin services and GPU quotas |
||
|---|---|---|
| .. | ||
| api | ||
| examples | ||
| scheduler | ||
| schema | ||
| seccomp | ||
| worker | ||
| README.md | ||
| SECURITY.md | ||
fetch_ml Configuration Guide
Quick Start
Standalone Mode (Existing Behavior)
# Single worker, direct queue access
go run ./cmd/worker -config configs/worker/standalone/worker.yaml
Distributed Mode
# Terminal 1: Start scheduler
go run ./cmd/scheduler -config configs/scheduler/scheduler.yaml
# Terminal 2: Start worker
go run ./cmd/worker -config configs/worker/distributed/worker.yaml
Single-Node Mode (Zero Config)
# Both scheduler and worker in one process
go run ./cmd/fetch_ml -config configs/multi-node/single-node.yaml
Config Structure
configs/
├── scheduler/
│ └── scheduler.yaml # Central scheduler configuration
├── worker/
│ ├── standalone/
│ │ └── worker.yaml # Direct queue access (Redis/SQLite)
│ └── distributed/
│ └── worker.yaml # WebSocket to scheduler
└── multi-node/
└── single-node.yaml # Combined scheduler+worker
Key Configuration Modes
| Mode | Use Case | Backend |
|---|---|---|
standalone |
Single machine, existing behavior | Redis/SQLite/Filesystem |
distributed |
Multiple workers, central scheduler | WebSocket to scheduler |
both |
Quick testing, single process | In-process scheduler |
Worker Mode Selection
Set worker.mode to switch between implementations:
worker:
mode: "standalone" # Uses Redis/SQLite queue.Backend
# OR
mode: "distributed" # Uses SchedulerBackend over WebSocket
The worker code is unchanged — only the backend implementation changes.