version: "3.8"
services:
  # api:
  #     - HOST=0.0.0.0
  #     - NODE_ENV=production
  #     - 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}
  client:
    build:
      context: .
      dockerfile: Dockerfile.multi
      target: prod-stage
    container_name: LibreChat-NGINX
    ports:
      - 80:80
      - 443:443
    restart: always
    volumes:
      - ./client/nginx.conf:/etc/nginx/conf.d/default.conf
  mongodb:
    container_name: chat-mongodb
    ports:  # Uncomment this to access mongodb from outside docker, not safe in deployment
      - 27018:27017
    image: mongo
    restart: always
    volumes:
      - ./data-node:/data/db
    command: mongod --noauth
  meilisearch:
    container_name: chat-meilisearch
    image: getmeili/meilisearch:v1.7.3
    ports: # Uncomment this to access meilisearch from outside docker
      - 7700:7700 # if exposing these ports, make sure your master key is not the default value
    env_file:
      - .env
    environment:
      - MEILI_HOST=http://meilisearch:7700
      - MEILI_NO_ANALYTICS=true
    volumes:
      - ./meili_data_v1.7:/meili_data
  vectordb:
    image: pgvector/pgvector:0.8.0-pg15-trixie
    environment:
      POSTGRES_DB: mydatabase
      POSTGRES_USER: myuser
      POSTGRES_PASSWORD: mypassword
    restart: always
    volumes:
      - pgdata2:/var/lib/postgresql/data
  rag_api:
    image: registry.librechat.ai/danny-avila/librechat-rag-api-dev-lite:latest
    environment:
      - DB_HOST=vectordb
      - RAG_PORT=${RAG_PORT:-8000}
    restart: always
    ports:
      - 8000:8000
    depends_on:
      - vectordb
    env_file:
      - .env

volumes:
  pgdata2:
