在 Ubuntu 上用 Docker Compose 安装 Vaultwarden(bitwardon)

✅ 最佳实践方案

下面是一个完整示例,包含:

  1. docker-compose.yml 文件;
  2. Nginx 独立反向代理配置(非默认);
  3. HTTPS 证书配置(用 Certbot 获取);

📁 第一步:创建 Vaultwarden 服务

在你服务器的某个目录,例如 /home/ubuntu/dockers/bitwarden/ 下创建:

docker-compose.yml

version: '3'

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: unless-stopped
    ports:
      - "8080:80"
    volumes:
      - ./vw-data:/data
    environment:
      WEBSOCKET_ENABLED: "true"  # 启用 WebSocket 支持
      SIGNUPS_ALLOWED: "false"   # 禁止新用户注册(建议开启后手动注册一个管理员账号再关闭)
      ADMIN_TOKEN: "你的管理员令牌"  # 用于访问管理员面板

然后启动服务:

docker-compose up -d

🌐 第二步:配置 Nginx 反向代理(非默认)

假设你有一个域名:vault.example.com

创建独立配置文件:

sudo vim /etc/nginx/sites-available/vaultwarden.conf

粘贴以下内容(注意替换域名):

server {
    listen 80;
    server_name vault.example.com;

    location / {
        proxy_pass http://127.0.0.1:80;  # vaultwarden 在 docker 内监听 80
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # WebSocket 支持
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

然后启用这个配置文件:

sudo ln -s /etc/nginx/sites-available/vaultwarden.conf /etc/nginx/sites-enabled/

🔒 第三步:用 Certbot 自动签发 HTTPS 证书

先安装 Certbot:

sudo apt update
sudo apt install certbot python3-certbot-nginx -y

申请证书并自动配置 HTTPS:

sudo certbot --nginx -d vault.example.com

成功后,会自动将你上面那个配置文件改为支持 SSL


✅ 第四步:重启服务并测试

sudo systemctl reload nginx
docker-compose restart

然后访问 https://vault.example.com 应该就能看到登录页面和按钮了。


📦 总结

  • 服务不会覆盖你的 Nginx 默认站点配置
  • Vaultwarden 的容器监听在内部网络;
  • Nginx 独立配置反代并加了 WebSocket;
  • HTTPS 由 Certbot 负责自动管理。

注意:bitwardon不配置反向代理ssl证书无法登录,会一直转圈圈


补充:

Apache 反向代理版本


1️⃣ 新建站点配置文件

编辑 Apache 配置文件(假设域名是 app.example.com):

sudo vim /etc/apache2/sites-available/app.conf

粘贴下面内容:

<VirtualHost *:80>
    ServerName app.example.com

    ProxyPreserveHost On
    ProxyPass / http://127.0.0.1:9090/
    ProxyPassReverse / http://127.0.0.1:9090/

    ErrorLog ${APACHE_LOG_DIR}/app-error.log
    CustomLog ${APACHE_LOG_DIR}/app-access.log combined
</VirtualHost>

保存并退出(nano 里按 Ctrl+O 回车保存,Ctrl+X 退出)。


2️⃣ 启用所需模块

sudo a2enmod proxy
sudo a2enmod proxy_http

3️⃣ 启用站点

sudo a2ensite app.conf
sudo systemctl reload apache2

4️⃣ 测试是否生效

在浏览器访问:

http://app.example.com

应该能看到你本地 9090 端口的服务内容。


5️⃣ (后续)申请 HTTPS

当 HTTP 能访问后,执行:

sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d app.example.com

Certbot 会自动帮你加上 HTTPS 配置。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇