| @@ -4,6 +4,48 @@ WEB_IMAGE=$(DOCKER_REGISTRY)/dify-web | |||
| API_IMAGE=$(DOCKER_REGISTRY)/dify-api | |||
| VERSION=latest | |||
| # Backend Development Environment Setup | |||
| .PHONY: dev-setup prepare-docker prepare-web prepare-api | |||
| # Default dev setup target | |||
| dev-setup: prepare-docker prepare-web prepare-api | |||
| @echo "✅ Backend development environment setup complete!" | |||
| # Step 1: Prepare Docker middleware | |||
| prepare-docker: | |||
| @echo "🐳 Setting up Docker middleware..." | |||
| @cp -n docker/middleware.env.example docker/middleware.env 2>/dev/null || echo "Docker middleware.env already exists" | |||
| @cd docker && docker compose -f docker-compose.middleware.yaml --env-file middleware.env -p dify-middlewares-dev up -d | |||
| @echo "✅ Docker middleware started" | |||
| # Step 2: Prepare web environment | |||
| prepare-web: | |||
| @echo "🌐 Setting up web environment..." | |||
| @cp -n web/.env.example web/.env 2>/dev/null || echo "Web .env already exists" | |||
| @cd web && pnpm install | |||
| @cd web && pnpm build | |||
| @echo "✅ Web environment prepared (not started)" | |||
| # Step 3: Prepare API environment | |||
| prepare-api: | |||
| @echo "🔧 Setting up API environment..." | |||
| @cp -n api/.env.example api/.env 2>/dev/null || echo "API .env already exists" | |||
| @cd api && uv sync --dev --extra all | |||
| @cd api && uv run flask db upgrade | |||
| @echo "✅ API environment prepared (not started)" | |||
| # Clean dev environment | |||
| dev-clean: | |||
| @echo "⚠️ Stopping Docker containers..." | |||
| @cd docker && docker compose -f docker-compose.middleware.yaml --env-file middleware.env -p dify-middlewares-dev down | |||
| @echo "🗑️ Removing volumes..." | |||
| @rm -rf docker/volumes/db | |||
| @rm -rf docker/volumes/redis | |||
| @rm -rf docker/volumes/plugin_daemon | |||
| @rm -rf docker/volumes/weaviate | |||
| @rm -rf api/storage | |||
| @echo "✅ Cleanup complete" | |||
| # Build Docker images | |||
| build-web: | |||
| @echo "Building web Docker image: $(WEB_IMAGE):$(VERSION)..." | |||
| @@ -39,5 +81,21 @@ build-push-web: build-web push-web | |||
| build-push-all: build-all push-all | |||
| @echo "All Docker images have been built and pushed." | |||
| # Help target | |||
| help: | |||
| @echo "Development Setup Targets:" | |||
| @echo " make dev-setup - Run all setup steps for backend dev environment" | |||
| @echo " make prepare-docker - Set up Docker middleware" | |||
| @echo " make prepare-web - Set up web environment" | |||
| @echo " make prepare-api - Set up API environment" | |||
| @echo " make dev-clean - Stop Docker middleware containers" | |||
| @echo "" | |||
| @echo "Docker Build Targets:" | |||
| @echo " make build-web - Build web Docker image" | |||
| @echo " make build-api - Build API Docker image" | |||
| @echo " make build-all - Build all Docker images" | |||
| @echo " make push-all - Push all Docker images" | |||
| @echo " make build-push-all - Build and push all Docker images" | |||
| # Phony targets | |||
| .PHONY: build-web build-api push-web push-api build-all push-all build-push-all | |||
| .PHONY: build-web build-api push-web push-api build-all push-all build-push-all dev-setup prepare-docker prepare-web prepare-api dev-clean help | |||