zitadel auth

This commit is contained in:
Codex
2026-05-01 19:09:58 +03:00
commit 6b91afe300
5 changed files with 796 additions and 0 deletions

86
docker-compose.yml Normal file
View File

@@ -0,0 +1,86 @@
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: