3.使用 Docker Compose
对应的官方页面地址
Docker Compose 是一个用于定义和配置多容器应用程序的工具。在我们的例子中,我们希望 Vaultwarden 服务器和代理都将 WebSocket 请求重定向到正确的地方。
无反向代理/您自己配置的反向代理的最小模板(以下以 Caddy 为例)
此示例假设您已安装 Docker Compose。此配置可用于不向「外界」开放的本地服务器,也可用作反向代理的模板。
首先在您喜欢的位置创建一个新目录,然后更改到该目录下。然后,创建 compose.yml 文件(旧版本为 docker-compose.yml):
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: always
environment:
# DOMAIN: "https://vaultwarden.example.com" # 使用反向代理时必填;您的域名;Vaultwarden 需要知道它是 https 才能正确处理附件
SIGNUPS_ALLOWED: "true" # 创建账户后,使用 "false" 停用此选项,这样就不会有陌生人注册了
卷
volumes:
- ./vw-data:/data # : 前面的路径可以修改
ports:
- 11001:80 # 您可以将 11001 替换为您喜欢的端口要创建并运行容器,请运行:
要更新并运行容器,请运行:
带有 HTTP 挑战的 Caddy
本示例假定您已安装 Docker Compose,并且您的 Vaultwarden 实例具有一个可以公开访问的域名(例如 vaultwarden.example.com)。
首先创建一个新的目录,然后切换到该目录下。接下来,创建如下的 compose.yml 文件(旧版本为 docker-compose.yml),确保将 DOMAIN 和 EMAIL 变量替换为实际的值。
在相同的目录下创建如下的 Caddyfile 文件(此文件不需要做修改):
运行以下命令创建并启动容器。这将为 compose.yml 文件(旧版本为 docker-compose.yml)中的服务创建私有网络,这样就只有 Caddy 暴露在外面了:
停止并销毁容器:
此处提供了一个类似的基于 Caddy 的适用于 Synology 的示例。
带有 DNS 挑战的 Caddy
这个示例和上一个示例一样,但适用于您不希望您的实例被公开访问的情况(即您只能从您的本地网络访问它)。这个示例使用 Duck DNS 作为 DNS 提供商。更多的背景资料,以及如何设置 Duck DNS 的细节,请参考使用 Let's Encrypt 证书运行私有 Vaultwarden 实例。
首先创建一个新的目录,然后切换到该目录下。接下来,创建如下的 compose.yml 文件(旧版本为 docker-compose.yml),确保将 DOMAIN 和 EMAIL 变量替换为实际的值。
原有的 Caddy 构建(包括 Docker 映像中的构建)不包含 DNS 挑战模块,因此接下来您需要获取自定义 Caddy 构建。将自定义构建重命名为 caddy 并将其移动到与 compose.yml(旧版本为 docker-compose.yml)相同的目录下。确保 caddy 文件是可执行的(例如 chmod a + x caddy)。上面的 compose.yml 文件(旧版本为 docker-compose.yml)会将自定义构建绑定挂载到 caddy:2 容器中,并替换原有的构建。
在相同的目录下,创建如下的 Caddyfile 文件(此文件不需要做修改)。
与 HTTP 挑战的示例一样,运行下面的命令以创建并启动容器:
最后更新于