Add Makefile with convenient development commands
This commit is contained in:
101
Makefile
Normal file
101
Makefile
Normal file
@@ -0,0 +1,101 @@
|
||||
.PHONY: help setup start stop restart logs clean build test init-db
|
||||
|
||||
# Colors for terminal output
|
||||
GREEN := \033[0;32m
|
||||
YELLOW := \033[0;33m
|
||||
NC := \033[0m # No Color
|
||||
|
||||
help: ## Show this help message
|
||||
@echo '${GREEN}Family Hub - Available Commands${NC}'
|
||||
@echo ''
|
||||
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf " ${YELLOW}%-15s${NC} %s\n", $$1, $$2}'
|
||||
@echo ''
|
||||
|
||||
setup: ## Initial setup (copy .env.example to .env)
|
||||
@echo "${GREEN}Setting up Family Hub...${NC}"
|
||||
@if [ ! -f .env ]; then \
|
||||
cp .env.example .env; \
|
||||
echo "${YELLOW}Created .env file - please edit it with your SECRET_KEY${NC}"; \
|
||||
else \
|
||||
echo "${YELLOW}.env file already exists${NC}"; \
|
||||
fi
|
||||
@if [ ! -f backend/.env ]; then \
|
||||
cp backend/.env.example backend/.env; \
|
||||
echo "${YELLOW}Created backend/.env file${NC}"; \
|
||||
fi
|
||||
@echo "${GREEN}Setup complete!${NC}"
|
||||
|
||||
start: ## Start all services
|
||||
@echo "${GREEN}Starting Family Hub...${NC}"
|
||||
docker-compose up -d
|
||||
@echo "${GREEN}Services started!${NC}"
|
||||
@echo "Frontend: http://localhost:5173"
|
||||
@echo "Backend: http://localhost:8000"
|
||||
@echo "API Docs: http://localhost:8000/docs"
|
||||
|
||||
stop: ## Stop all services
|
||||
@echo "${YELLOW}Stopping Family Hub...${NC}"
|
||||
docker-compose down
|
||||
@echo "${GREEN}Services stopped${NC}"
|
||||
|
||||
restart: ## Restart all services
|
||||
@echo "${YELLOW}Restarting Family Hub...${NC}"
|
||||
docker-compose restart
|
||||
@echo "${GREEN}Services restarted${NC}"
|
||||
|
||||
build: ## Rebuild containers
|
||||
@echo "${GREEN}Building containers...${NC}"
|
||||
docker-compose build
|
||||
@echo "${GREEN}Build complete${NC}"
|
||||
|
||||
rebuild: ## Rebuild and restart containers
|
||||
@echo "${GREEN}Rebuilding containers...${NC}"
|
||||
docker-compose up -d --build
|
||||
@echo "${GREEN}Containers rebuilt and started${NC}"
|
||||
|
||||
logs: ## View logs (follow mode)
|
||||
docker-compose logs -f
|
||||
|
||||
logs-backend: ## View backend logs
|
||||
docker-compose logs -f backend
|
||||
|
||||
logs-frontend: ## View frontend logs
|
||||
docker-compose logs -f frontend
|
||||
|
||||
clean: ## Stop and remove all containers, volumes, and images
|
||||
@echo "${YELLOW}Cleaning up Family Hub...${NC}"
|
||||
docker-compose down -v
|
||||
@echo "${GREEN}Cleanup complete${NC}"
|
||||
|
||||
init-db: ## Initialize the database with family members
|
||||
@echo "${GREEN}Initializing database...${NC}"
|
||||
docker-compose exec backend python init_db.py
|
||||
@echo "${GREEN}Database initialized with family member accounts${NC}"
|
||||
@echo "${YELLOW}Default credentials: username=jess, password=changeme123${NC}"
|
||||
|
||||
shell-backend: ## Open shell in backend container
|
||||
docker-compose exec backend bash
|
||||
|
||||
shell-frontend: ## Open shell in frontend container
|
||||
docker-compose exec frontend sh
|
||||
|
||||
test: ## Run tests
|
||||
@echo "${GREEN}Running backend tests...${NC}"
|
||||
docker-compose exec backend pytest
|
||||
@echo "${GREEN}Running frontend tests...${NC}"
|
||||
docker-compose exec frontend npm test
|
||||
|
||||
status: ## Show container status
|
||||
docker-compose ps
|
||||
|
||||
dev-backend: ## Run backend locally (outside Docker)
|
||||
cd backend && uvicorn app.main:app --reload
|
||||
|
||||
dev-frontend: ## Run frontend locally (outside Docker)
|
||||
cd frontend && npm run dev
|
||||
|
||||
install-backend: ## Install backend dependencies locally
|
||||
cd backend && pip install -r requirements.txt
|
||||
|
||||
install-frontend: ## Install frontend dependencies locally
|
||||
cd frontend && npm install
|
||||
Reference in New Issue
Block a user