跳到主要内容

使用 Caddy 配置 HTTPS

使用 Caddy 配置 HTTPS

确保您的用户与 Open WebUI 之间的通信安全是至关重要的。HTTPS (HyperText Transfer Protocol Secure) 对传输的数据进行加密,保护其免受窃听和篡改。通过配置 Caddy 作为反向代理 (reverse proxy),您可以无缝地为 Open WebUI 部署添加 HTTPS,从而提高安全性和可信度。

本指南是一篇简明易懂的教程,介绍如何在使用 Caddy 做反向代理的 Ubuntu 服务器上设置 Open WebUI,并启用自动证书管理的 HTTPS。

我们将通过以下几个步骤来完成所有设置:

Docker

请按照官方指南设置 Docker 的 apt 软件源 Docker

我已经将 docker-compose 包含进来,因为运行 docker compose 需要它。

安装 Docker

以下是我在 Ubuntu 上安装 Docker 所使用的命令:

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-compose

OpenWebUI

接下来,为 Open WebUI 项目创建一个目录:

mkdir -p ~/open-webui
cd ~/open-webui

安装 OpenWebUI

~/open-webui 目录中创建一个 docker-compose.yml 文件。我保留了一段关于设置 Qdrant 环境变量的注释部分,如果您需要设置其他的 环境变量 (environment variables),可以参考此格式。

services:
    open-webui:
        image: ghcr.io/open-webui/open-webui:main
        container_name: open-webui
        ports:
            - "8080:8080"
        volumes:
            - ./data:/app/backend/data
        # environment:
        #     - "QDRANT_API_KEY=API_KEY_HERE"
        #     - "QDRANT_URI=https://example.com"
        restart: unless-stopped

Caddy

Caddy 是一款功能强大的 Web 服务器,可为您自动管理 TLS 证书,是使用 HTTPS 提供 Open WebUI 服务的绝佳选择。

安装 Caddy

请遵循 在 Ubuntu 上安装 Caddy 的指南

配置 Caddy

您需要修改 Caddyfile 以使用您自己的域名。

为此,请编辑 /etc/caddy/Caddyfile 文件。

sudo nano /etc/caddy/Caddyfile

然后,配置内容应包含以下内容:

your-domain.com {
reverse_proxy localhost:8080
}

请确保将 your-domain.com 替换为您的实际域名。

测试 HTTPS

现在,假设您已经设置了 DNS 解析记录以指向服务器的 IP 地址,您可以通过在 ~/open-webui 目录中运行 docker compose up 来测试是否可以通过 HTTPS 访问 Open WebUI。

cd ~/open-webui
docker compose up -d

您现在应该可以通过 https://your-domain.com 访问 Open WebUI 了。

更新 Open WebUI

我想补充说明一下如何在不丢失数据的情况下更新 Open WebUI。由于我们使用存储卷 (volume) 来持久化数据,因此您只需拉取最新镜像并重启容器即可。

停止 Open WebUI

首先,我们需要停止并删除现有的容器:

docker rm -f open-webui

拉取最新镜像

然后,拉取最新镜像:

docker pull ghcr.io/open-webui/open-webui:main

启动 Open WebUI

现在,您可以再次启动 Open WebUI 容器:

docker compose up -d
This content is for informational purposes only and does not constitute a warranty, guarantee, or contractual commitment. Open WebUI is provided "as is." See your license for applicable terms.