Single docker-compose stack for local development (Postgres, Zitadel, RabbitMQ, SeaweedFS + bucket init, Jaeger) plus an optional overlay to run the .NET apps in Docker. up.ps1 orchestrates the full bootstrap: stack up, stream-ticket keys, EF Core migrations and Zitadel provisioning. - Zitadel is provisioned automatically (service-account PAT -> project + OIDC app with JWT access token); the generated ClientId is wired into Musify.Api user-secrets and .env. No manual console steps. - ZITADEL_EXTERNAL_DOMAIN=host.docker.internal so token validation works both with local apps and full-docker. - App Dockerfiles copy AppSettings*.json to lowercase so config loads on case-sensitive Linux; Worker image ships ffmpeg. - Scripts split by responsibility (common/stream-keys/migrate/provision); apps overlay de-duped via YAML anchors. - Remove the superseded standalone seaweedfs compose; point docs/development at the unified stack. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
36 lines
1.3 KiB
Bash
36 lines
1.3 KiB
Bash
# Dev stack config (deploy/docker-compose.yml).
|
|
# Copy to deploy/.env and adjust. .env is not versioned (.gitignore ignores *.env).
|
|
|
|
# PostgreSQL (shared by Musify and Zitadel). Local apps use localhost:59000.
|
|
POSTGRES_USER=postgres
|
|
POSTGRES_PASSWORD=postgres
|
|
POSTGRES_DB=musify_db
|
|
POSTGRES_HOST_PORT=59000
|
|
|
|
# RabbitMQ (MassTransit)
|
|
RABBITMQ_DEFAULT_USER=guest
|
|
RABBITMQ_DEFAULT_PASS=guest
|
|
|
|
# Zitadel (OIDC). The masterkey MUST be exactly 32 characters.
|
|
ZITADEL_MASTERKEY=MasterkeyNeedsToHave32Characters
|
|
# The external domain/port forms the token issuer and must match everywhere.
|
|
# host.docker.internal resolves the same from browser, local apps and containers,
|
|
# so auth works both locally and full-docker. Changing it needs a re-init
|
|
# (up.ps1 -Destroy; up.ps1). Admin login: <user>@zitadel.<domain>.
|
|
ZITADEL_EXTERNAL_DOMAIN=host.docker.internal
|
|
ZITADEL_EXTERNAL_PORT=8080
|
|
ZITADEL_ADMIN_USERNAME=admin
|
|
ZITADEL_ADMIN_PASSWORD=Password1!
|
|
|
|
# SeaweedFS (S3). Must match deploy/seaweedfs/s3.conf.
|
|
S3_ACCESS_KEY=admin_access_key
|
|
S3_SECRET_KEY=admin_secret_key
|
|
S3_BUCKET=webapi-storage
|
|
|
|
# Host paths used by up.ps1 and the apps overlay.
|
|
STREAM_KEYS_DIR=D:/weed
|
|
WORKER_TEMP_DIR=D:/tempsFilesDev
|
|
|
|
# OIDC ClientId, filled in by zitadel/provision.ps1 (used by the docker path).
|
|
AUTH_CLIENT_ID=
|