Vaultwarden Docker部署
2024-11-10 17:56:44    21    0    0
acme

    本次主要是使用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可以访问后台界面

 

Pre: No Post

Next: [Baïkal]使用Baikal自建CalDAV+CardDAV 服务器

21
Table of content