feat: complete Epic 1 production foundation

This commit is contained in:
2026-08-25 01:24:11 +03:00
parent 767428436d
commit 182bde8ac0
298 changed files with 35719 additions and 5299 deletions
+3 -2
View File
@@ -17,12 +17,13 @@ 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_BASE_URL=https://crank.example.local
CRANK_RUNTIME_MAX_CONCURRENT_UNARY=64
CRANK_CACHE_BACKEND=memory
CRANK_CACHE_URL=
CRANK_OUTBOUND_ALLOWED_HOSTS=
CRANK_OUTBOUND_DENIED_HOSTS=
CRANK_OUTBOUND_MAX_REQUEST_BYTES=4194304
CRANK_OUTBOUND_MAX_RESPONSE_BYTES=4194304
CRANK_ENVIRONMENT=production
CRANK_LOG_LEVEL=
@@ -50,7 +51,7 @@ CRANK_INVOCATION_LOG_RETENTION_DAYS=30
CRANK_SESSION_SECRET=
CRANK_PASSWORD_PEPPER=
CRANK_SESSION_TTL_HOURS=24
CRANK_TRUST_FORWARDED_HEADERS=true
CRANK_TRUSTED_PROXY_IPS=127.0.0.1
CRANK_BOOTSTRAP_ADMIN_EMAIL=
CRANK_BOOTSTRAP_ADMIN_PASSWORD=
CRANK_BOOTSTRAP_ADMIN_DISPLAY_NAME=Crank Owner
+3 -2
View File
@@ -19,12 +19,13 @@ 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_BASE_URL=https://crank.example.local
CRANK_RUNTIME_MAX_CONCURRENT_UNARY=64
CRANK_CACHE_BACKEND=memory
CRANK_CACHE_URL=
CRANK_OUTBOUND_ALLOWED_HOSTS=
CRANK_OUTBOUND_DENIED_HOSTS=
CRANK_OUTBOUND_MAX_REQUEST_BYTES=4194304
CRANK_OUTBOUND_MAX_RESPONSE_BYTES=4194304
CRANK_ENVIRONMENT=production
CRANK_LOG_LEVEL=
@@ -52,7 +53,7 @@ CRANK_INVOCATION_LOG_RETENTION_DAYS=30
CRANK_SESSION_SECRET=
CRANK_PASSWORD_PEPPER=
CRANK_SESSION_TTL_HOURS=24
CRANK_TRUST_FORWARDED_HEADERS=true
CRANK_TRUSTED_PROXY_IPS=127.0.0.1
CRANK_BOOTSTRAP_ADMIN_EMAIL=
CRANK_BOOTSTRAP_ADMIN_PASSWORD=
CRANK_BOOTSTRAP_ADMIN_DISPLAY_NAME=Crank Owner
+3 -2
View File
@@ -107,13 +107,13 @@ services:
CRANK_SESSION_SECRET: ${CRANK_SESSION_SECRET}
CRANK_PASSWORD_PEPPER: ${CRANK_PASSWORD_PEPPER}
CRANK_SESSION_TTL_HOURS: ${CRANK_SESSION_TTL_HOURS:-24}
CRANK_TRUST_FORWARDED_HEADERS: ${CRANK_TRUST_FORWARDED_HEADERS:-true}
CRANK_TRUSTED_PROXY_IPS: ${CRANK_TRUSTED_PROXY_IPS:-}
CRANK_BOOTSTRAP_ADMIN_EMAIL: ${CRANK_BOOTSTRAP_ADMIN_EMAIL}
CRANK_BOOTSTRAP_ADMIN_PASSWORD: ${CRANK_BOOTSTRAP_ADMIN_PASSWORD}
CRANK_BOOTSTRAP_ADMIN_DISPLAY_NAME: ${CRANK_BOOTSTRAP_ADMIN_DISPLAY_NAME:-Crank Owner}
CRANK_DEMO_SEED: ${CRANK_DEMO_SEED:-false}
CRANK_OUTBOUND_ALLOWED_HOSTS: ${CRANK_OUTBOUND_ALLOWED_HOSTS:-}
CRANK_OUTBOUND_DENIED_HOSTS: ${CRANK_OUTBOUND_DENIED_HOSTS:-}
CRANK_OUTBOUND_MAX_REQUEST_BYTES: ${CRANK_OUTBOUND_MAX_REQUEST_BYTES:-4194304}
CRANK_OUTBOUND_MAX_RESPONSE_BYTES: ${CRANK_OUTBOUND_MAX_RESPONSE_BYTES:-4194304}
volumes:
- artifact_storage:${CRANK_STORAGE_ROOT:-/var/lib/crank/storage}
@@ -176,6 +176,7 @@ services:
CRANK_BASE_URL: ${CRANK_BASE_URL:-http://localhost:3000}
CRANK_OUTBOUND_ALLOWED_HOSTS: ${CRANK_OUTBOUND_ALLOWED_HOSTS:-}
CRANK_OUTBOUND_DENIED_HOSTS: ${CRANK_OUTBOUND_DENIED_HOSTS:-}
CRANK_OUTBOUND_MAX_REQUEST_BYTES: ${CRANK_OUTBOUND_MAX_REQUEST_BYTES:-4194304}
CRANK_OUTBOUND_MAX_RESPONSE_BYTES: ${CRANK_OUTBOUND_MAX_RESPONSE_BYTES:-4194304}
ports:
- "${CRANK_PUBLISH_BIND:-127.0.0.1}:${CRANK_MCP_PUBLISH_PORT:-3002}:3002"
+3 -2
View File
@@ -107,13 +107,13 @@ services:
CRANK_SESSION_SECRET: ${CRANK_SESSION_SECRET}
CRANK_PASSWORD_PEPPER: ${CRANK_PASSWORD_PEPPER}
CRANK_SESSION_TTL_HOURS: ${CRANK_SESSION_TTL_HOURS:-24}
CRANK_TRUST_FORWARDED_HEADERS: ${CRANK_TRUST_FORWARDED_HEADERS:-true}
CRANK_TRUSTED_PROXY_IPS: ${CRANK_TRUSTED_PROXY_IPS:-}
CRANK_BOOTSTRAP_ADMIN_EMAIL: ${CRANK_BOOTSTRAP_ADMIN_EMAIL}
CRANK_BOOTSTRAP_ADMIN_PASSWORD: ${CRANK_BOOTSTRAP_ADMIN_PASSWORD}
CRANK_BOOTSTRAP_ADMIN_DISPLAY_NAME: ${CRANK_BOOTSTRAP_ADMIN_DISPLAY_NAME:-Crank Owner}
CRANK_DEMO_SEED: ${CRANK_DEMO_SEED:-false}
CRANK_OUTBOUND_ALLOWED_HOSTS: ${CRANK_OUTBOUND_ALLOWED_HOSTS:-}
CRANK_OUTBOUND_DENIED_HOSTS: ${CRANK_OUTBOUND_DENIED_HOSTS:-}
CRANK_OUTBOUND_MAX_REQUEST_BYTES: ${CRANK_OUTBOUND_MAX_REQUEST_BYTES:-4194304}
CRANK_OUTBOUND_MAX_RESPONSE_BYTES: ${CRANK_OUTBOUND_MAX_RESPONSE_BYTES:-4194304}
volumes:
- artifact_storage:${CRANK_STORAGE_ROOT:-/var/lib/crank/storage}
@@ -176,6 +176,7 @@ services:
CRANK_BASE_URL: ${CRANK_BASE_URL:-http://localhost:3000}
CRANK_OUTBOUND_ALLOWED_HOSTS: ${CRANK_OUTBOUND_ALLOWED_HOSTS:-}
CRANK_OUTBOUND_DENIED_HOSTS: ${CRANK_OUTBOUND_DENIED_HOSTS:-}
CRANK_OUTBOUND_MAX_REQUEST_BYTES: ${CRANK_OUTBOUND_MAX_REQUEST_BYTES:-4194304}
CRANK_OUTBOUND_MAX_RESPONSE_BYTES: ${CRANK_OUTBOUND_MAX_RESPONSE_BYTES:-4194304}
ports:
- "${CRANK_PUBLISH_BIND:-127.0.0.1}:${CRANK_MCP_PUBLISH_PORT:-3002}:3002"