Docker系列(二)--Vaultwarden

vaultwarden,原名bitwarden_rs。是一个免费、自由且开源的密码管理器,服务端也完全开源,所以可以自建一个私密数据的密码同步填写工具。

作为互联网工作者来说,网络上肯定会有很多形形色色的网站、app需要注册登录。我们也不可能记住太多的密码,可是设置成为同一个密码又很不安全。所以我们通常都会使用Google密码或者品牌官方密码(例:华为密码,小米密码)之类的。可是Google密码需要翻墙,而品牌密码却不能同步到非品牌设备中去。于是乎,vaultwarden映入我的眼帘。

我想只要是长期接触互联网的用户谁不想拥有一个省心省力可三端同步的密码管理器呢。

铛铛铛,vaultwarden工具架构教程来了

系统需求

操作系统 : Windows / Macos / Linux CPU : Intel / AMD x64, ARM v7 (arm32), ARM 64 内存 : 300M左右即可

搭建教程

使用docker搭建Vaultwarden

ps:如果已经安装了docker可以忽略安装docker这一个步骤

先安装Docker

#centos7
curl -sSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker

创建数据目录

mkdir -p /data/vaultwarden
mkdir -p /data/vaultwarden/log

下载docker镜像

docker pull vaultwarden/server

反向代理

因为密码管理器一定需要用到https。所以我们这里使用nginx做反向代理 在../nginx/vhost/文件夹下多添加一个域名反代配置文件vaultwarden.xxx.com.conf,域名要先指向这台服务器哦(ps:大部分linux服务器nginx文件夹在/usr/localvim ../vaultwarden.xxx.com.conf

# http
    server {
        listen       80;
        listen  [::]:80;
        server_name  vaultwarden.xxx.com;
       ##防止搜索引擎收录
       if ($http_user_agent ~* "qihoobot|Baiduspider|Googlebot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|Yahoo! Slurp|Yahoo! Slurp China|YoudaoBot|Sosospider|Sogou spider|Sogou web spider|MSNBot|ia_archiver|Tomato Bot|^$") {  
        return 404;
            }
        location / { # 访问80端口后的所有路径都转发到 proxy_pass 配置的ip中
            root   /usr/share/nginx/html;
            index  index.html index.htm;

##如果使用cf加速就换成302
         return 301 https://vaultwarden.xxx.com;
            
        }
    }


# https
 server {
        listen       443 ssl http2;
        listen  [::]:443 ssl http2;
        server_name  vaultwarden.xxx.com;
           if ($http_user_agent ~* "qihoobot|Baiduspider|Googlebot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|Yahoo! Slurp|Yahoo! Slurp China|YoudaoBot|Sosospider|Sogou spider|Sogou web spider|MSNBot|ia_archiver|Tomato Bot|^$") {  
        return 404;
        }
        #启用HSTS    
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; 

        ssl_certificate /path/to/ssl/cert;###这里写证书地址
        ssl_certificate_key /path/to/cert/key;

        keepalive_timeout   70;

        ssl_stapling        on;
        ssl_stapling_verify on;
				##填入你机器的DNS
        resolver 8.8.8.8;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        
       location / {
             root   /usr/share/nginx/html;
#            index  index.html index.htm;
             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_set_header X-Forwarded-Port $server_port;
             proxy_pass http://127.0.0.1:xxxx;   ##这里的端口填下下面容器映射的80端口 如我示例中的6000端口一样
      }
  }

wq保存后重启nginx即可

运行容器

docker run -d \
--name=vaultwarden \
-e WEBSOCKET_ENABLED=true \
-e LOG_FILE='本机目录地址'/log/bitwarden.log \
-e ADMIN_TOKEN='主管理密码' \
-p 'docker映像本机端口':80 -p 'docker映像本机端口':3012 \
-v 'docker映像本机目录地址':/data/ \
--restart=always  \
vaultwarden/server:latest

#示例
docker run -d \
--name=vaultwarden \
-e WEBSOCKET_ENABLED=true \
-e LOG_FILE=/home/vaultwarden/log/bitwarden.log \
-e ADMIN_TOKEN=123456 \
-p 6000:80 -p 6001:3012 \
-v /home/vaultwarden/:/data/ \
--restart=always  \
vaultwarden/server:latest

----------end

本文为ctexthuang原创文章,转载请注明来自ctexthuang_blog

Edit with Markdown
召唤看板娘