.PHONY: generate up down reload restart logs validate ps update update-check

# Erzeugt Caddyfile + haproxy.cfg + acl/*.lst + docker-compose.override.yml
# aus config/sites.yaml. Reines Bash+AWK, läuft direkt hier, kein Docker nötig.
generate:
	./generate.sh

# Prüft die generierten Configs auf Syntaxfehler, BEVOR sie scharf geschaltet
# werden (nutzt die in .env gepinnten Images, keine doppelte Versionsangabe
# nötig - für die Prüfung selbst braucht es Docker, für die Generierung nicht)
validate: generate
	docker compose run --rm --no-deps caddy caddy validate --config /etc/caddy/Caddyfile --adapter caddyfile
	docker compose run --rm --no-deps haproxy haproxy -c -f /usr/local/etc/haproxy/haproxy.cfg

# Erstinbetriebnahme
up: validate
	docker compose up -d caddy haproxy

down:
	docker compose down

# Nach Änderungen an config/sites.yaml: neu generieren + validieren + neu starten
reload: validate
	docker compose restart caddy haproxy

restart:
	docker compose restart caddy haproxy

logs:
	docker compose logs -f caddy haproxy

ps:
	docker compose ps

# Zeigt verfügbare Updates (Projekt + Images), ändert nichts
update-check:
	./update/update.sh --dry-run

# Aktualisiert Projekt + Images ohne Rückfrage, generiert+validiert, startet neu, rollt bei Fehlschlag zurück
update:
	./update/update.sh --force
