111 lines
3.5 KiB
Makefile
111 lines
3.5 KiB
Makefile
# ⒸAngelaMos | 2025
|
|
# Makefile
|
|
|
|
.PHONY: help setup setup-backend setup-frontend env dev prod build-dev build-prod up-dev up-prod down-dev down-prod logs-dev logs-prod test-backend clean
|
|
|
|
help:
|
|
@echo "Encrypted P2P Chat - Makefile Commands"
|
|
@echo ""
|
|
@echo "Setup:"
|
|
@echo " make setup - Complete project setup (backend + frontend)"
|
|
@echo " make setup-backend - Setup backend (venv, install deps)"
|
|
@echo " make setup-frontend - Setup frontend (install npm deps)"
|
|
@echo " make env - Copy .env.example to .env files"
|
|
@echo ""
|
|
@echo "Development:"
|
|
@echo " make dev - Start development environment"
|
|
@echo " make build-dev - Build development Docker images"
|
|
@echo " make up-dev - Start development containers"
|
|
@echo " make down-dev - Stop development containers"
|
|
@echo " make logs-dev - Follow development logs"
|
|
@echo ""
|
|
@echo "Production:"
|
|
@echo " make prod - Start production environment"
|
|
@echo " make build-prod - Build production Docker images"
|
|
@echo " make up-prod - Start production containers"
|
|
@echo " make down-prod - Stop production containers"
|
|
@echo " make logs-prod - Follow production logs"
|
|
@echo ""
|
|
@echo "Testing:"
|
|
@echo " make test-backend - Run backend tests"
|
|
@echo ""
|
|
@echo "Cleanup:"
|
|
@echo " make clean - Remove all containers, volumes, and build artifacts"
|
|
|
|
setup: setup-backend setup-frontend env
|
|
@echo "Setup complete!"
|
|
|
|
setup-backend:
|
|
@echo "Setting up backend..."
|
|
cd backend && python3 -m venv ../.venv
|
|
. .venv/bin/activate && cd backend && pip install -e .[dev]
|
|
@echo "Backend setup complete!"
|
|
|
|
setup-frontend:
|
|
@echo "Setting up frontend..."
|
|
cd frontend && npm install
|
|
@echo "Frontend setup complete!"
|
|
|
|
env:
|
|
@echo "Creating .env files..."
|
|
@if [ ! -f .env ]; then cp .env.example .env; echo "Created root .env"; fi
|
|
@if [ ! -f frontend/.env ]; then cp frontend/.env.example frontend/.env; echo "Created frontend/.env"; fi
|
|
@echo ".env files created! Please update with your values."
|
|
|
|
dev: build-dev up-dev
|
|
|
|
build-dev:
|
|
@echo "Building development Docker images..."
|
|
docker compose -f docker-compose.dev.yml build
|
|
|
|
up-dev:
|
|
@echo "Starting development environment..."
|
|
docker compose -f docker-compose.dev.yml up -d
|
|
@echo "Development environment started!"
|
|
@echo "Frontend: http://localhost:5173"
|
|
@echo "Backend: http://localhost:8000"
|
|
@echo "Nginx: http://localhost"
|
|
|
|
down-dev:
|
|
@echo "Stopping development environment..."
|
|
docker compose -f docker-compose.dev.yml down
|
|
|
|
logs-dev:
|
|
docker compose -f docker-compose.dev.yml logs -f
|
|
|
|
prod: build-prod up-prod
|
|
|
|
build-prod:
|
|
@echo "Building production Docker images..."
|
|
docker compose -f docker-compose.prod.yml build
|
|
|
|
up-prod:
|
|
@echo "Starting production environment..."
|
|
docker compose -f docker-compose.prod.yml up -d
|
|
@echo "Production environment started!"
|
|
@echo "Application: http://localhost"
|
|
|
|
down-prod:
|
|
@echo "Stopping production environment..."
|
|
docker compose -f docker-compose.prod.yml down
|
|
|
|
logs-prod:
|
|
docker compose -f docker-compose.prod.yml logs -f
|
|
|
|
test-backend:
|
|
@echo "Running backend tests..."
|
|
. .venv/bin/activate && cd backend && python -m pytest tests/ -v
|
|
|
|
clean:
|
|
@echo "Cleaning up..."
|
|
docker compose -f docker-compose.dev.yml down -v
|
|
docker compose -f docker-compose.prod.yml down -v
|
|
rm -rf frontend/node_modules
|
|
rm -rf frontend/dist
|
|
rm -rf backend/.venv
|
|
rm -rf backend/__pycache__
|
|
rm -rf backend/.pytest_cache
|
|
rm -rf backend/.mypy_cache
|
|
rm -rf backend/.ruff_cache
|
|
@echo "Cleanup complete!"
|