如何搭建一个私人的bitwarden密码管理工具服务端(保姆级教程)
以下是本文安装过程的总结。本节中的链接将跳转到详细的安装过程部分:
配置您的域名
为指向您机器的域名设置DNS记录,并在机器上打开80和443端口。
在您的机器上安装 Docker 和 Docker Compose
这个之前介绍过哦~ 通往文章的传送门🌀
申请安装id和密钥
从https://bitwarden.com/host 获取安装 ID 和密钥以用于安装
settings.env
记得替换下面邮箱配置
1 | ##################### |
Gmail 邮箱示例
1 | globalSettings__mail__replyToEmail=yourname@gmail.com # 您的 Gmail 邮箱地址 |
腾讯企业邮箱示例
1 | globalSettings__mail__replyToEmail=you@yourdomain.com # 您的企业邮箱的完整邮件地址 |
165邮箱示例
1 | globalSettings__mail__replyToEmail=you@163.com # 您的 163 邮箱地址 |
docker-compose.yml
1 | version: "3.8" |
这是一个使用Docker Compose配置的Bitwarden自托管服务。以下是每个部分的解释:
version: "3.8"
:指定Docker Compose配置文件的版本。services:
:定义服务部分。bitwarden:
:定义一个名为”bitwarden”的服务。depends_on:
:指定该服务依赖于另一个名为”db”的服务。这意味着在启动”bitwarden”服务之前,将首先启动”db”服务。env_file:
:指定要加载的环境变量文件。在这种情况下,将加载名为”settings.env”的文件中的环境变量。image:
:指定要使用的Docker镜像。这里使用的是Bitwarden的自托管版本,具体是”bitwarden/self-host:beta”。restart:
:定义容器的重启策略。这里设置为”always”,表示容器在退出时总是自动重启。ports:
:指定容器的端口映射规则。这里将容器的8080端口映射到主机的80端口,因此可以通过主机的80端口访问Bitwarden服务。volumes:
:定义容器的数据卷。这里使用名为”bitwarden”的数据卷,将容器内的”/etc/bitwarden”目录映射到宿主机。
db:
:定义一个名为”db”的服务,用于存储Bitwarden的数据库。environment:
:指定容器的环境变量。这里设置了几个MariaDB相关的环境变量,包括用户名、密码、数据库名称和随机生成的root密码。image:
:指定使用的Docker镜像。这里使用的是MariaDB 10。restart:
:定义容器的重启策略,同样设置为”always”。volumes:
:定义容器的数据卷。这里使用名为”data”的数据卷,将容器内的”/var/lib/mysql”目录映射到宿主机。
volumes:
:定义数据卷部分。bitwarden:
:定义名为”bitwarden”的数据卷,用于存储Bitwarden服务的配置文件等数据。data:
:定义名为”data”的数据卷,用于存储MariaDB的数据库文件。
以上就是这个配置文件的主要内容,它定义了Bitwarden自托管服务的相关设置,包括依赖服务、环境变量、容器映射端口和数据卷等。
把上面两个文件放在一个文件夹里面
1 | #创建一个文件夹,并把两个文件放在一个文件夹中 |
编辑nginx配置
1 |
|
配置好后重启nginx
你也可以进入nginx目录进行重启,可以执行以下步骤:
打开终端或命令行窗口。
输入以下命令来检查 Nginx 配置文件是否正确:
1
nginx -t
如果配置文件没有错误,继续下一步。如果有错误,你需要修复配置文件中的错误。
输入以下命令来重启 Nginx 服务:
1
sudo service nginx restart
如果你没有使用
sudo
或没有管理员权限,可能需要切换到管理员帐户或使用适当的权限。等待一段时间,Nginx 将会重新启动。
重启完成后,Nginx 将使用更新后的配置文件重新启动。你的网站将会重新加载,并应用任何配置更改。
如果在你的系统中找不到 nginx
命令,可能是因为 Nginx 未正确安装或未将其路径添加到系统的环境变量中。在这种情况下,你可以尝试以下方法来重启 Nginx:
使用完整的路径:查找 Nginx 可执行文件的完整路径,然后使用该路径来启动或重启 Nginx。在大多数 Linux 系统中,默认的 Nginx 可执行文件路径是
/usr/sbin/nginx
。因此,可以执行以下命令来重启 Nginx:1
sudo /usr/sbin/nginx -s reload
使用服务命令:如果你的系统使用服务管理工具(如
systemctl
)来管理服务,你可以使用该工具来重启 Nginx。在这种情况下,可以执行以下命令:1
sudo systemctl restart nginx
如果以上方法仍然无法重启 Nginx,请确保已正确安装 Nginx,并检查操作系统和 Nginx 的文档以了解特定于你的系统的命令和配置。
启动bitwarden
1 | docker compose up -d |
验证所有容器是否正常运行:
1 | docker ps |
恭喜!您的统一部署现已启动并运行于https://bitwarden.domain.com
。在您的浏览器中访问网络保险库以确认它正在运行。您现在可以注册一个新帐户并登录。
可能遇到的问题
一般出现在第一次安装失败的情况下
检查密码是否正确:首先确保在
docker-compose.yml
文件中指定的MYSQL_ROOT_PASSWORD
参数的值与你尝试登录时使用的密码匹配。确保密码区分大小写。清除数据并重新创建容器:如果密码没有问题,你可以尝试删除现有的容器和相关的数据,然后重新创建容器。使用以下命令:
1
2docker-compose down
docker volume rm <your_mysql_data_volume>这将停止并删除容器,然后删除与 MariaDB 相关的数据卷。确保将
<your_mysql_data_volume>
替换为你实际使用的数据卷名称。然后,重新运行 Docker Compose:
1
docker-compose up -d
这将重新创建 MariaDB 容器并初始化数据。
<your_mysql_data_volume>
是一个占位符,代表你实际使用的数据卷名称。在 Docker Compose 文件中,你可能会为 MariaDB 定义一个数据卷,类似于以下示例:
1 | services: |
可以使用 docker volume ls -q
查询 ,如下图所示查出来mysql volume是bitwarden_data
所以完整命令如下
1 | docker-compose down |