ROOT_DIR := $(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))) ENV_FILE := $(ROOT_DIR)/.env -include $(ENV_FILE) export # docker compose mit Root-.env für einen Service aufrufen define compose docker compose --env-file $(ENV_FILE) -f $(ROOT_DIR)/services/$(1)/docker-compose.yaml endef .PHONY: setup traefik-up traefik-down gitea-up gitea-down cloudflared-up cloudflared-down all-up all-down ## Einmalige Einrichtung (nach erstem `cp .env.example .env`) setup: @echo "→ Docker-Netzwerk 'proxy' anlegen..." docker network create proxy 2>/dev/null || true @echo "→ acme.json vorbereiten..." mkdir -p $(ROOT_DIR)/services/traefik/data touch $(ROOT_DIR)/services/traefik/data/acme.json chmod 600 $(ROOT_DIR)/services/traefik/data/acme.json @echo "→ traefik.yaml aus Template generieren (DOMAIN=$(DOMAIN))..." envsubst < $(ROOT_DIR)/services/traefik/config/traefik.yaml.template \ > $(ROOT_DIR)/services/traefik/config/traefik.yaml @echo "✓ Setup abgeschlossen" ## Traefik traefik-up: $(call compose,traefik) up -d traefik-down: $(call compose,traefik) down ## Gitea gitea-up: $(call compose,gitea) up -d gitea-down: $(call compose,gitea) down ## Cloudflare Tunnel cloudflared-up: $(call compose,cloudflared) up -d cloudflared-down: $(call compose,cloudflared) down ## Alle Services starten (Reihenfolge: Traefik → cloudflared → Gitea) all-up: traefik-up cloudflared-up gitea-up ## Alle Services stoppen all-down: gitea-down cloudflared-down traefik-down