Ctrl K
ComunidadGuías…

librechat-compose.yml

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
services:
  librechat:
    image: ghcr.io/danny-avila/librechat:latest
    restart: always
    ports:
      - "${LIBRECHAT_PORT:-3080}:${LIBRECHAT_PORT:-3080}"
    depends_on:
      mongodb:
        condition: service_started
      meilisearch:
        condition: service_started
      clickhouse-mcp:
        condition: service_healthy
      rag_api:
        condition: service_started
    healthcheck:
      test: ["CMD-SHELL", "wget --no-verbose --tries=1 --spider http://127.0.0.1:3080/ || exit 1"]
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 30s
    environment:
      - HOST=0.0.0.0
      - PORT=${LIBRECHAT_PORT:-3080}
      - 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}
      # Load required LibreChat env vars
      - JWT_SECRET=${JWT_SECRET}
      - JWT_REFRESH_SECRET=${JWT_REFRESH_SECRET}
      - MEILI_MASTER_KEY=${MEILI_MASTER_KEY}
      - VECTORDB_DB=${VECTORDB_DB:-mydatabase}
      - VECTORDB_USER=${VECTORDB_USER:-myuser}
      - VECTORDB_PASSWORD=${VECTORDB_PASSWORD:-mypassword}
      # Langfuse Integration - Tracing and Observability
      # Defaults point at the local Langfuse stack; override these in .env to
      # send traces to a Langfuse Cloud (or other remote) project instead.
      - LANGFUSE_PUBLIC_KEY=${LANGFUSE_PUBLIC_KEY}
      - LANGFUSE_SECRET_KEY=${LANGFUSE_SECRET_KEY}
      - LANGFUSE_BASE_URL=${LANGFUSE_BASE_URL}
    volumes:
      - type: bind
        source: ./.env
        target: /app/.env
      - type: bind
        source: ./librechat.yaml
        target: /app/librechat.yaml
      - librechat_images:/app/client/public/images
      - librechat_uploads:/app/uploads

  librechat-user-init:
    image: docker:27-cli
    restart: "no"
    depends_on:
      librechat:
        condition: service_healthy
      mongodb:
        condition: service_started
    environment:
      - LANGFUSE_INIT_USER_EMAIL=${LANGFUSE_INIT_USER_EMAIL}
      - LANGFUSE_INIT_USER_PASSWORD=${LANGFUSE_INIT_USER_PASSWORD}
      - LANGFUSE_INIT_USER_NAME=${LANGFUSE_INIT_USER_NAME}
      - LIBRECHAT_PORT=${LIBRECHAT_PORT:-3080}
      - COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME:-workos-2}
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - type: bind
        source: ./scripts/init-librechat-user.sh
        target: /init-user.sh
        read_only: true
    working_dir: /
    entrypoint: ["/bin/sh", "/init-user.sh"]

  mongodb:
    image: mongo:8.0.17
    restart: always
    volumes:
      - librechat_mongodb_data:/data/db
    command: mongod --noauth
    ports:
      - "127.0.0.1:27017:27017"  # Bind to localhost only

  meilisearch:
    image: getmeili/meilisearch:v1.12.3
    restart: always
    environment:
      - MEILI_HOST=http://meilisearch:7700
      - MEILI_NO_ANALYTICS=true
      - MEILI_MASTER_KEY=${MEILI_MASTER_KEY}
    volumes:
      - librechat_meili_data:/meili_data
    ports:
      - "127.0.0.1:7700:7700"  # Bind to localhost only

  vectordb:
    image: pgvector/pgvector:0.8.0-pg15-trixie
    restart: always
    environment:
      POSTGRES_DB: ${VECTORDB_DB:-mydatabase}
      POSTGRES_USER: ${VECTORDB_USER:-myuser}
      POSTGRES_PASSWORD: ${VECTORDB_PASSWORD:-mypassword}
    volumes:
      - librechat_vectordb_data:/var/lib/postgresql/data
    ports:
      - "127.0.0.1:5433:5432"  # Different port than Langfuse's postgres (5432)

  # RAG API service for file uploads and retrieval
  rag_api:
    image: ghcr.io/danny-avila/librechat-rag-api-dev-lite:latest
    restart: always
    environment:
      - DB_HOST=vectordb
      - RAG_PORT=${RAG_PORT:-8000}
      - POSTGRES_DB=${VECTORDB_DB:-mydatabase}
      - POSTGRES_USER=${VECTORDB_USER:-myuser}
      - POSTGRES_PASSWORD=${VECTORDB_PASSWORD:-mypassword}
      - OPENAI_API_KEY=${OPENAI_API_KEY:-}
    depends_on:
      vectordb:
        condition: service_started
    env_file:
      - .env
    ports:
      - "127.0.0.1:${RAG_PORT:-8001}:${RAG_PORT:-8000}"

volumes:
  librechat_mongodb_data:
  librechat_meili_data:
  librechat_vectordb_data:
  librechat_images:
  librechat_uploads: