惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Y
Y Combinator Blog
IT之家
IT之家
博客园_首页
人人都是产品经理
人人都是产品经理
博客园 - Franky
I
InfoQ
Recent Announcements
Recent Announcements
P
Proofpoint News Feed
H
Hackread – Cybersecurity News, Data Breaches, AI and More
GbyAI
GbyAI
大猫的无限游戏
大猫的无限游戏
aimingoo的专栏
aimingoo的专栏
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
月光博客
月光博客
Microsoft Security Blog
Microsoft Security Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
B
Blog RSS Feed
MongoDB | Blog
MongoDB | Blog
雷峰网
雷峰网
博客园 - 聂微东
N
Netflix TechBlog - Medium
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The GitHub Blog
The GitHub Blog
D
Docker

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
Deploying LibreChat Open-Source AI Chat Platform on Ubunt...
Sanskriti Harmukh · 2026-06-24 · via DEV Community

LibreChat is an open-source, ChatGPT-style web UI that supports OpenAI, Anthropic, Azure OpenAI, Gemini, OpenRouter, local OpenAI-compatible endpoints, and more — with MongoDB-backed conversation history and Meilisearch-powered search. This guide deploys LibreChat using its official Compose manifest plus a Traefik override for automatic HTTPS. By the end, you'll have LibreChat running with a registration page and multi-provider chat at your domain over HTTPS.


Clone LibreChat and Prepare the Environment

1. Clone the LibreChat repository and check out a stable tag:

$ git clone https://github.com/danny-avila/LibreChat.git
$ cd LibreChat
$ git checkout tags/v0.8.3

2. Find the Meilisearch data directory name pinned by this release:

$ grep -o 'meili_data_v[0-9.]*' docker-compose.yml | head -1

3. Create the required data directories (replace meili_data_v1.35.1 if the previous command printed a different name):

$ mkdir -p data-node images logs meili_data_v1.35.1 uploads
$ sudo chown -R 1000:1000 meili_data_v1.35.1

4. Copy the env template and uncomment the UID/GID lines:

$ cp .env.example .env
$ nano .env

UID=1000
GID=1000


Override the Compose Stack with Traefik

1. Create a Compose override that adds Traefik and wires the API to it:

$ nano docker-compose.override.yml

services:
  api:
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.librechat.rule=Host(`librechat.example.com`)"
      - "traefik.http.routers.librechat.entrypoints=websecure"
      - "traefik.http.routers.librechat.tls.certresolver=leresolver"
      - "traefik.http.services.librechat.loadbalancer.server.port=3080"
    volumes:
      - ./librechat.yaml:/app/librechat.yaml

  traefik:
    image: traefik:v3.6.10
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
      - "./letsencrypt:/letsencrypt"
    command:
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.websecure.address=:443"
      - "--entrypoints.web.http.redirections.entrypoint.to=websecure"
      - "--entrypoints.web.http.redirections.entrypoint.scheme=https"
      - "--entrypoints.web.http.redirections.entrypoint.permanent=true"
      - "--certificatesresolvers.leresolver.acme.httpchallenge=true"
      - "--certificatesresolvers.leresolver.acme.httpchallenge.entrypoint=web"
      - "--certificatesresolvers.leresolver.acme.email=admin@example.com"
      - "--certificatesresolvers.leresolver.acme.storage=/letsencrypt/acme.json"

2. Create an empty LibreChat configuration file (mounted by the override):

$ touch librechat.yaml


Start the Stack

1. Bring everything up:

$ docker compose up -d

Compose starts the LibreChat API, MongoDB, Meilisearch, and Traefik. Traefik requests a TLS certificate from Let's Encrypt over the HTTP-01 challenge and routes HTTPS to LibreChat on port 3080.

2. Verify the containers are running:

$ docker compose ps

3. Tail the logs:

$ docker compose logs --tail=50

You should see MongoDB initialize, Meilisearch start, Traefik register the route, and the LibreChat API listening on port 3080.


Register and Sign In

1. Open the registration page in a browser:

https://librechat.example.com/register

2. Fill in your name, username, email, and password and click **Continue.**

3. Sign in with the new credentials — the dashboard loads with the model selector and conversation interface.

To enable Google / GitHub / Discord / OpenID Connect sign-up, set ALLOW_SOCIAL_LOGIN=true and ALLOW_SOCIAL_REGISTRATION=true in .env and restart the stack.


Next Steps

LibreChat is running and served securely over HTTPS. From here you can:

  • Plug in API keys for OpenAI, Anthropic, Azure, Gemini, or OpenRouter in .env
  • Point LibreChat at a local OpenAI-compatible endpoint (Ollama, LocalAI) via librechat.yaml
  • Enable file uploads, RAG, and image generation through the dashboard settings

For the full guide with additional tips, visit the original article on Vultr Docs.