• 首页
  • 归档
  • 关于
  • 搜索
  • 夜间模式
    ©2026  望时代 Theme by OneBlog

    望时代

    搜索
    标签
    # 教程 # Linux # 脚本 # AI # 影音 # 游戏 # 随笔 # 科技 # 认知
  • 首页>
  • >
  • 正文
  • [self-hosted][bitwarden] 基于 pre-build binary file 和 nginx 搭建 (vaultwarden)bitwarden

    2026年06月26日 2 阅读 0 评论 6928 字

    self-hosted 基于 pre-build binary file 和 nginx 搭建 (vaultwarden)bitwarden __2023年6月30日 __3条评论 __326次阅读 __0人点赞 __Tao_Qi 闲来无事, 水个教程 恳请 精, 欢迎投喂 1. 提取可执行文件 不想装 docker, 官方没提供预编译二进制文件, 要自己从 docker image 中提取 官方给的代码如下 不要跑这个, 下面有一键脚本
    [code]

    mkdir vw-image
    cd vw-image
    wget https://raw.githubusercontent.com/jjlin/docker-image-extract/main/docker-image-extract
    chmod  x docker-image-extract
    ./docker-image-extract vaultwarden/server:alpine
    ls -ld output/{vaultwarden,web-vault}
    

    [/code]

    只需要用到 ./output/vaultwarden 文件 和 ./output/web-vault/ 目录 注意 ./vaultwarden 运行目录下需要有 data/ 目录 2. 配置文件 .env 运行 vaultwarden 的时候默认会读取 .env 文件加载配置 简单解释下用到的配置
    [code]

    # 域名, 这里设置 sub-location 为 vaultwarden
    # 需要配合 nginx 配置
    DOMAIN=https://nodeseek.com/vaultwarden/
    
    # 进入后台 **超级权限** 面板命令
    # 需要通过 `./vaultwarden hash` 生成
    ADMIN_TOKEN='$argon2id$v=19$m=65540,t=3,p=4$NLnz/Xmt8kyBsTziQ4uqG3EV2ScmD9QRkZkw k4kp94$S4c2Ke1KYhVoHp6idDkroAQx8XhyTCnoaEntAIElcps'
    
    # 不允许注册新用户
    # 个人用, 要加帐号直接通过管理员权限加
    SIGNUPS_ALLOWED=false
    
    # 懒得配置邮箱, 密码提示直接前端显示
    SHOW_PASSWORD_HINT=true
    

    [/code]

    3. nginx 配置 sub-location 如果你想通过域名直接访问(如 https://nodeseek.com), 那可以跳过这节
    [code]

    upstream vaultwarden-default {
            zone vaultwarden-default 64k;
            server 127.0.0.1:8000; # 记得对应你的端口
            keepalive 2;
    }
    upstream vaultwarden-ws {
            zone vaultwarden-ws 64k;
            server 127.0.0.1:3012; # 记得对应你的端口
            keepalive 2;
    }
    
    server {
            listen 443 ssl;
            server_name nodeseek.com;
    
            # 其他配置
    
                    # vaultwarden
            location /vaultwarden/ {
                    proxy_http_version 1.1;
                    proxy_set_header "Connection" "";
    
                    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;
    
                    proxy_pass http://vaultwarden-default;
            }
    
            # DO NOT add a trailing /, else you will experience issues
            location /vaultwarden/notifications/hub/negotiate {
                    proxy_http_version 1.1;
                    proxy_set_header "Connection" "";
    
                    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;
    
                    proxy_pass http://vaultwarden-default;
            }
    
            # DO NOT add a trailing /, else you will experience issues
            location /vaultwarden/notifications/hub {
                    proxy_http_version 1.1;
                    proxy_set_header Upgrade $http_upgrade;
                    proxy_set_header Connection "upgrade";
    
                    proxy_set_header Host $host;
                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header Forwarded $remote_addr;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                    proxy_set_header X-Forwarded-Proto $scheme;
    
                    proxy_pass http://vaultwarden-ws;
            }
    

    [/code]

    4. 配置 ubuntu/debian service
    [code]

    [Unit]
    Description=Bitwarden Server (Rust Edition)
    Documentation=https://github.com/dani-garcia/vaultwarden
    
    # Only sqlite
    After=network.target
    
    [Service]
    EnvironmentFile=/etc/vaultwarden/.env
    ExecStart=/usr/bin/vaultwarden
    WorkingDirectory=/etc/vaultwarden/
    
    [Install]
    WantedBy=multi-user.target
    

    [/code]

    5. 脚本 跑完下面的脚本后

    • 可执行文件 vaultwarden 在 /usr/bin/ 目录下
    • 你需要编写 /etc/vaultwarden/.env 文件
    • 你需要配置 nginx
    • 通过 systemctl start vaultwarden 命令开启服务

    [code]

    #!/bin/bash
    
    if [ "$EUID" -ne 0 ]
      then echo "Please run as root"
      exit 1
    fi
    
    green_output() {
        echo -e "\033[0;32m$1\e[0m"
    }
    
    TMP=$(mktemp -d) && cd "$TMP" || exit
    
    # extract docker image
    wget https://raw.githubusercontent.com/jjlin/docker-image-extract/main/docker-image-extract
    chmod  x ./docker-image-extract
    ./docker-image-extract vaultwarden/server:alpine
    mkdir -p /etc/vaultwarden/data/
    mv ./output/web-vault /etc/vaultwarden/
    mv ./output/vaultwarden /usr/bin/
    rm -rf "$TMP"
    
    # config
    cat >> /etc/vaultwarden/.env <> /etc/systemd/system/vaultwarden.service <<EOF
    [Unit]
    Description=Bitwarden Server (Rust Edition)
    Documentation=https://github.com/dani-garcia/vaultwarden
    
    # Only sqlite
    After=network.target
    
    [Service]
    EnvironmentFile=/etc/vaultwarden/.env
    ExecStart=/usr/bin/vaultwarden
    WorkingDirectory=/etc/vaultwarden/
    
    [Install]
    WantedBy=multi-user.target
    EOF
    
    systemctl enable vaultwarden
    
    green_output 'vaultwarden has been installed'
    green_output 'you need to edit /etc/vaultwarden/.env to add your domain and admin token'
    green_output 'do not forget to config nginx'
    
    

    [/code]

    6. tip

    • 访问 DOMAIN/admin 来进入管理界面 如果你的 DOMAIN 配置是 https://nodeseek.com 就进 https://nodeseek.com/admin 如果是 https://nodeseek.com/vaultwarden/ 进 https://nodeseek.com/vaultwarden/admin 一般不用进, 除了添加用户 (如果你允许新用户注册, 那这个界面基本不用进)
    • 在管理界面输入邀请用户邮箱后, 该邮箱可直接注册
    • 一定要开启 https
    • 如果想隐藏服务, sublocation 可以设置的长一点

    7. 声明 本教程基于 官方wiki

    1. dizzydz说道: 2023年7月10日 下午4:35
    2. polyanthusun说道: 2023年7月12日 上午6:55
    3. 哦开心说道: 2023年7月12日 上午8:41

    发表回复 取消回复电子邮件地址不会被公开。必填项已用 标注 __ __

    本文著作权归作者 [ doudoudoubao ] 享有,未经作者书面授权,禁止转载,封面图片来源于 [ 互联网 ] ,本文仅供个人学习、研究和欣赏使用。如有异议,请联系博主及时处理。
    取消回复

    发表留言
    回复

    Copyright©2026  All Rights Reserved.  Load:0.003 s
    Theme by OneBlog V3.7.1
    夜间模式

    开源不易,请尊重作者版权,保留基本的版权信息。