docker-compose-sync/lobe-chat-allinone.yml

85 lines
2.1 KiB
YAML

name: lobe-chat-database
services:
network-service:
image: alpine
container_name: lobe-network
restart: always
ports:
- 3210 # LobeChat
command: tail -f /dev/null
networks:
- lobe-network
postgresql:
image: pgvector/pgvector:pg17
container_name: lobe-postgres
ports:
- '5432:5432'
volumes:
- '/app/ai-chat/pqsql:/var/lib/postgresql/data'
environment:
- 'POSTGRES_DB=${LOBE_DB_NAME}'
- 'POSTGRES_PASSWORD=${POSTGRES_PASSWORD}'
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U postgres']
interval: 5s
timeout: 5s
retries: 5
restart: always
networks:
- lobe-network
searxng:
image: searxng/searxng
container_name: lobe-searxng
volumes:
- '/app/ai-chat/searxng-settings.yml:/etc/searxng/settings.yml'
environment:
- 'SEARXNG_SETTINGS_FILE=/etc/searxng/settings.yml'
restart: always
networks:
- lobe-network
env_file:
- lobe-chat-allinone-env.env
lobe:
image: lobehub/lobe-chat-database
container_name: lobe-chat
network_mode: 'service:network-service'
depends_on:
postgresql:
condition: service_healthy
network-service:
condition: service_started
environment:
- 'NEXT_AUTH_SSO_PROVIDERS=casdoor'
- 'KEY_VAULTS_SECRET=Kix2wcUONd4CX51E/ZPAd36BqM4wzJgKjPtz2sGztqQ='
- 'NEXT_AUTH_SECRET=NX2kaPE923dt6BL2U8e9oSre5RfoT7hg'
- 'DATABASE_URL=postgresql://postgres:${POSTGRES_PASSWORD}@postgresql:5432/${LOBE_DB_NAME}'
- 'S3_BUCKET=${S3_BUCKET}'
- 'S3_ENDPOINT=${S3_ENDPOINT}'
- 'S3_ACCESS_KEY_ID=${S3_ACCESS_KEY_ID}'
- 'S3_SECRET_ACCESS_KEY=${S3_SECRET_ACCESS_KEY}'
- 'S3_PUBLIC_DOMAIN=${S3_PUBLIC_DOMAIN}'
- 'SEARXNG_URL=http://searxng:8080'
env_file:
- lobe-chat-allinone-env.env
restart: always
entrypoint: >
/bin/sh -c "
/bin/node /app/startServer.js &
LOBE_PID=\$!
sleep 3
wait \$LOBE_PID
"
volumes:
data:
driver: local
s3_data:
driver: local
networks:
lobe-network:
driver: bridge