Files
dell01/Makefile

60 lines
1.6 KiB
Makefile

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 pihole-up pihole-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
## Pi-hole + Unbound
pihole-up:
$(call compose,pihole) up -d
pihole-down:
$(call compose,pihole) down
## Alle Services starten (Reihenfolge: Traefik → cloudflared → Gitea → Pi-hole)
all-up: traefik-up cloudflared-up gitea-up pihole-up
## Alle Services stoppen
all-down: pihole-down gitea-down cloudflared-down traefik-down