.PHONY: help dev dev-build prod build deploy logs logs-web logs-celery shell migrate makemigrations createsuperuser test clean stop restart status backup # Default target help: @echo "KeepItGoing Server - Docker Commands" @echo "=====================================" @echo "" @echo "Development:" @echo " make dev - Start development environment with live reload" @echo " make dev-build - Rebuild and start development environment" @echo " make shell - Access Django shell" @echo " make test - Run tests" @echo "" @echo "Production:" @echo " make prod - Start production environment" @echo " make build - Build production containers" @echo " make deploy - Deploy to production (pull, build, migrate, restart)" @echo "" @echo "Database:" @echo " make migrate - Run database migrations" @echo " make makemigrations - Create new migrations" @echo " make createsuperuser - Create Django superuser" @echo " make backup - Backup database" @echo " make dbshell - Access MariaDB shell" @echo "" @echo "Logs & Monitoring:" @echo " make logs - View all container logs" @echo " make logs-web - View web container logs" @echo " make logs-celery - View celery worker logs" @echo " make status - Show container status" @echo "" @echo "Control:" @echo " make stop - Stop all containers" @echo " make restart - Restart all containers" @echo " make clean - Stop and remove containers, networks, volumes" @echo "" # Development dev: docker-compose -f docker-compose.yml -f docker-compose.dev.yml up dev-build: docker-compose -f docker-compose.yml -f docker-compose.dev.yml up --build # Production prod: docker-compose up -d build: docker-compose build --no-cache deploy: @echo "Deploying to production..." git pull docker-compose build docker-compose up -d docker-compose exec web python manage.py migrate docker-compose exec web python manage.py collectstatic --noinput docker-compose restart web @echo "Deployment complete!" @make status # Database operations migrate: docker-compose exec web python manage.py migrate makemigrations: docker-compose exec web python manage.py makemigrations createsuperuser: docker-compose exec web python manage.py createsuperuser dbshell: docker-compose exec mariadb mysql -u keepitgoing -p keepitgoing backup: @echo "Creating database backup..." @mkdir -p backups docker-compose exec mariadb mysqldump -u root -p keepitgoing > backups/backup-$$(date +%Y%m%d-%H%M%S).sql @echo "Backup created in backups/ directory" # Django shell and tests shell: docker-compose exec web python manage.py shell test: docker-compose exec web python manage.py test # Logs logs: docker-compose logs -f logs-web: docker-compose logs -f web logs-celery: docker-compose logs -f celery-worker # Control stop: docker-compose down restart: docker-compose restart status: docker-compose ps clean: docker-compose down -v @echo "Containers, networks, and volumes removed"