80 lines
4 KiB
Makefile
80 lines
4 KiB
Makefile
# ==============================================================================
|
|
# HIGH LEVEL: setup, stop-all, clean, deploy, status
|
|
# ==============================================================================
|
|
|
|
.PHONY: setup stop-all restart-all clean clean-deep deploy-docker deploy-incus status-full
|
|
.PHONY: web-minimal stop-minimal
|
|
|
|
setup: check-tools install-tools install-deps ## [HIGH] Full project initialization (deps only)
|
|
@$(ECHO_CMD) "${BOLD}${GREEN}✅ Setup Complete! Run 'make setup-dev' for infra + migrations, then 'make dev'.${NC}"
|
|
|
|
setup-dev: setup infra-up db-migrate ## [HIGH] First-time dev setup: deps + infra + migrations
|
|
@$(ECHO_CMD) "${BOLD}${GREEN}✅ Dev environment ready! Run 'make dev' to start.${NC}"
|
|
|
|
web-minimal: ## [HIGH] Start Veza Web Minimal Journey (Backend + Frontend + DB)
|
|
@$(SCRIPTS)/start_minimal.sh
|
|
|
|
stop-minimal: ## [HIGH] Stop Minimal Stack
|
|
@$(SCRIPTS)/stop_minimal.sh
|
|
|
|
stop-all: ## [HIGH] Stop all services (Docker + Local)
|
|
@$(ECHO_CMD) "${RED}🛑 Stopping all services...${NC}"
|
|
@docker compose -f $(COMPOSE_FILE) down 2>/dev/null || true
|
|
@docker compose -f $(COMPOSE_PROD) down 2>/dev/null || true
|
|
@$(MAKE) -s stop-local-services
|
|
@$(ECHO_CMD) "${GREEN}✅ All services stopped.${NC}"
|
|
|
|
restart-all: stop-all ## [HIGH] Restart all services
|
|
@$(ECHO_CMD) "${BLUE}🔄 Restarting all services...${NC}"
|
|
@$(MAKE) -s infra-up
|
|
@$(MAKE) -s dev
|
|
@$(ECHO_CMD) "${GREEN}✅ All services restarted.${NC}"
|
|
|
|
clean: ## [HIGH] Clean build artifacts and caches
|
|
@$(ECHO_CMD) "${YELLOW}🧹 Cleaning build artifacts...${NC}"
|
|
@rm -rf $(ROOT)/$(SERVICE_DIR_web)/node_modules/.cache
|
|
@rm -rf $(ROOT)/$(SERVICE_DIR_chat-server)/target/debug $(ROOT)/$(SERVICE_DIR_stream-server)/target/debug
|
|
@find $(ROOT) -type d -name "node_modules" -prune -o -type f -name "*.log" -delete 2>/dev/null || true
|
|
@$(ECHO_CMD) "${GREEN}✅ Clean complete.${NC}"
|
|
|
|
clean-deep: ## [HIGH] ⚠️ Nuclear Clean (Confirm required)
|
|
@read -p "${RED}Are you sure? This will delete ALL builds, volumes, and caches! [y/N]${NC} " ans && [ $${ans:-N} = y ]
|
|
@$(ECHO_CMD) "${RED}☢️ DESTROYING ARTIFACTS...${NC}"
|
|
@rm -rf $(ROOT)/$(SERVICE_DIR_web)/node_modules
|
|
@rm -rf $(ROOT)/$(SERVICE_DIR_chat-server)/target $(ROOT)/$(SERVICE_DIR_stream-server)/target
|
|
@docker compose -f $(COMPOSE_FILE) down -v 2>/dev/null || true
|
|
@docker compose -f $(COMPOSE_PROD) down -v 2>/dev/null || true
|
|
@$(ECHO_CMD) "${GREEN}System Cleaned.${NC}"
|
|
|
|
deploy-docker: build-all ## [HIGH] Deploy all services with Docker + HAProxy
|
|
@$(ECHO_CMD) "${BOLD}${BLUE}🐳 Deploying with Docker...${NC}"
|
|
@docker compose -f $(COMPOSE_PROD) up -d --build
|
|
@$(MAKE) -s wait-for-services
|
|
@$(ECHO_CMD) "${GREEN}✅ Deployment complete! Access via http://$(APP_DOMAIN):$(PORT_haproxy)${NC}"
|
|
|
|
deploy-incus: build-all-native ## [HIGH] Deploy all services with Incus containers (native, no Docker)
|
|
@$(ECHO_CMD) "${BOLD}${BLUE}📦 Deploying with Incus (native)...${NC}"
|
|
@$(MAKE) -s incus-setup-network
|
|
@$(MAKE) -s incus-deploy-infra
|
|
@$(MAKE) -s incus-deploy-all-native
|
|
@$(MAKE) -s incus-start-all
|
|
@$(ECHO_CMD) "${GREEN}✅ Incus deployment complete!${NC}"
|
|
@$(ECHO_CMD) "${BLUE}Access services at:${NC}"
|
|
@$(ECHO_CMD) " Backend API: http://10.10.10.2:8080"
|
|
@$(ECHO_CMD) " Chat Server: http://10.10.10.3:8081"
|
|
@$(ECHO_CMD) " Stream Server: http://10.10.10.4:3002"
|
|
@$(ECHO_CMD) " Web Frontend: http://10.10.10.5:80"
|
|
@$(ECHO_CMD) " HAProxy: http://10.10.10.6:80"
|
|
|
|
status-full: ## [HIGH] Show complete system status
|
|
@$(ECHO_CMD) "${BOLD}${CYAN}📊 SYSTEM STATUS${NC}"
|
|
@$(ECHO_CMD) ""
|
|
@$(ECHO_CMD) "${BOLD}Docker Containers:${NC}"
|
|
@docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" | grep -E "NAME|veza" || echo " No containers running"
|
|
@$(ECHO_CMD) ""
|
|
@$(ECHO_CMD) "${BOLD}Local Processes:${NC}"
|
|
@lsof -i :$(PORT_backend-api) -i :$(PORT_chat-server) -i :$(PORT_stream-server) -i :$(PORT_web) 2>/dev/null | grep LISTEN || echo " No local processes"
|
|
@$(ECHO_CMD) ""
|
|
@$(ECHO_CMD) "${BOLD}Incus Containers:${NC}"
|
|
@incus list veza- 2>/dev/null | grep -E "NAME|veza" || echo " No Incus containers"
|
|
@$(ECHO_CMD) ""
|