- move the relational data center to MySQL and a standalone workbench\n- add Interface Center API credentials, policies, logs, and DBeaver SSH guidance\n- harden authentication and deployment while retiring unused management surfaces
55 lines
2.2 KiB
YAML
55 lines
2.2 KiB
YAML
services:
|
|
postgres:
|
|
environment:
|
|
POSTGRES_USER: ${POSTGRES_USER:?必须设置 POSTGRES_USER}
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?必须设置 POSTGRES_PASSWORD}
|
|
POSTGRES_DB: ${POSTGRES_DB:?必须设置 POSTGRES_DB}
|
|
|
|
mysql:
|
|
environment:
|
|
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:?必须设置 MYSQL_ROOT_PASSWORD}
|
|
MYSQL_DATABASE: ${MYSQL_DATABASE:-platform_control}
|
|
MYSQL_USER: ${MYSQL_USER:?必须设置 MYSQL_USER}
|
|
MYSQL_PASSWORD: ${MYSQL_PASSWORD:?必须设置 MYSQL_PASSWORD}
|
|
|
|
api:
|
|
network_mode: host
|
|
ports: !override []
|
|
environment:
|
|
APP_ENVIRONMENT: production
|
|
SECURITY_STRICT_MODE: "true"
|
|
DATABASE_URL: postgresql://${POSTGRES_USER:?必须设置 POSTGRES_USER}:${POSTGRES_PASSWORD:?必须设置 POSTGRES_PASSWORD}@127.0.0.1:${POSTGRES_PORT:-5433}/${POSTGRES_DB:?必须设置 POSTGRES_DB}
|
|
DATA_MYSQL_URL: mysql://${MYSQL_USER:?必须设置 MYSQL_USER}:${MYSQL_PASSWORD:?必须设置 MYSQL_PASSWORD}@127.0.0.1:${MYSQL_PORT:-3307}/${MYSQL_DATABASE:-platform_control}
|
|
AUTH_SECRET: ${AUTH_SECRET:?必须设置至少 32 位 AUTH_SECRET}
|
|
AUTH_DEFAULT_PASSWORD: ${AUTH_DEFAULT_PASSWORD:?必须设置至少 12 位管理员密码}
|
|
INTERFACE_API_SECRET: ${INTERFACE_API_SECRET:?必须设置独立的 INTERFACE_API_SECRET}
|
|
INGEST_API_KEYS: ${INGEST_API_KEYS:?必须设置外部接口密钥}
|
|
CORS_ALLOWED_ORIGINS: ${CORS_ALLOWED_ORIGINS:?必须设置后台 HTTPS 来源}
|
|
TRUSTED_HOSTS: ${TRUSTED_HOSTS:?必须设置服务器域名}
|
|
MYSQL_HOST_BIND: 127.0.0.1
|
|
DATA_MYSQL_SSH_TUNNEL_REQUIRED: "true"
|
|
DATA_SQL_CONSOLE_WRITE_ENABLED: "false"
|
|
FALKORDB_HOST: 127.0.0.1
|
|
FALKORDB_PORT: ${FALKORDB_PORT:-6380}
|
|
command:
|
|
- python
|
|
- -m
|
|
- uvicorn
|
|
- app.main:app
|
|
- --host
|
|
- ${API_BIND_HOST:-127.0.0.1}
|
|
- --port
|
|
- ${API_PORT:-8102}
|
|
healthcheck:
|
|
test:
|
|
[
|
|
"CMD",
|
|
"python",
|
|
"-c",
|
|
"import os, urllib.request; port=os.environ.get('API_PORT','8102'); urllib.request.urlopen(f'http://127.0.0.1:{port}/v1/admin/health', timeout=5).read()",
|
|
]
|
|
interval: 30s
|
|
timeout: 5s
|
|
start_period: 30s
|
|
retries: 3
|