feat: harden community production foundation through story 1.5

This commit is contained in:
2026-08-14 00:21:59 +03:00
parent c30461cc92
commit f6fc2e5c9b
161 changed files with 16758 additions and 2515 deletions
+39 -30
View File
@@ -1,34 +1,35 @@
# Deployment-only image, project and publication settings.
COMPOSE_PROJECT_NAME=crank
POSTGRES_DB=crank
POSTGRES_USER=crank
POSTGRES_PASSWORD=change-me
POSTGRES_HOST=postgres
POSTGRES_PORT=5432
POSTGRES_PUBLISH_BIND=127.0.0.1
CRANK_ADMIN_API_IMAGE=git.itexp.me/bsodfather/crank-community-admin-api:main
CRANK_MCP_SERVER_IMAGE=git.itexp.me/bsodfather/crank-community-mcp-server:main
CRANK_UI_IMAGE=git.itexp.me/bsodfather/crank-community-ui:main
CRANK_STORAGE_ROOT=/var/lib/crank/storage
CRANK_PUBLISH_BIND=127.0.0.1
CRANK_ADMIN_BIND=0.0.0.0:3001
CRANK_MCP_BIND=0.0.0.0:3002
CRANK_MCP_REFRESH_MS=5000
# BEGIN GENERATED CRANK RUNTIME CONFIG
CRANK_DATABASE_URL=
POSTGRES_HOST=postgres
POSTGRES_PORT=5432
POSTGRES_DB=crank
POSTGRES_USER=crank
POSTGRES_PASSWORD=
POSTGRES_MAX_CONNECTIONS=20
POSTGRES_MIN_CONNECTIONS=2
POSTGRES_ACQUIRE_TIMEOUT_MS=5000
POSTGRES_IDLE_TIMEOUT_MS=600000
POSTGRES_MAX_LIFETIME_MS=1800000
CRANK_MASTER_KEY=
CRANK_BASE_URL=http://localhost:3000
CRANK_RUNTIME_MAX_CONCURRENT_UNARY=64
CRANK_CACHE_BACKEND=memory
CRANK_CACHE_URL=
CRANK_OUTBOUND_ALLOWED_HOSTS=
CRANK_OUTBOUND_DENIED_HOSTS=
CRANK_OUTBOUND_MAX_RESPONSE_BYTES=4194304
CRANK_CACHE_BACKEND=memory
CRANK_CACHE_URL=
CRANK_CACHE_DEFAULT_TTL_MS=
CRANK_ENVIRONMENT=production
CRANK_LOG_LEVEL=info
CRANK_LOG_LEVEL=
CRANK_SENTRY_DSN=
CRANK_METRICS_ENABLED=true
CRANK_ADMIN_METRICS_BIND=127.0.0.1:9464
CRANK_MCP_METRICS_BIND=127.0.0.1:9465
CRANK_METRICS_BEARER_TOKEN=
OTEL_EXPORTER_OTLP_ENDPOINT=
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=
@@ -42,16 +43,24 @@ OTEL_BSP_MAX_QUEUE_SIZE=2048
OTEL_BSP_MAX_EXPORT_BATCH_SIZE=512
OTEL_BSP_SCHEDULE_DELAY=5000
OTEL_BSP_EXPORT_TIMEOUT=30000
CRANK_MASTER_KEY=change-me-master-key
CRANK_SESSION_SECRET=change-me-session-secret
CRANK_PASSWORD_PEPPER=change-me-password-pepper
CRANK_ADMIN_BIND=0.0.0.0:3001
CRANK_ADMIN_METRICS_BIND=127.0.0.1:9464
CRANK_STORAGE_ROOT=/var/lib/crank/storage
CRANK_ADMIN_RATE_LIMIT_RPS=30
CRANK_ADMIN_RATE_LIMIT_BURST=60
CRANK_INVOCATION_LOG_RETENTION_DAYS=30
CRANK_SESSION_SECRET=
CRANK_PASSWORD_PEPPER=
CRANK_SESSION_TTL_HOURS=24
# Trust X-Real-IP / X-Forwarded-For for client rate limiting. Keep enabled only
# when admin-api runs behind the bundled nginx (or another trusted reverse
# proxy). Set to false if you expose admin-api directly to untrusted clients.
CRANK_TRUST_FORWARDED_HEADERS=true
CRANK_BOOTSTRAP_ADMIN_EMAIL=owner@crank.local
CRANK_BOOTSTRAP_ADMIN_PASSWORD=change-me-admin-password
CRANK_BOOTSTRAP_ADMIN_EMAIL=
CRANK_BOOTSTRAP_ADMIN_PASSWORD=
CRANK_BOOTSTRAP_ADMIN_DISPLAY_NAME=Crank Owner
CRANK_DEMO_SEED=true
CRANK_BASE_URL=https://crank.example.com
CRANK_DEMO_SEED=false
CRANK_MCP_BIND=0.0.0.0:3002
CRANK_MCP_METRICS_BIND=127.0.0.1:9465
CRANK_MCP_REFRESH_MS=5000
CRANK_MCP_RATE_LIMIT_RPS=60
CRANK_MCP_RATE_LIMIT_BURST=120
CRANK_RUNTIME_MAX_CONCURRENT_SESSIONS=16
# END GENERATED CRANK RUNTIME CONFIG