# ────────────────────────────────────────────────────────────── # BanGUI — Project Makefile # # Compatible with both Docker Compose and Podman Compose. # Auto-detects which compose binary is available. # # Usage: # make up — start the debug stack # make down — stop the debug stack # make clean — stop and remove all debug containers AND volumes # make logs — tail logs for all debug services # make restart — restart the debug stack # ────────────────────────────────────────────────────────────── COMPOSE_FILE := Docker/compose.debug.yml # Compose project name (matches `name:` in compose.debug.yml). PROJECT := bangui-dev # All named volumes declared in compose.debug.yml. # Compose prefixes them with the project name. DEV_VOLUMES := \ $(PROJECT)_bangui-dev-data \ $(PROJECT)_frontend-node-modules \ $(PROJECT)_fail2ban-dev-config \ $(PROJECT)_fail2ban-dev-run # Detect available compose binary. COMPOSE := $(shell command -v podman-compose 2>/dev/null \ || echo "podman compose") # Detect available container runtime (podman or docker). RUNTIME := $(shell command -v podman 2>/dev/null || echo "docker") .PHONY: up down restart logs clean ## Start the debug stack (detached). up: $(COMPOSE) -f $(COMPOSE_FILE) up -d ## Stop the debug stack. down: $(COMPOSE) -f $(COMPOSE_FILE) down ## Restart the debug stack. restart: down up ## Tail logs for all debug services. logs: $(COMPOSE) -f $(COMPOSE_FILE) logs -f ## Stop containers and remove ALL debug volumes (database, node_modules, fail2ban data). ## This returns the environment to a clean first-run state. clean: $(COMPOSE) -f $(COMPOSE_FILE) down --remove-orphans $(RUNTIME) volume rm $(DEV_VOLUMES) 2>/dev/null || true @echo "All debug volumes removed. Run 'make up' to start fresh."