Offizielles Handbuch & API-Referenz
ollama-fleet-manager v1.0 [Pre-Release] · Dynamische Allokation & OOM-Schutz für Ollama
Überblick
ollama-fleet-manager ist ein hochperformanter Daemon in purem Go, der lokale Ollama-Instanzen überwacht, Systemmetriken (CPU, RAM, GPU-VRAM) kontinuierlich sammelt und für eingehende Task-Anfragen das optimal dimensionierte KI-Modell bereitstellt.
Militärischer Sicherheitsstandard (Zero-Dummy-Security)
Der Daemon bindet sich ausschließlich an 127.0.0.1, verlangt ein 32-Byte CSPRNG Token und filtert automatisch Cross-Origin und DNS-Rebinding Angriffe ab.
Systemarchitektur
Die Codebasis ist in isolierte Go-Pakete unterteilt:
├── hardware/ # Telemetrie-Sensoren (/proc/meminfo, /proc/stat, nvidia-smi)
├── models/ # Modell-Registry & Hardware-Mindestanforderungen
├── engine/ # Rule Engine zur OOM-Prävention & Modellauswahl
├── controller/ # Ollama HTTP-Client (Ping, List, Unload, Pull)
├── storage/ # AES-256-GCM Vault mit PBKDF2 (100.000 Runden)
└── api/ # REST-Server mit Anti-CSRF und Anti-DNS-Rebinding
Zero-Dummy-Security
Im Gegensatz zu vielen ungesicherten KI-Wrappern implementiert dieser Manager kompromisslosen Produktionsschutz:
- Anti-DNS-Rebinding: Der
Host-Header muss zwingend127.0.0.1oderlocalhostentsprechen. Anfragen über fremde Domainnamen werden sofort mitHTTP 403 Forbiddenabgewiesen. - Anti-CSRF: Externe Webseiten, die versuchen, über den Browser des Nutzers lokale Modelle zu starten oder zu entladen, werden via
Origin-Header-Filterung blockiert. - CSPRNG Token: Jeder geschützte API-Aufruf erfordert das
X-API-Token.
API-Authentifizierung
Füge den Header X-API-Token zu jedem Request hinzu:
curl -H "X-API-Token: <dein-token>" http://127.0.0.1:8080/api/v1/metrics
POST /api/v1/models/select
Ermittelt das ideale Modell für den geforderten Einsatzzweck:
POST /api/v1/models/select HTTP/1.1
Host: 127.0.0.1:8080
X-API-Token: a9f738...
Content-Type: application/json
{
"category": "coding",
"purpose": "High precision syntax refactoring"
}
Antwortbeispiel:
{
"selected_model": {
"id": "qwen2.5-coder:7b",
"display_name": "Qwen 2.5 Coder (7B)",
"category": "coding",
"min_ram_mb": 8192,
"min_vram_mb": 6144
},
"execution_mode": "GPU",
"reason": "Selected for high-performance GPU execution (14336 MB VRAM available)",
"requires_evict": false,
"confidence_score": 0.98
}
POST /api/v1/models/evict
Entlädt Modelle aus dem Arbeitsspeicher, um Platz für speicherintensive Aufgaben zu schaffen:
POST /api/v1/models/evict HTTP/1.1
Host: 127.0.0.1:8080
X-API-Token: a9f738...
Content-Type: application/json
{
"model_id": "llama3.1:8b"
}
Systemd Service Setup (Linux)
Erstelle die Unit-Datei unter /etc/systemd/system/ollama-fleet-manager.service:
[Unit]
Description=Ollama Fleet Manager
After=network.target ollama.service
[Service]
Type=simple
User=benzj
ExecStart=/usr/local/bin/ollama-fleet-manager --port=8080
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target