99 lines
2.8 KiB
Makefile
99 lines
2.8 KiB
Makefile
.PHONY: help dev prod stop logs logs-dev logs-prod rebuild rebuild-dev clean install test
|
|
|
|
# Default target
|
|
help:
|
|
@echo "Feuerwehr Dashboard - Available Commands"
|
|
@echo ""
|
|
@echo "Development:"
|
|
@echo " make dev - Start local development database"
|
|
@echo " make logs-dev - Show development logs"
|
|
@echo " make rebuild-dev - Rebuild development services"
|
|
@echo ""
|
|
@echo "Production:"
|
|
@echo " make prod - Deploy production environment"
|
|
@echo " make logs-prod - Show production logs"
|
|
@echo " make rebuild - Rebuild production services"
|
|
@echo ""
|
|
@echo "General:"
|
|
@echo " make stop - Stop all services"
|
|
@echo " make clean - Remove all containers and volumes"
|
|
@echo " make install - Install dependencies for backend and frontend"
|
|
@echo " make test - Run tests"
|
|
@echo ""
|
|
|
|
# Development
|
|
dev:
|
|
@echo "Starting local development database..."
|
|
docker-compose -f docker-compose.dev.yml up -d
|
|
@echo ""
|
|
@echo "Database is ready at localhost:5432"
|
|
@echo "Database: feuerwehr_dev"
|
|
@echo "User: dev_user"
|
|
@echo "Password: dev_password"
|
|
|
|
logs-dev:
|
|
docker-compose -f docker-compose.dev.yml logs -f
|
|
|
|
rebuild-dev:
|
|
docker-compose -f docker-compose.dev.yml up -d --build --force-recreate
|
|
|
|
# Production
|
|
prod:
|
|
@if [ ! -f .env ]; then \
|
|
echo "Error: .env file not found!"; \
|
|
echo "Please copy .env.example to .env and configure it:"; \
|
|
echo " cp .env.example .env"; \
|
|
exit 1; \
|
|
fi
|
|
@echo "Starting production deployment..."
|
|
docker-compose -f docker-compose.yml up -d --build
|
|
@echo ""
|
|
@echo "Production services are running!"
|
|
|
|
logs-prod:
|
|
docker-compose -f docker-compose.yml logs -f
|
|
|
|
logs:
|
|
@make logs-prod
|
|
|
|
rebuild:
|
|
docker-compose -f docker-compose.yml up -d --build --force-recreate
|
|
|
|
# General commands
|
|
stop:
|
|
@echo "Stopping all services..."
|
|
docker-compose -f docker-compose.yml down 2>/dev/null || true
|
|
docker-compose -f docker-compose.dev.yml down 2>/dev/null || true
|
|
@echo "All services stopped"
|
|
|
|
clean:
|
|
@echo "Warning: This will remove all containers, volumes, and images!"
|
|
@read -p "Are you sure? [y/N] " -n 1 -r; \
|
|
echo; \
|
|
if [ "$$REPLY" = "y" ] || [ "$$REPLY" = "Y" ]; then \
|
|
docker-compose -f docker-compose.yml down -v 2>/dev/null || true; \
|
|
docker-compose -f docker-compose.dev.yml down -v 2>/dev/null || true; \
|
|
docker images | grep feuerwehr | awk '{print $$3}' | xargs docker rmi -f 2>/dev/null || true; \
|
|
echo "Cleanup complete!"; \
|
|
else \
|
|
echo "Cleanup cancelled"; \
|
|
fi
|
|
|
|
# Install dependencies
|
|
install:
|
|
@echo "Installing backend dependencies..."
|
|
cd backend && npm install
|
|
@echo ""
|
|
@echo "Installing frontend dependencies..."
|
|
cd frontend && npm install
|
|
@echo ""
|
|
@echo "Dependencies installed!"
|
|
|
|
# Run tests
|
|
test:
|
|
@echo "Running backend tests..."
|
|
cd backend && npm test
|
|
@echo ""
|
|
@echo "Running frontend tests..."
|
|
cd frontend && npm test
|