|
| 1 | +.DEFAULT_GOAL := help |
| 2 | +.PHONY: help install dev build type-check lint fix deploy-to-local-kubernetes setup-local-kubernetes status logs restart teardown db-create db-migrate db-studio |
| 3 | + |
| 4 | +# Development |
| 5 | +install: |
| 6 | + pnpm install |
| 7 | + |
| 8 | +dev: |
| 9 | + pnpm dev |
| 10 | + |
| 11 | +build: |
| 12 | + pnpm build |
| 13 | + |
| 14 | +type-check: |
| 15 | + pnpm type-check |
| 16 | + |
| 17 | +lint: |
| 18 | + pnpm lint |
| 19 | + |
| 20 | +fix: |
| 21 | + pnpm fix |
| 22 | + |
| 23 | +# Local Kubernetes Deployment |
| 24 | +setup-local-kubernetes: |
| 25 | + chmod +x ./deploy/local/setup-local.sh |
| 26 | + ./deploy/local/setup-local.sh |
| 27 | + |
| 28 | +deploy-to-local-kubernetes: |
| 29 | + chmod +x ./deploy/local/deploy.sh |
| 30 | + ./deploy/local/deploy.sh |
| 31 | + |
| 32 | +deploy-to-local-kubernetes-skip-build: |
| 33 | + chmod +x ./deploy/local/deploy.sh |
| 34 | + ./deploy/local/deploy.sh --skip-build |
| 35 | + |
| 36 | +status: |
| 37 | + @echo "=== Pods ===" |
| 38 | + @kubectl get pods -n local -l app.kubernetes.io/instance=keeperhub |
| 39 | + @echo "" |
| 40 | + @echo "=== Services ===" |
| 41 | + @kubectl get svc -n local -l app.kubernetes.io/instance=keeperhub |
| 42 | + @echo "" |
| 43 | + @echo "=== Ingress ===" |
| 44 | + @kubectl get ingress -n local | grep keeperhub || true |
| 45 | + |
| 46 | +logs: |
| 47 | + kubectl logs -n local -l app.kubernetes.io/instance=keeperhub -f |
| 48 | + |
| 49 | +restart: |
| 50 | + kubectl rollout restart deployment/keeperhub-common -n local |
| 51 | + |
| 52 | +teardown: |
| 53 | + helm uninstall keeperhub -n local || true |
| 54 | + kubectl delete ingress keeperhub-ingress -n local || true |
| 55 | + |
| 56 | +# Database Operations |
| 57 | +db-create: |
| 58 | + @echo "Creating keeperhub database..." |
| 59 | + kubectl exec -n local postgresql-0 -- bash -c 'PGPASSWORD=local psql -U postgres -c "CREATE DATABASE keeperhub;"' 2>/dev/null || echo "Database keeperhub already exists" |
| 60 | + kubectl exec -n local postgresql-0 -- bash -c 'PGPASSWORD=local psql -U postgres -c "GRANT ALL PRIVILEGES ON DATABASE keeperhub TO local;"' |
| 61 | + |
| 62 | +db-migrate: |
| 63 | + @echo "Running database migrations..." |
| 64 | + @echo "Note: For local dev, migrations should run on app startup" |
| 65 | + @echo "For manual migration, exec into the pod: kubectl exec -it -n local <pod-name> -- pnpm db:push" |
| 66 | + |
| 67 | +db-studio: |
| 68 | + @echo "Starting Drizzle Studio..." |
| 69 | + pnpm db:studio |
| 70 | + |
| 71 | +# Help |
| 72 | +help: |
| 73 | + @echo "KeeperHub Development Commands" |
| 74 | + @echo "" |
| 75 | + @echo "Usage: make <target>" |
| 76 | + @echo "" |
| 77 | + @echo "Targets:" |
| 78 | + @echo "" |
| 79 | + @echo " Development:" |
| 80 | + @echo " install - Install dependencies" |
| 81 | + @echo " dev - Start development server" |
| 82 | + @echo " build - Build for production" |
| 83 | + @echo " type-check - Run TypeScript type checking" |
| 84 | + @echo " lint - Run linter" |
| 85 | + @echo " fix - Fix linting issues" |
| 86 | + @echo "" |
| 87 | + @echo " Local Kubernetes:" |
| 88 | + @echo " setup-local-kubernetes - Setup minikube with all infrastructure" |
| 89 | + @echo " deploy-to-local-kubernetes - Build and deploy to minikube" |
| 90 | + @echo " deploy-to-local-kubernetes-skip-build - Deploy without rebuilding" |
| 91 | + @echo " status - Show pods and services status" |
| 92 | + @echo " logs - Follow keeperhub pod logs" |
| 93 | + @echo " restart - Restart keeperhub deployment" |
| 94 | + @echo " teardown - Delete keeperhub resources from cluster" |
| 95 | + @echo "" |
| 96 | + @echo " Database:" |
| 97 | + @echo " db-create - Create keeperhub database in PostgreSQL" |
| 98 | + @echo " db-migrate - Info about running database migrations" |
| 99 | + @echo " db-studio - Open Drizzle Studio" |
0 commit comments