87 lines
3.0 KiB
YAML
87 lines
3.0 KiB
YAML
services:
|
|
db:
|
|
image: postgres:17-alpine
|
|
restart: unless-stopped
|
|
environment:
|
|
PGUSER: postgres
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
|
POSTGRES_DB: zitadel
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -d zitadel -U postgres"]
|
|
interval: 10s
|
|
timeout: 30s
|
|
retries: 10
|
|
start_period: 20s
|
|
volumes:
|
|
- postgres_data:/var/lib/postgresql/data
|
|
|
|
zitadel:
|
|
image: ghcr.io/zitadel/zitadel:v4.13.0
|
|
user: "0:0"
|
|
restart: unless-stopped
|
|
command: 'start-from-init --masterkey "${ZITADEL_MASTERKEY}" --tlsMode disabled'
|
|
environment:
|
|
ZITADEL_DATABASE_POSTGRES_DSN: postgresql://postgres:${POSTGRES_PASSWORD}@db:5432/zitadel?sslmode=disable
|
|
|
|
ZITADEL_EXTERNALSECURE: false
|
|
ZITADEL_EXTERNALPORT: 8081
|
|
ZITADEL_EXTERNALDOMAIN: zitadel.localhost
|
|
ZITADEL_TLS_ENABLED: false
|
|
|
|
ZITADEL_FIRSTINSTANCE_ORG_HUMAN_PASSWORDCHANGEREQUIRED: false
|
|
ZITADEL_FIRSTINSTANCE_ORG_HUMAN_USERNAME: ${ZITADEL_ADMIN_USERNAME}
|
|
ZITADEL_FIRSTINSTANCE_ORG_HUMAN_EMAIL_ADDRESS: ${ZITADEL_ADMIN_EMAIL}
|
|
ZITADEL_FIRSTINSTANCE_ORG_HUMAN_EMAIL_VERIFIED: true
|
|
ZITADEL_FIRSTINSTANCE_ORG_HUMAN_PASSWORD: ${ZITADEL_ADMIN_PASSWORD}
|
|
|
|
# PAT для API provision/user registration.
|
|
ZITADEL_FIRSTINSTANCE_PATPATH: /zitadel-secrets/admin.pat
|
|
ZITADEL_FIRSTINSTANCE_ORG_MACHINE_MACHINE_USERNAME: mm-admin-machine
|
|
ZITADEL_FIRSTINSTANCE_ORG_MACHINE_MACHINE_NAME: Million Miles Admin Machine
|
|
ZITADEL_FIRSTINSTANCE_ORG_MACHINE_PAT_EXPIRATIONDATE: '2029-01-01T00:00:00Z'
|
|
|
|
# PAT для Session API / Auth Request finalize.
|
|
ZITADEL_FIRSTINSTANCE_LOGINCLIENTPATPATH: /zitadel-secrets/login-client.pat
|
|
ZITADEL_FIRSTINSTANCE_ORG_LOGINCLIENT_MACHINE_USERNAME: mm-login-client
|
|
ZITADEL_FIRSTINSTANCE_ORG_LOGINCLIENT_MACHINE_NAME: Million Miles Login Client
|
|
ZITADEL_FIRSTINSTANCE_ORG_LOGINCLIENT_PAT_EXPIRATIONDATE: '2029-01-01T00:00:00Z'
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
expose:
|
|
- "8080"
|
|
volumes:
|
|
- zitadel_data:/app/data
|
|
- zitadel_secrets:/zitadel-secrets
|
|
|
|
frontend:
|
|
build: ./frontend
|
|
restart: unless-stopped
|
|
environment:
|
|
APP_URL: ${APP_URL}
|
|
ZITADEL_URL: ${ZITADEL_URL}
|
|
ZITADEL_PUBLIC_URL: ${ZITADEL_PUBLIC_URL}
|
|
ZITADEL_PROJECT_NAME: ${ZITADEL_PROJECT_NAME}
|
|
OIDC_APP_NAME: ${OIDC_APP_NAME}
|
|
OIDC_REDIRECT_URI: ${OIDC_REDIRECT_URI}
|
|
OIDC_CLIENT_ID: ${OIDC_CLIENT_ID}
|
|
OIDC_CLIENT_SECRET: ${OIDC_CLIENT_SECRET}
|
|
ZITADEL_SERVICE_TOKEN_FILE: ${ZITADEL_SERVICE_TOKEN_FILE}
|
|
ZITADEL_LOGIN_CLIENT_TOKEN_FILE: ${ZITADEL_LOGIN_CLIENT_TOKEN_FILE}
|
|
SESSION_SECRET: ${SESSION_SECRET}
|
|
AUTH_DEBUG: ${AUTH_DEBUG}
|
|
expose:
|
|
- "3000"
|
|
depends_on:
|
|
- zitadel
|
|
extra_hosts:
|
|
- "host.docker.internal:host-gateway"
|
|
- "zitadel.localhost:host-gateway"
|
|
volumes:
|
|
- zitadel_secrets:/zitadel-secrets
|
|
|
|
volumes:
|
|
postgres_data:
|
|
zitadel_data:
|
|
zitadel_secrets:
|