Files
IoT_PreTester_Demo/V4.5/Makefile
T
2026-06-24 14:53:14 +02:00

161 lines
4.3 KiB
Makefile

# IoT PreTester V3 - Docker Management Makefile
# Provides convenient shortcuts for common Docker operations
.PHONY: help build up down restart logs shell-backend shell-frontend clean backup test
# Default target
help:
@echo "IoT PreTester V3 - Docker Commands"
@echo "=================================="
@echo ""
@echo "Setup & Build:"
@echo " make setup - Initial setup (create .env, build images)"
@echo " make build - Build Docker images"
@echo " make rebuild - Rebuild images without cache"
@echo ""
@echo "Container Management:"
@echo " make up - Start all containers"
@echo " make down - Stop all containers"
@echo " make restart - Restart all containers"
@echo " make status - Show container status"
@echo ""
@echo "Logs & Monitoring:"
@echo " make logs - View all logs (follow mode)"
@echo " make logs-backend - View backend logs"
@echo " make logs-frontend - View frontend logs"
@echo ""
@echo "Shell Access:"
@echo " make shell-backend - Access backend container shell"
@echo " make shell-frontend - Access frontend container shell"
@echo ""
@echo "Database:"
@echo " make migrate - Run Django migrations"
@echo " make makemigrations - Create Django migrations"
@echo " make superuser - Create Django superuser (interactive)"
@echo " make dbshell - Access database shell"
@echo " make backup - Backup database"
@echo ""
@echo "Maintenance:"
@echo " make clean - Remove containers and volumes"
@echo " make clean-all - Remove everything (images, volumes, data)"
@echo " make update - Update and restart services"
@echo ""
@echo "Development:"
@echo " make test - Run tests"
@echo " make check - Run health checks"
@echo ""
# Initial setup
setup:
@echo "Setting up IoT PreTester V3..."
@if [ ! -f .env ]; then \
echo "Creating .env file from template..."; \
cp .env.example .env; \
echo "⚠️ Please edit .env and set your configuration!"; \
else \
echo ".env file already exists"; \
fi
@echo "Building Docker images..."
@docker-compose build
@echo "✓ Setup complete!"
@echo ""
@echo "Next steps:"
@echo "1. Edit .env file with your configuration"
@echo "2. Run 'make up' to start the application"
# Build images
build:
docker-compose build
rebuild:
docker-compose build --no-cache
# Start/Stop containers
up:
docker-compose up -d
@echo "Containers started!"
@echo "Frontend: http://localhost:3000"
@echo "Backend: http://localhost:8000/api/"
@echo ""
@echo "Use 'make logs' to view logs"
down:
docker-compose down
restart:
docker-compose restart
status:
docker-compose ps
# Logs
logs:
docker-compose logs -f
logs-backend:
docker-compose logs -f backend
logs-frontend:
docker-compose logs -f frontend
# Shell access
shell-backend:
docker-compose exec backend bash
shell-frontend:
docker-compose exec frontend sh
# Django management
migrate:
docker-compose exec backend python django_project/manage.py migrate
makemigrations:
docker-compose exec backend python django_project/manage.py makemigrations
superuser:
docker-compose exec backend python django_project/manage.py createsuperuser
dbshell:
docker-compose exec backend sqlite3 /app/data/db.sqlite3
# Database backup
backup:
@mkdir -p backups
@echo "Creating backup..."
@docker-compose exec -T backend sqlite3 /app/data/db.sqlite3 .dump > backups/db_backup_$$(date +%Y%m%d_%H%M%S).sql
@echo "✓ Database backup created in backups/"
# Cleanup
clean:
docker-compose down -v
@echo "✓ Containers and volumes removed"
clean-all: clean
docker-compose down --rmi all -v
rm -rf data/ logs/
@echo "✓ Everything cleaned (images, volumes, data)"
# Update
update:
@echo "Updating IoT PreTester V3..."
git pull
docker-compose build
docker-compose up -d
docker-compose exec backend python django_project/manage.py migrate
@echo "✓ Update complete!"
# Health check
check:
@echo "Checking container health..."
@docker-compose ps
@echo ""
@echo "Backend health:"
@curl -f http://localhost:8000/api/ 2>/dev/null && echo "✓ Backend is healthy" || echo "✗ Backend is down"
@echo ""
@echo "Frontend health:"
@curl -f http://localhost:3000 2>/dev/null && echo "✓ Frontend is healthy" || echo "✗ Frontend is down"
# Tests
test:
docker-compose exec backend python django_project/manage.py test