120 lines
3.1 KiB
YAML
120 lines
3.1 KiB
YAML
# Do not edit this file directly. Use a ‘docker-compose.override.yaml’ file if you can.
|
||
# Refer to `docker-compose.override.yaml.example’ for some sample configurations.
|
||
|
||
volumes:
|
||
mongodb-data-node:
|
||
pgdata2:
|
||
libre-images:
|
||
libre-logs:
|
||
meili_data:
|
||
|
||
networks:
|
||
net:
|
||
driver: overlay
|
||
attachable: true
|
||
traefik-public:
|
||
external: true
|
||
|
||
services:
|
||
librechat_api:
|
||
depends_on:
|
||
- mongodb
|
||
- rag_api
|
||
image: ghcr.io/danny-avila/librechat-dev:latest
|
||
restart: always
|
||
user: "${UID}:${GID}"
|
||
extra_hosts:
|
||
- "host.docker.internal:host-gateway"
|
||
environment:
|
||
- HOST=0.0.0.0
|
||
- MONGO_URI=mongodb://mongodb:27017/LibreChat
|
||
- MEILI_HOST=http://meilisearch:7700
|
||
- RAG_PORT=${RAG_PORT:-8000}
|
||
- RAG_API_URL=http://rag_api:${RAG_PORT:-8000}
|
||
- DOMAIN=${DOMAIN}
|
||
volumes:
|
||
- type: bind
|
||
source: /var/data/config/.env
|
||
target: /app/.env
|
||
- libre-images:/app/client/public/images
|
||
- libre-logs:/app/api/logs
|
||
- type: bind
|
||
source: /var/data/config/librechat.yaml
|
||
target: /app/librechat.yaml
|
||
networks:
|
||
- net
|
||
- traefik-public
|
||
deploy:
|
||
placement:
|
||
constraints:
|
||
- node.labels.librechat.libre-images == true
|
||
- node.labels.librechat.libre-logs == true
|
||
labels:
|
||
- traefik.enable=true
|
||
- traefik.docker.network=traefik-public
|
||
- traefik.constraint-label=traefik-public
|
||
- traefik.http.routers.librechat.entrypoints=https
|
||
- traefik.http.routers.librechat.rule=Host(`chat.${DOMAIN}`)
|
||
- traefik.http.routers.librechat.tls.certresolver=le
|
||
- traefik.http.routers.librechat.service=librechat_app
|
||
- traefik.http.services.librechat_app.loadbalancer.server.port=${PORT:-3080}
|
||
mongodb:
|
||
image: mongo
|
||
restart: always
|
||
user: "${UID}:${GID}"
|
||
command: mongod --noauth
|
||
volumes:
|
||
- mongodb-data-node:/data/db
|
||
networks:
|
||
- net
|
||
deploy:
|
||
placement:
|
||
constraints:
|
||
- node.labels.librechat.mongodb-data-node == true
|
||
meilisearch:
|
||
image: getmeili/meilisearch:v1.7.3
|
||
restart: always
|
||
user: "${UID}:${GID}"
|
||
environment:
|
||
- MEILI_HOST=http://meilisearch:7700
|
||
- MEILI_NO_ANALYTICS=true
|
||
volumes:
|
||
- meili_data:/meili_data
|
||
networks:
|
||
- net
|
||
deploy:
|
||
placement:
|
||
constraints:
|
||
- node.labels.librechat.meili_data == true
|
||
vectordb:
|
||
image: ankane/pgvector:latest
|
||
environment:
|
||
POSTGRES_DB: mydatabase
|
||
POSTGRES_USER: myuser
|
||
POSTGRES_PASSWORD: mypassword
|
||
restart: always
|
||
volumes:
|
||
- pgdata2:/var/lib/postgresql/data
|
||
networks:
|
||
- net
|
||
deploy:
|
||
placement:
|
||
constraints:
|
||
- node.labels.librechat.pgdata2 == true
|
||
rag_api:
|
||
image: ghcr.io/danny-avila/librechat-rag-api-dev:latest
|
||
environment:
|
||
POSTGRES_DB: mydatabase
|
||
POSTGRES_USER: myuser
|
||
POSTGRES_PASSWORD: mypassword
|
||
DB_HOST: vectordb
|
||
RAG_PORT: ${RAG_PORT:-8000}
|
||
restart: always
|
||
depends_on:
|
||
- vectordb
|
||
env_file:
|
||
- .env
|
||
networks:
|
||
- net
|
||
|