# Automa - Unified Makefile # Provides common operations across all services .PHONY: help all status up down logs restart clean minecraft teamspeak nextcloud # Default target help: @echo "Automa - Self-hosted Services Manager" @echo "" @echo "Usage: make [target]" @echo "" @echo "Global Commands:" @echo " help Show this help message" @echo " status Show status of all services" @echo " all-up Start all services" @echo " all-down Stop all services" @echo "" @echo "Service-specific Commands:" @echo " minecraft-up Start Minecraft server" @echo " minecraft-down Stop Minecraft server" @echo " minecraft-logs View Minecraft logs" @echo " minecraft-restart Restart Minecraft server" @echo "" @echo " teamspeak-up Start TeamSpeak server" @echo " teamspeak-down Stop TeamSpeak server" @echo " teamspeak-logs View TeamSpeak logs" @echo " teamspeak-restart Restart TeamSpeak server" @echo "" @echo " nextcloud-up Start Nextcloud" @echo " nextcloud-down Stop Nextcloud" @echo " nextcloud-logs View Nextcloud logs" @echo " nextcloud-restart Restart Nextcloud" @echo "" @echo "Utility Commands:" @echo " check Check prerequisites" @echo " clean Remove stopped containers and unused volumes" # Check prerequisites check: @echo "Checking prerequisites..." @command -v docker >/dev/null 2>&1 || { echo "Docker not found. Install: https://docs.docker.com/get-docker/"; exit 1; } @command -v docker compose >/dev/null 2>&1 || command -v docker-compose >/dev/null 2>&1 || { echo "Docker Compose not found."; exit 1; } @echo "✓ All prerequisites satisfied" # Status check for all services status: @echo "=== Service Status ===" @echo "" @echo "Minecraft:" @cd minecraft && docker compose ps 2>/dev/null || echo " Not running" @echo "" @echo "TeamSpeak:" @cd teamspeak && docker compose ps 2>/dev/null || echo " Not running" @echo "" @echo "Nextcloud:" @cd nextcloud && docker compose ps 2>/dev/null || echo " Not running" # Start all services all-up: @echo "Starting all services..." @cd minecraft && docker compose up -d @cd teamspeak && docker compose up -d @cd nextcloud && docker compose up -d @echo "✓ All services started" # Stop all services all-down: @echo "Stopping all services..." @cd minecraft && docker compose down @cd teamspeak && docker compose down @cd nextcloud && docker compose down @echo "✓ All services stopped" # Minecraft minecraft-up: @cd minecraft && docker compose up -d @echo "✓ Minecraft server started" minecraft-down: @cd minecraft && docker compose down @echo "✓ Minecraft server stopped" minecraft-logs: @cd minecraft && docker compose logs -f minecraft-restart: @cd minecraft && docker compose restart @echo "✓ Minecraft server restarted" # TeamSpeak teamspeak-up: @cd teamspeak && docker compose up -d @echo "✓ TeamSpeak server started" teamspeak-down: @cd teamspeak && docker compose down @echo "✓ TeamSpeak server stopped" teamspeak-logs: @cd teamspeak && docker compose logs -f teamspeak-restart: @cd teamspeak && docker compose restart @echo "✓ TeamSpeak server restarted" # Nextcloud nextcloud-up: @cd nextcloud && docker compose up -d @echo "✓ Nextcloud started" nextcloud-down: @cd nextcloud && docker compose down @echo "✓ Nextcloud stopped" nextcloud-logs: @cd nextcloud && docker compose logs -f nextcloud-restart: @cd nextcloud && docker compose restart @echo "✓ Nextcloud restarted" # Cleanup clean: @echo "Cleaning up Docker resources..." @docker container prune -f @docker volume prune -f @echo "✓ Cleanup complete"