Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

Traefik

了解如何使用 Traefik 作为反向代理和负载均衡器,通过自动 SSL/TLS 证书管理安全地公开您的 LibreChat 实例并启用 HTTPS。

Traefik 是一个现代化的 HTTP 反向代理和负载均衡器,可以轻松部署和管理您的服务。如果您正在 Docker 上运行 LibreChat,可以使用 Traefik 通过自动 SSL 证书管理,安全地将您的实例通过 HTTPS 公开。

先决条件

  • 您的系统上已安装 Docker 和 Docker Compose
  • 指向您服务器 IP 地址的域名

配置

配置 Traefik 和 LibreChat

在您的 docker-compose.override.yml 文件中,添加以下配置:

version: '3'
 
services:
    api:
      labels:
        - "traefik.enable=true"
        - "traefik.http.routers.librechat.rule=Host(`your.domain.name`)"
        - "traefik.http.routers.librechat.entrypoints=websecure"
        - "traefik.http.routers.librechat.tls.certresolver=leresolver"
        - "traefik.http.services.librechat.loadbalancer.server.port=3080"
      networks:
        - librechat_default
      volumes:
        - ./librechat.yaml:/app/librechat.yaml
  
    traefik:
      image: traefik:v3.6
      ports:
        - "80:80"
        - "443:443"
      volumes:
        - "/var/run/docker.sock:/var/run/docker.sock:ro"
        - "./letsencrypt:/letsencrypt"
      networks:
        - librechat_default
      command:
        - "--log.level=DEBUG"
        - "--api.insecure=true"
        - "--providers.docker=true"
        - "--providers.docker.exposedbydefault=false"
        - "--entrypoints.web.address=:80"
        - "--entrypoints.websecure.address=:443"
        - "--certificatesresolvers.leresolver.acme.tlschallenge=true"
        - "[email protected]"
        - "--certificatesresolvers.leresolver.acme.storage=/letsencrypt/acme.json"
 
# other configs here #
 
# NOTE: This needs to be at the bottom of your docker-compose.override.yml
networks:
  librechat_default:
    external: true

[email protected] 替换为您的电子邮件地址,以便接收 Let's Encrypt 证书通知。

详见:Docker Override 以获取更多信息。

启动容器

docker compose up -d

这将启动 Traefik 和 LibreChat 容器。Traefik 将自动从 Let's Encrypt 获取 SSL/TLS 证书,并通过 HTTPS 安全地公开您的 LibreChat 实例。

现在,您可以通过 https://your.domain.name 访问您的 LibreChat 实例。Traefik 将处理 SSL/TLS 终止并将请求反向代理至您的 LibreChat 容器。

附加说明

  • Traefik 配置分别在 80 和 443 端口监听 HTTP 和 HTTPS 流量。请确保服务器防火墙已开放这些端口。
  • Traefik 将 SSL/TLS 证书存储在宿主机的 ./letsencrypt 目录中。建议您定期备份此目录。
  • 如需了解更多高级配置选项,请参考 Traefik 官方文档:https://doc.traefik.io/

静态文件缓存与压缩

LibreChat 现在原生支持静态文件缓存和压缩。如果您正在使用 Traefik 处理压缩,则应在 LibreChat 中禁用压缩,以避免冗余处理。您可以通过在 LibreChat 配置中将 DISABLE_COMPRESSION 环境变量设置为 true 来实现这一点。

# .env file
DISABLE_COMPRESSION=true

这将防止 LibreChat 压缩静态文件,从而允许 Traefik 更高效地处理压缩。

有关 LibreChat 中静态文件处理的更多信息(包括缓存选项),请参阅 Static File Handling 文档。

这篇指南怎么样?