SERVICES=traefik whoami gitea nextcloud qbittorrent jellyfin devbox obsidian n8n supersync .PHONY: up down restart backup docs generate-docs logs status up: @for svc in $(SERVICES); do \ if [ -f "$$svc/docker-compose.yml" ]; then \ echo "Starting $$svc..."; \ (cd $$svc && docker compose up -d); \ fi; \ done down: @for svc in $(SERVICES); do \ if [ -f "$$svc/docker-compose.yml" ]; then \ echo "Stopping $$svc..."; \ (cd $$svc && docker compose down); \ fi; \ done restart: down up logs: @echo "=== Traefik ===" && (cd traefik && docker compose logs --tail=10) @echo "=== Gitea ===" && (cd gitea && docker compose logs --tail=10) @echo "=== Nextcloud ===" && (cd nextcloud && docker compose logs --tail=10) status: @for svc in $(SERVICES); do \ if [ -f "$$svc/docker-compose.yml" ]; then \ echo "--- $$svc ---"; \ (cd $$svc && docker compose ps --format "table {{.Name}}\t{{.Status}}\t{{.Ports}}"); \ fi; \ done backup: ./backup.sh generate-docs: python3 scripts/generate_docs.py docs: generate-docs mkdocs build