veza/make/high.mk

80 lines
3.9 KiB
Makefile
Raw Normal View History

2026-02-07 19:36:48 +00:00
# ==============================================================================
# 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
2026-02-15 15:13:20 +00:00
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}"
2026-02-07 19:36:48 +00:00
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_stream-server)/target/debug
2026-02-07 19:36:48 +00:00
@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_stream-server)/target
2026-02-07 19:36:48 +00:00
@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}"
2026-02-07 19:36:48 +00:00
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) " 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_stream-server) -i :$(PORT_web) 2>/dev/null | grep LISTEN || echo " No local processes"
2026-02-07 19:36:48 +00:00
@$(ECHO_CMD) ""
@$(ECHO_CMD) "${BOLD}Incus Containers:${NC}"
@incus list veza- 2>/dev/null | grep -E "NAME|veza" || echo " No Incus containers"
@$(ECHO_CMD) ""