本次主要是使用Docker部署Vaultwarden密码管理器,Vaultwarden是Bitwarden社区开源版的分支。
本次环境系统采用Ubuntu,测试域名使用bitwarden.mailserver.cyou
,好歹8块钱买的用于测试。购买域名可以考虑一下点击这里购买域名。
反向代理使用Nginx,SSL证书使用Let's Encrypt。
- 现在开始安装,由于使用Ubuntu,先准备基础的环境
#更新源 sudo apt-get update sudo apt-get upgrade -y #安装中文语言 sudo apt-get install language-pack-zh-hans -y #环境变量使用中文 export LANG=zh_CN.UTF-8 #安装Let's Encrypt sudo apt-get install letsencrypt -y #安装net-tools,主要一些如ifconfig命令的工具包 sudo apt-get install net-tools
- 生成证书
#如果使用下面的命令生成证书,需要对外开放80端口且80端口未被其它服务占用 letsencrypt certonly --standalone --email [email protected] -d mailserver.cyou -d bitwarden.mailserver.cyou
- 安装Docker
#卸载旧版本 sudo apt-get remove docker docker-engine docker.io containerd runc -y #更新源,安装基础组件 sudo apt-get update sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release -y #添加Docker的官方GPG密钥 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg #根据硬件架构选择对应的版本 #x86_64 / amd64的系统使用它 echo \ "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null #ARM架构的使用它 echo \ "deb [arch=armhf signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null #ARM64使用它 echo \ "deb [arch=arm64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null #安装Docker sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io -y
- 安装Nginx
#安装基础组件 sudo apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring -y #添加Key curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \ | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null #验证Key gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg #使用Stable版本 二选一 echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \ http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list #使用Mainline版本 二选一 echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \ http://nginx.org/packages/mainline/ubuntu `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list #添加到更新源 echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \ | sudo tee /etc/apt/preferences.d/99nginx #安装Nginx sudo apt update sudo apt install nginx -y
- Docker优化和拉取镜像
#Docker虚拟网卡默认使用172.17.0.0/16的地址,如果现有网络中地址冲突或者路由冲突,可以更改掉相应的地址,只需要修改/etc/docker/daemon.json文件 #registry-mirrors对应的是镜像地址,可以更改为其它镜像源,bip是更改Docker虚拟网卡地址,最后重启docker完成更改 vi /etc/docker/daemon.json {"registry-mirrors": ["https://docs.docker.com"],"bip": "172.18.18.1/24"} systemctl restart docker #拉取Docker镜像 docker pull vaultwarden/server:latest
- 配置基础环境和运行镜像
#首先使用新建一个目录,位置按自己喜好,该目录用于储存所有的数据 mkdir -p /bitwarden/data #运行镜像,将新建的目录映射给data #LOG_FILE表示日志路径 #LOG_LEVEL表示日志等级 #ADMIN_TOKEN用于后台管理使用 sudo docker run -d --name bitwarden \ -v /bitwarden/data/:/data/ \ -e LOG_FILE=/data/vaultwarden.log \ -e LOG_LEVEL=warn \ -e EXTENDED_LOGGING=true \ -e "TZ=Asia/Shanghai" \ -e ADMIN_TOKEN=rootroot \ -p 8800:80 \ --restart always \ vaultwarden/server:latest
现在已经不建议ADMIN_TOKEN采用明文的方式,处理办法点击这里查看。
当完成上述配置以后,vaultwarden已经正常运行,可以通过访问服务器的8800端口进行访问
- Nginx配置
server { listen 80; server_name bitwarden.mailserver.cyou; rewrite ^/(.*) https://bitwarden.mailserver.cyou/$1 permanent; } server { listen 443 ssl; server_name bitwarden.mailserver.cyou; ssl_certificate /etc/letsencrypt/live/mailserver.cyou/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/mailserver.cyou/privkey.pem; location / { proxy_pass http://bitwarden.mailserver.cyou; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 1000M; } } upstream bitwarden.mailserver.cyou{ server 127.0.0.1:8800; }
最后,完成上述配置后,可以通过https://域名
,访问密码管理器。https://域名/admin
可以访问后台界面