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 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_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= OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf OTEL_EXPORTER_OTLP_TRACES_PROTOCOL= OTEL_EXPORTER_OTLP_TIMEOUT=10000 OTEL_EXPORTER_OTLP_TRACES_TIMEOUT= OTEL_EXPORTER_OTLP_HEADERS= OTEL_EXPORTER_OTLP_TRACES_HEADERS= 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_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_DISPLAY_NAME=Crank Owner CRANK_DEMO_SEED=true CRANK_BASE_URL=https://crank.example.com