Files

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