# ============================================================== # CHECKFLO — Makefile # Deploy-Strategie: SSH zur DS, Docker Compose # ============================================================== DS_HOST := ds DS_IP := 10.47.11.10 DS_SSH_PORT := 4711 DS_PATH := /volume1/docker/checkflo CONTAINER_PB := checkflo-pocketbase DOCKER := sudo /usr/local/bin/docker .PHONY: help check-ssh start stop restart status logs logs-f shell-pb pb-admin # ---------------------------------------------------------- # Hilfe # ---------------------------------------------------------- help: @echo "" @echo " Checkflo — verfügbare Befehle:" @echo "" @echo " make start PocketBase starten" @echo " make stop PocketBase stoppen" @echo " make restart PocketBase neu starten" @echo " make status Container-Status anzeigen" @echo "" @echo " make logs Letzte 100 Zeilen" @echo " make logs-f Live-Log-Stream" @echo " make shell-pb Shell in PocketBase-Container" @echo " make pb-admin PocketBase Admin-URL anzeigen" @echo "" # ---------------------------------------------------------- # SSH-Prüfung # ---------------------------------------------------------- check-ssh: @if ! nc -z -w3 $(DS_IP) $(DS_SSH_PORT) 2>/dev/null; then \ echo ""; \ echo " ✗ DS nicht erreichbar ($(DS_IP):$(DS_SSH_PORT))"; \ echo ""; \ exit 1; \ fi # ---------------------------------------------------------- # START # ---------------------------------------------------------- start: check-ssh @ssh $(DS_HOST) "cd $(DS_PATH) && $(DOCKER) compose up -d" @echo " ✓ PocketBase gestartet." # ---------------------------------------------------------- # STOP # ---------------------------------------------------------- stop: check-ssh @ssh $(DS_HOST) "cd $(DS_PATH) && $(DOCKER) compose down" @echo " ✓ Gestoppt." # ---------------------------------------------------------- # RESTART # ---------------------------------------------------------- restart: check-ssh @ssh $(DS_HOST) "cd $(DS_PATH) && $(DOCKER) compose restart" @echo " ✓ Neugestartet." # ---------------------------------------------------------- # STATUS # ---------------------------------------------------------- status: check-ssh @ssh $(DS_HOST) "$(DOCKER) ps \ --filter name=$(CONTAINER_PB) \ --format 'table {{.Names}}\t{{.Status}}\t{{.Ports}}'" # ---------------------------------------------------------- # LOGS # ---------------------------------------------------------- logs: check-ssh @ssh $(DS_HOST) "$(DOCKER) logs $(CONTAINER_PB) --tail=100" logs-f: check-ssh @ssh $(DS_HOST) "$(DOCKER) logs $(CONTAINER_PB) -f" # ---------------------------------------------------------- # SHELL in PocketBase # ---------------------------------------------------------- shell-pb: check-ssh @ssh -t $(DS_HOST) "$(DOCKER) exec -it $(CONTAINER_PB) sh" # ---------------------------------------------------------- # POCKETBASE Admin # ---------------------------------------------------------- pb-admin: @echo " PocketBase Admin: https://api.checkflo.de/_/" # ---------------------------------------------------------- # SETUP-DB — Datenmodell in PocketBase anlegen # ---------------------------------------------------------- setup-db: @PB_URL=https://api.checkflo.de \ PB_EMAIL=$(PB_EMAIL) \ PB_PASSWORD=$(PB_PASSWORD) \ ./scripts/setup-db.sh # ---------------------------------------------------------- # SEED-DEMO — Demo-Tenant mit Stationen anlegen # ---------------------------------------------------------- seed-demo: @PB_URL=https://api.checkflo.de \ PB_EMAIL=$(PB_EMAIL) \ PB_PASSWORD=$(PB_PASSWORD) \ ./scripts/seed-demo.sh