OpenLogs

All tools

LibreChat

Chat interface that connects to many AI providers, with agents and conversation history.

Replaces

Paid AI chat assistant services, such as ChatGPT.

All open-source alternatives to ChatGPT

Difficulty

Difficulty: Hard

6 services (3 database or broker: mongo, meilisearch, pgvector), 9 volume mounts, 6 env values to set, no elevated host access. Heuristic score 9 of 11: hard.

Stack

TypeScript (language), MongoDB (database)

Deployment

docker_compose

Requirements

Not stated.

License

MIT (OSI-approved open source)

Read from github.com/LibreChat-AI/LibreChat/blob/eac18f4/LICENSE

Business model

Unknown

The README at the pinned commit does not state a business model, so it stays unknown.

Source: github.com/LibreChat-AI/LibreChat/blob/eac18f4/README.md, read on .

Repository

LibreChat-AI/LibreChat

GitHub stats

Stars
46,140
Forks
9,482
Open issues and pull requests
989
Last push
2026-10-22

From the GitHub API on . These numbers are a snapshot, not live. GitHub detected the license as MIT.

Compose file

Config check passed docker compose config exited 0 on this exact file on 2026-10-22.
docker-compose.yml Version 1
# 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.

services:
  api:
    container_name: LibreChat
    ports:
      - "${PORT}:${PORT}"
    depends_on:
      - mongodb
      - rag_api
    image: registry.librechat.ai/librechat-ai/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
      - LIBRECHAT_TEMP_CREDENTIALS_PATH=/app/data/.env.temp
      - RAG_PORT=${RAG_PORT:-8000}
      - RAG_API_URL=http://rag_api:${RAG_PORT:-8000}
      - PROXY=${PROXY:-}
      - HTTP_PROXY=${HTTP_PROXY:-}
      - HTTPS_PROXY=${HTTPS_PROXY:-}
      - NO_PROXY=${NO_PROXY:-localhost,127.0.0.1,::1},${no_proxy:-},mongodb,chat-mongodb,meilisearch,chat-meilisearch,rag_api,vectordb,host.docker.internal
      - http_proxy=${http_proxy:-}
      - https_proxy=${https_proxy:-}
      - no_proxy=${no_proxy:-localhost,127.0.0.1,::1},${NO_PROXY:-},mongodb,chat-mongodb,meilisearch,chat-meilisearch,rag_api,vectordb,host.docker.internal
    volumes:
      - type: bind
        source: ./.env
        target: /app/.env
      - ./images:/app/client/public/images
      - ./uploads:/app/uploads
      - ./logs:/app/logs
      - ./skill:/app/skill
      - librechat-data:/app/data
  admin-panel:
    container_name: admin-panel
    image: registry.librechat.ai/librechat-ai/librechat-admin-panel:latest
    ports:
      - "${ADMIN_PANEL_PORT:-3000}:3000"
    depends_on:
      - api
    restart: always
    environment:
      - PORT=3000
      # Plain expansion (not :?) so `docker compose down`/`pull` still run when this is unset.
      # The panel itself refuses to start without it; set ADMIN_PANEL_SESSION_SECRET in .env.
      - SESSION_SECRET=${ADMIN_PANEL_SESSION_SECRET}
      - API_SERVER_URL=http://api:${PORT:-3080}
      - VITE_API_BASE_URL=${DOMAIN_CLIENT:-http://localhost:3080}
      - SESSION_COOKIE_SECURE=${ADMIN_PANEL_SESSION_COOKIE_SECURE:-false}
  mongodb:
    container_name: chat-mongodb
    image: mongo:8.0.20
    restart: always
    user: "${UID}:${GID}"
    volumes:
      - ./data-node:/data/db
    command: mongod --noauth
  meilisearch:
    container_name: chat-meilisearch
    image: getmeili/meilisearch:v1.35.1
    restart: always
    user: "${UID}:${GID}"
    environment:
      - MEILI_HOST=http://meilisearch:7700
      - MEILI_NO_ANALYTICS=true
      - MEILI_MASTER_KEY=${MEILI_MASTER_KEY}
    volumes:
      - ./meili_data_v1.35.1:/meili_data
  vectordb:
    container_name: 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:
    container_name: rag_api
    image: registry.librechat.ai/librechat-ai/librechat-rag-api-dev-lite:latest
    environment:
      - DB_HOST=vectordb
      - RAG_PORT=${RAG_PORT:-8000}
    restart: always
    depends_on:
      - vectordb
    env_file:
      - .env

volumes:
  pgdata2:
  librechat-data:

From the app's own repository: github.com/LibreChat-AI/LibreChat/blob/eac18f4/docker-compose.yml.

Compose file from the app repository.

Install

  1. Docker with the Compose plugin (github.com/LibreChat-AI/docs/blob/48f78d1/content/docs/local/docker.mdx)

    A host with Docker and the Docker Compose plugin. This entry runs from a compose file.

  2. Save the compose file as docker-compose.yml (github.com/LibreChat-AI/LibreChat/blob/eac18f4/docker-compose.yml)

    Use the compose file shown above.

  3. Download .env next to the compose file (github.com/LibreChat-AI/LibreChat/blob/eac18f4/.env.example)
    curl -fsSL https://raw.githubusercontent.com/LibreChat-AI/LibreChat/eac18f465667f5b8b463f2a9dfa2af1271e40a1b/.env.example -o .env
  4. What the compose file check ran with (github.com/LibreChat-AI/docs/blob/48f78d1/content/docs/local/docker.mdx)

    The compose file check ran together with .env.example from the same commit, saved as .env. The folder held only these files. The local Docker guide tells the reader to copy .env.example to .env and run docker compose up -d in the cloned repository.

  5. Start it (github.com/LibreChat-AI/docs/blob/48f78d1/content/docs/local/docker.mdx)
    docker compose up -d
  6. Open the app (github.com/LibreChat-AI/LibreChat/blob/eac18f4/docker-compose.yml)

    Open http://localhost:3080. The compose file publishes host port 3080 for the api service. The docs say to open this address and register the first account.

Compose file check: config_ok on 2026-10-22.

Gotchas and maintenance

Gotchas

  • Some images use the latest tag or no tag. Images without a pinned version: api: registry.librechat.ai/librechat-ai/librechat-dev:latest, admin-panel: registry.librechat.ai/librechat-ai/librechat-admin-panel:latest, rag_api: registry.librechat.ai/librechat-ai/librechat-rag-api-dev-lite:latest. A later pull can get a different version. (github.com/LibreChat-AI/LibreChat/blob/eac18f4/docker-compose.yml, checked 2026-10-22)
  • The compose file publishes host ports. Host ports: 3000 (admin-panel). A port without a host address listens on all host network interfaces. (github.com/LibreChat-AI/LibreChat/blob/eac18f4/docker-compose.yml, checked 2026-10-22)
  • The compose file mounts host folders. Host paths mounted into containers: ./.env at /app/.env (api), ./images at /app/client/public/images (api), ./uploads at /app/uploads (api), ./logs at /app/logs (api), ./skill at /app/skill (api), ./data-node at /data/db (mongodb), ./meili_data_v1.35.1 at /meili_data (meilisearch). (github.com/LibreChat-AI/LibreChat/blob/eac18f4/docker-compose.yml, checked 2026-10-22)

Signals

  • Open issues and pull requests: 989
  • Last push: 2026-10-22 (0 days before this page was built)
  • Latest release: none recorded