Initial Commit

This commit is contained in:
Eric Gullickson
2025-09-17 16:09:15 -05:00
parent 0cdb9803de
commit a052040e3a
373 changed files with 437090 additions and 6773 deletions

75
scripts/provision-tenant.sh Executable file
View File

@@ -0,0 +1,75 @@
#!/usr/bin/env bash
set -euo pipefail
TENANT_ID=${1:-}
if [[ -z "$TENANT_ID" ]]; then
echo "Usage: $0 <tenant-id>" >&2
exit 1
fi
if ! [[ "$TENANT_ID" =~ ^[a-z0-9-]+$ ]]; then
echo "Error: tenant-id must be lowercase alphanumeric and dashes (e.g., acme-corp)" >&2
exit 1
fi
COMPOSE_FILE="docker-compose.yml"
echo "Appending services for tenant '$TENANT_ID' to $COMPOSE_FILE..."
cat >> "$COMPOSE_FILE" <<YAML
${TENANT_ID}-backend:
build: ./backend
environment:
- TENANT_ID=${TENANT_ID}
- DATABASE_URL=postgresql://motovault_user:\${DB_PASSWORD}@${TENANT_ID}-postgres:5432/motovault
- REDIS_URL=redis://${TENANT_ID}-redis:6379
- PLATFORM_TENANTS_API_URL=http://mvp-platform-tenants:8000
- PLATFORM_VEHICLES_API_URL=http://mvp-platform-vehicles-api:8000
- PLATFORM_VEHICLES_API_KEY=\${PLATFORM_VEHICLES_API_KEY:-mvp-platform-vehicles-secret-key}
depends_on:
- ${TENANT_ID}-postgres
- ${TENANT_ID}-redis
${TENANT_ID}-frontend:
build: ./frontend
environment:
- VITE_API_BASE_URL=http://${TENANT_ID}-backend:3001
- VITE_TENANT_ID=${TENANT_ID}
- VITE_AUTH0_DOMAIN=\${VITE_AUTH0_DOMAIN:-motovaultpro.us.auth0.com}
- VITE_AUTH0_CLIENT_ID=\${VITE_AUTH0_CLIENT_ID:-replace-me}
- VITE_AUTH0_AUDIENCE=\${VITE_AUTH0_AUDIENCE:-https://api.motovaultpro.com}
depends_on:
- ${TENANT_ID}-backend
${TENANT_ID}-postgres:
image: postgres:15-alpine
environment:
POSTGRES_DB: motovault
POSTGRES_USER: motovault_user
POSTGRES_PASSWORD: \${DB_PASSWORD:-localdev123}
POSTGRES_INITDB_ARGS: "--encoding=UTF8"
volumes:
- ./backend/src/_system/migrations:/docker-entrypoint-initdb.d
- ${TENANT_ID}_postgres_data:/var/lib/postgresql/data
${TENANT_ID}-redis:
image: redis:7-alpine
command: redis-server --appendonly yes
volumes:
- ${TENANT_ID}_redis_data:/data
YAML
echo "Adding volumes for tenant '$TENANT_ID'..."
cat >> "$COMPOSE_FILE" <<YAML
${TENANT_ID}_postgres_data:
${TENANT_ID}_redis_data:
YAML
echo "Tenant '${TENANT_ID}' provisioned. Run 'docker compose up -d' to start services."