|
3 | 3 | # Manages: Hocuspocus Server + Webapp + Infrastructure |
4 | 4 | # ============================================================================= |
5 | 5 |
|
6 | | -.PHONY: help build build-dev validate-prod-build up-prod up-dev up-local infra-up infra-down infra-logs dev-local dev-backend dev-webapp dev-admin dev-rest dev-ws dev-worker down logs logs-webapp logs-backend restart clean scale scale-webapp scale-hocuspocus ps stats supabase-start supabase-stop supabase-status deploy-prod rollback-prod status-prod logs-traefik |
| 6 | +.PHONY: help build build-dev validate-prod-build build-backend-prod run-backend-prod-local up-prod up-dev up-local infra-up infra-down infra-logs dev-local dev-backend dev-webapp dev-admin dev-rest dev-ws dev-worker down logs logs-webapp logs-backend restart clean scale scale-webapp scale-hocuspocus ps stats supabase-start supabase-stop supabase-status deploy-prod rollback-prod status-prod logs-traefik |
7 | 7 |
|
8 | 8 | help: |
9 | 9 | @echo "Docsplus Full Stack Docker Commands" |
|
12 | 12 | @echo " make build - Build all services (production)" |
13 | 13 | @echo " make build-dev - Build all services (development)" |
14 | 14 | @echo " make validate-prod-build - Build prod images with stub env (no .env.production needed)" |
| 15 | + @echo " make build-backend-prod - Build only backend prod images (rest-api, hocuspocus, worker)" |
| 16 | + @echo " make run-backend-prod-local - Run backend prod images locally (needs .env.local)" |
15 | 17 | @echo "" |
16 | 18 | @echo "Running:" |
17 | 19 | @echo " make up-prod - Start all services (production)" |
@@ -75,6 +77,23 @@ validate-prod-build: |
75 | 77 | DOCKER_BUILDKIT=1 COMPOSE_DOCKER_CLI_BUILD=1 docker compose -f docker-compose.prod.yml --env-file scripts/env.production.build-stub build --parallel |
76 | 78 | @echo "✅ Production build validation passed" |
77 | 79 |
|
| 80 | +# Build only backend (rest-api, hocuspocus-server, hocuspocus-worker) prod images. Same image, 3 services. |
| 81 | +# Use before pushing to verify backend Dockerfile builds; then run with run-backend-prod-local. |
| 82 | +build-backend-prod: |
| 83 | + @echo "🏗️ Building backend production images (rest-api, hocuspocus-server, hocuspocus-worker)..." |
| 84 | + @test -f scripts/env.production.build-stub || (echo "❌ scripts/env.production.build-stub missing"; exit 1) |
| 85 | + DOCKER_BUILDKIT=1 COMPOSE_DOCKER_CLI_BUILD=1 docker compose -f docker-compose.prod.yml --env-file scripts/env.production.build-stub build rest-api hocuspocus-server hocuspocus-worker |
| 86 | + @echo "✅ Backend production images built" |
| 87 | + |
| 88 | +# Run backend prod images locally: Redis + rest-api + hocuspocus-server + hocuspocus-worker (1 replica each). |
| 89 | +# Uses .env.local for DATABASE_URL and secrets. No Traefik; override publishes 4000/4001/4002. |
| 90 | +run-backend-prod-local: build-backend-prod |
| 91 | + @test -f .env.local || (echo "❌ .env.local required (DATABASE_URL, SUPABASE_*, JWT_SECRET, etc.)"; exit 1) |
| 92 | + @echo "🚀 Starting backend (prod images) + Redis locally..." |
| 93 | + DOCKER_BUILDKIT=1 COMPOSE_DOCKER_CLI_BUILD=1 docker compose -f docker-compose.prod.yml -f docker-compose.backend-local.override.yml --env-file .env.local up -d redis rest-api hocuspocus-server hocuspocus-worker |
| 94 | + @echo "✅ Backend running. REST: http://localhost:4000 WS: ws://localhost:4001 Health: http://localhost:4000/health" |
| 95 | + @echo " make logs-backend - view logs" |
| 96 | + |
78 | 97 | build-dev: |
79 | 98 | @echo "🏗️ Building all services (development)..." |
80 | 99 | @docker compose -f docker-compose.dev.yml --env-file .env.development build |
|
0 commit comments