120 lines
3.7 KiB
YAML
120 lines
3.7 KiB
YAML
version: "3.7"
|
|
|
|
services:
|
|
app_proxy:
|
|
environment:
|
|
APP_HOST: lobe-chat_app_1
|
|
APP_PORT: 3210
|
|
PROXY_AUTH_ADD: "false"
|
|
|
|
app:
|
|
image: lobehub/lobehub:2.1.54@sha256:6f2bd9a1f203df46146361021375489f7f14883244fe01451ddced4e5fc2e550
|
|
restart: on-failure
|
|
env_file:
|
|
- ${APP_DATA_DIR}/settings.env
|
|
environment:
|
|
APP_URL: http://${DEVICE_DOMAIN_NAME}:7455
|
|
INTERNAL_APP_URL: http://lobe-chat_app_1:3210
|
|
AUTH_TRUSTED_ORIGINS: http://${DEVICE_DOMAIN_NAME}:7455
|
|
DATABASE_URL: postgresql://postgres:lobehubsecret@lobe-chat_postgres_1:5432/lobehub
|
|
REDIS_URL: redis://lobe-chat_redis_1:6379
|
|
REDIS_PREFIX: lobechat
|
|
REDIS_TLS: "0"
|
|
S3_ENDPOINT: http://${DEVICE_DOMAIN_NAME}:7458
|
|
S3_BUCKET: lobe
|
|
S3_ACCESS_KEY: lobehub
|
|
S3_ENABLE_PATH_STYLE: "1"
|
|
S3_ACCESS_KEY_ID: lobehub
|
|
S3_SECRET_ACCESS_KEY: ${APP_PASSWORD}
|
|
S3_SET_ACL: "0"
|
|
LLM_VISION_IMAGE_USE_BASE64: "1"
|
|
SEARXNG_URL: http://lobe-chat_searxng_1:8080
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
rustfs:
|
|
condition: service_healthy
|
|
rustfs-init:
|
|
condition: service_completed_successfully
|
|
|
|
postgres:
|
|
image: paradedb/paradedb:0.22.3-pg17@sha256:746c263e546b9d8bfdd278d7da9584c47ce838670e6cdfdb32713147548b43ce
|
|
user: "1000:1000"
|
|
restart: on-failure
|
|
environment:
|
|
POSTGRES_DB: lobehub
|
|
POSTGRES_PASSWORD: lobehubsecret
|
|
volumes:
|
|
- ${APP_DATA_DIR}/data/db:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U postgres -d lobehub"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 10
|
|
|
|
redis:
|
|
image: redis:7.4.8@sha256:a5995dfdf108997f8a7c9587f54fad5e94ed5848de5236a6b28119e99efd67e0
|
|
user: "1000:1000"
|
|
restart: on-failure
|
|
command: redis-server --save 60 1000 --appendonly yes
|
|
volumes:
|
|
- ${APP_DATA_DIR}/data/redis:/data
|
|
healthcheck:
|
|
test: ["CMD", "redis-cli", "ping"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 10
|
|
|
|
rustfs:
|
|
image: rustfs/rustfs:1.0.0-alpha.90@sha256:0725587f6fcca83c1898f321424327d6e6da5e01ea20382905dd258ed5af3be4
|
|
restart: on-failure
|
|
ports:
|
|
- "7458:9000"
|
|
volumes:
|
|
- ${APP_DATA_DIR}/data/rustfs:/data
|
|
- ${APP_DATA_DIR}/data/rustfs-logs:/logs
|
|
environment:
|
|
RUSTFS_ADDRESS: 0.0.0.0:9000
|
|
RUSTFS_CONSOLE_ADDRESS: 0.0.0.0:9001
|
|
RUSTFS_CONSOLE_ENABLE: "true"
|
|
RUSTFS_VOLUMES: /data
|
|
RUSTFS_ACCESS_KEY: lobehub
|
|
RUSTFS_SECRET_KEY: ${APP_PASSWORD}
|
|
RUSTFS_OBS_LOG_DIRECTORY: /logs
|
|
healthcheck:
|
|
test:
|
|
["CMD", "sh", "-c", "curl -f http://127.0.0.1:9000/health && curl -f http://127.0.0.1:9001/rustfs/console/health"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 40s
|
|
|
|
rustfs-init:
|
|
image: minio/mc:RELEASE.2025-08-13T08-35-41Z@sha256:a7fe349ef4bd8521fb8497f55c6042871b2ae640607cf99d9bede5e9bdf11727
|
|
restart: on-failure
|
|
depends_on:
|
|
rustfs:
|
|
condition: service_healthy
|
|
volumes:
|
|
- ./bucket.config.json:/bucket.config.json:ro
|
|
entrypoint: /bin/sh
|
|
command:
|
|
- -c
|
|
- >
|
|
set -eux;
|
|
mc --version;
|
|
mc alias set rustfs "http://lobe-chat_rustfs_1:9000" "lobehub" "${APP_PASSWORD}";
|
|
mc ls rustfs || true;
|
|
mc mb "rustfs/lobe" --ignore-existing;
|
|
mc anonymous set download rustfs/lobe
|
|
|
|
searxng:
|
|
image: ghcr.io/searxng/searxng:2026.4.22-74f1ca203@sha256:37c616a774b90fb5df9239eb143f1b11866ddf7b830cd1ebcca6ba11b38cc2bf
|
|
restart: on-failure
|
|
environment:
|
|
SEARXNG_SECRET: ${APP_SEED}
|
|
volumes:
|
|
- ${APP_DATA_DIR}/data/searxng/settings.yml:/etc/searxng/settings.yml
|