feat: integrate platform backend and application interfaces
This commit is contained in:
+77
-5
@@ -1,11 +1,83 @@
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:16-alpine
|
||||
environment:
|
||||
POSTGRES_DB: miragenflow
|
||||
POSTGRES_USER: miragenflow
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?POSTGRES_PASSWORD must be set}
|
||||
volumes:
|
||||
- miragenflow-postgres:/var/lib/postgresql/data
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U miragenflow -d miragenflow"]
|
||||
interval: 5s
|
||||
timeout: 3s
|
||||
retries: 10
|
||||
redis:
|
||||
image: redis:7-alpine
|
||||
command: ["redis-server", "--appendonly", "yes"]
|
||||
volumes:
|
||||
- miragenflow-redis:/data
|
||||
healthcheck:
|
||||
test: ["CMD", "redis-cli", "ping"]
|
||||
interval: 5s
|
||||
timeout: 3s
|
||||
retries: 10
|
||||
server:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: server/Dockerfile
|
||||
environment:
|
||||
NODE_ENV: production
|
||||
MIRAGENFLOW_HOST: 0.0.0.0
|
||||
MIRAGENFLOW_PORT: 3100
|
||||
# The bundled nginx listener is HTTP. Set this to true only when the
|
||||
# public reverse proxy terminates TLS before forwarding to the app.
|
||||
MIRAGENFLOW_COOKIE_SECURE: ${MIRAGENFLOW_COOKIE_SECURE:-false}
|
||||
MIRAGENFLOW_ACCESS_TOKEN_SECRET: ${MIRAGENFLOW_ACCESS_TOKEN_SECRET:?MIRAGENFLOW_ACCESS_TOKEN_SECRET must be set}
|
||||
MIRAGENFLOW_ADMIN_EMAIL: ${MIRAGENFLOW_ADMIN_EMAIL:?MIRAGENFLOW_ADMIN_EMAIL must be set}
|
||||
MIRAGENFLOW_ADMIN_PASSWORD: ${MIRAGENFLOW_ADMIN_PASSWORD:?MIRAGENFLOW_ADMIN_PASSWORD must be set}
|
||||
MIRAGENFLOW_ADMIN_MFA_SECRET: ${MIRAGENFLOW_ADMIN_MFA_SECRET:?MIRAGENFLOW_ADMIN_MFA_SECRET must be set}
|
||||
MIRAGENFLOW_ADMIN_MFA_REQUIRED: ${MIRAGENFLOW_ADMIN_MFA_REQUIRED:-false}
|
||||
MIRAGENFLOW_ADMIN_CAPTCHA_REQUIRED: ${MIRAGENFLOW_ADMIN_CAPTCHA_REQUIRED:-false}
|
||||
MIRAGENFLOW_USER_MFA_REQUIRED: ${MIRAGENFLOW_USER_MFA_REQUIRED:-false}
|
||||
MIRAGENFLOW_USER_VERIFICATION_REQUIRED: ${MIRAGENFLOW_USER_VERIFICATION_REQUIRED:-false}
|
||||
MIRAGENFLOW_EMAIL_REGISTRATION_VERIFICATION_REQUIRED: ${MIRAGENFLOW_EMAIL_REGISTRATION_VERIFICATION_REQUIRED:-false}
|
||||
MIRAGENFLOW_PHONE_REGISTRATION_VERIFICATION_REQUIRED: ${MIRAGENFLOW_PHONE_REGISTRATION_VERIFICATION_REQUIRED:-false}
|
||||
MIRAGENFLOW_CAPTCHA_REQUIRED: ${MIRAGENFLOW_CAPTCHA_REQUIRED:-false}
|
||||
MIRAGENFLOW_CHANNEL_ENCRYPTION_KEY: ${MIRAGENFLOW_CHANNEL_ENCRYPTION_KEY:?MIRAGENFLOW_CHANNEL_ENCRYPTION_KEY must be set}
|
||||
DATABASE_URL: postgres://miragenflow:${POSTGRES_PASSWORD:?POSTGRES_PASSWORD must be set}@postgres:5432/miragenflow
|
||||
REDIS_URL: redis://redis:6379
|
||||
MIRAGENFLOW_PERSISTENCE_ADAPTER: postgres
|
||||
MIRAGENFLOW_QUEUE_ADAPTER: redis
|
||||
MIRAGENFLOW_STAGING_TTL_SECONDS: 604800
|
||||
MIRAGENFLOW_STAGING_DIR: /var/lib/miragenflow/staging
|
||||
expose:
|
||||
- "3100"
|
||||
volumes:
|
||||
- miragenflow-server:/var/lib/miragenflow
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
redis:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "-qO-", "http://127.0.0.1:3100/api/ready"]
|
||||
interval: 10s
|
||||
timeout: 3s
|
||||
retries: 5
|
||||
app:
|
||||
image: ghcr.io/basketikun/infinite-canvas:latest
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
container_name: miragenflow
|
||||
ports:
|
||||
- "3000:3000"
|
||||
restart: unless-stopped
|
||||
# 统计分析(可选,默认关闭)。每家一个独立变量,填了谁就启用谁,可同时启用多家:
|
||||
# environment:
|
||||
# ANALYTICS_GA4_ID: G-XXXXXXXXXX # Google Analytics 4 衡量 ID
|
||||
# ANALYTICS_BAIDU_ID: xxxxxxxxxxxxxxxxxxxxxxxxxxxx # 百度统计站点 ID
|
||||
depends_on:
|
||||
server:
|
||||
condition: service_healthy
|
||||
|
||||
volumes:
|
||||
miragenflow-postgres:
|
||||
miragenflow-redis:
|
||||
miragenflow-server:
|
||||
|
||||
Reference in New Issue
Block a user