Loading

自建 Bitwarden 服务器

好久没更新博客了,现在毕设答辩也结束了,终于有时间更新一下了。今天先写写 Bitwarden 服务器吧。

Bitwarden就不多介绍了,很有名的开源密码管理器。Bitwarden 官方是有免费版的,也基本够用,但是既然有台服务器,又有些担心安全问题,就自己搭建了一个。

Bitwarden 官方也提供部署脚本和 Dokcer 镜像,但是占的资源比较多,所以选择了使用比较多的第三方的vaultwarden(原名 bitwarden_rs),非常轻量。

我是用 Doceker Compose,没什么难度,简单分享下 compose 文件。

version: "3"
services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: always
    environment:
      - LOG_FILE=/data/bitwarden.log
      - WEBSOCKET_ENABLED=true
      - TZ=Asia/Shanghai
      - LC_ALL=zh_CN.UTF-8
    volumes:
      - /var/bitwarden/data/:/data/
    ports:
      - 8880:80
      - 3012:3012

然后用 Nginx 做了个反代,加了 SSL。

upstream vaultwarden-default { server 127.0.0.1:8880; }
upstream vaultwarden-ws { server 127.0.0.1:3012; }
server {
    listen       80;
    listen [::]:80;
    server_name  bitwarden.meancoder.xyz;

    error_log  /var/log/nginx/error.log;

    return       301 https://$host$request_uri;

}
server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name  bitwarden.meancoder.xyz;

    error_log  /var/log/nginx/error.log;

    ssl_certificate /home/ubuntu/.keys/bitwarden.meancoder.xyz/Nginx/1_bitwarden.meancoder.xyz_bundle.crt;
    ssl_certificate_key /home/ubuntu/.keys/bitwarden.meancoder.xyz/Nginx/2_bitwarden.meancoder.xyz.key;

    location / {
        proxy_pass http://vaultwarden-default;
        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;
    }

    location /notifications/hub {
        proxy_pass http://vaultwarden-ws;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

    location /notifications/hub/negotiate {
        proxy_pass http://vaultwarden-default;
    }

    location /admin {
        auth_basic "Administrator’s Area";
        auth_basic_user_file /etc/apache2/.htpasswd;
        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;
    }
}

中间还遇到了一个小问题,刚搭建完的时候,想随便建个账号测试下,可是注册的时候一直报错,改了半天配置都不行。最后换了个复杂的密码就好了。

posted @ 2022-06-03 20:54  MeanCoder  阅读(291)  评论(0编辑  收藏  举报