#!/bin/bash # BreakPilot - Selektiver Service-Start für Mac Mini # Spart GPU/CPU Ressourcen indem nur benötigte Services gestartet werden COMPOSE_FILE="$HOME/Projekte/breakpilot-pwa/docker-compose.yml" cd "$HOME/Projekte/breakpilot-pwa" show_help() { echo "BreakPilot Service Manager" echo "==========================" echo "" echo "Verwendung: $0 " echo "" echo "Profile:" echo " core - Basis-Services (postgres, valkey, mailpit, minio)" echo " dev - Entwicklung (core + backend, website, consent, billing)" echo " klausur - Klausurkorrektur (dev + klausur-service, embedding, qdrant)" echo " school - Schulverwaltung (dev + school-service)" echo " jitsi - Videokonferenz (dev + jitsi stack)" echo " erp - ERPNext (dev + erpnext stack)" echo " chat - LibreChat/RAG (separat starten)" echo " all - Alle Services (nicht empfohlen!)" echo " stop - Alle Services stoppen" echo " status - Status anzeigen" echo "" echo "Beispiel: $0 dev" } start_core() { echo "Starte Core-Services..." docker-compose up -d postgres valkey mailpit minio } start_dev() { start_core echo "Starte Entwicklungs-Services..." docker-compose up -d backend website consent-service billing-service } start_klausur() { start_dev echo "Starte Klausur-Services..." docker-compose up -d klausur-service embedding-service qdrant } start_school() { start_dev echo "Starte School-Service..." docker-compose up -d school-service } start_jitsi() { start_dev echo "Starte Jitsi-Stack..." docker-compose up -d jitsi-web jitsi-xmpp jitsi-jicofo jitsi-jvb } start_erp() { start_dev echo "Starte ERPNext-Stack..." docker-compose up -d erpnext-db erpnext-redis-queue erpnext-redis-cache \ erpnext-backend erpnext-websocket erpnext-scheduler \ erpnext-worker-short erpnext-frontend } start_all() { echo "WARNUNG: Startet ALLE Services - hoher Ressourcenverbrauch!" read -p "Fortfahren? (y/n) " -n 1 -r echo if [[ $REPLY =~ ^[Yy]$ ]]; then docker-compose up -d fi } stop_all() { echo "Stoppe alle Services..." docker-compose down } show_status() { echo "=== Laufende Container ===" docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" | head -20 echo "" echo "=== Ressourcen ===" docker stats --no-stream --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}" | head -15 } case "$1" in core) start_core ;; dev) start_dev ;; klausur) start_klausur ;; school) start_school ;; jitsi) start_jitsi ;; erp) start_erp ;; all) start_all ;; stop) stop_all ;; status) show_status ;; *) show_help ;; esac