布景

之前一向在用 iPhone 备忘录作为账号暗码办理,但在有些场景下用起来不是很顺手,比方会误修正文本,修正完后,自动给保存,找不到原始文本。用起来不是很便利。看看业界有那些暗码办理计划。1Password,付费,用不起。经朋友引荐,测验测验 bitwarden 自建立,免费版平替 1Password

准备工作

服务器

Tips:bitwarden 官方引荐装备最低2GRAM起步

准备一台靠谱的服务器

域名

注册一个域名用于拜访你的服务器,然后进入域名 DNS 解析后台,新增一条 A 记录指向你的服务器 IP (这一步最好先做,因为部分 DNS 收效会比较久)

假如没有域名,裸 IP 号 + 端口也不是不行

SSL 证书

各大云厂商都有固定的免费额度 SSL 证书申请,假如没有的话,请点击这

再不行,bitwarden 能够一键生成 SSL

开始

这儿以 CentOS7 为例

装置 Docker

假如你的服务器上现已装置了 DockerDocker Compose,这一步就能够跳过了。Docker 要求 CentOS 体系的内核版别高于 3.10,能够运转 uname -r 检查版别。

Tips:装置,假如超时的话,主张运用国内镜像装置

# 1、(可选)更新体系的软件包
yum update -y
# 2、装置 docker 依靠的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
# 3、添加 docker 的 yum 源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 4、通过 yum 装置 docker
sudo yum install docker-ce docker-ce-cli containerd.io
# 如上述指令出错,或许是体系上已有旧版别 Docker,需求先卸载旧版别
# 卸载指令:yum remove docker docker-common docker-selinux docker-engine docer-io
# 5、测验 docker 是否装置成功 (检查版别号)
docker version
# 有 client 和 service 两部分表明 docker 装置并发动成功了(有部分错误不必管)
# 6、发动 Docker 服务并设置开机发动
sudo systemctl start docker
sudo systemctl enable docker
# 7、检查Docker是否发动
sudo systemctl status docker

装置 Docker Compose

Tips:装置,假如超时的话,主张运用国内镜像装置

# 1、首要前往 https://github.com/docker/compose/releases/latest 检查最新的 docker-compose 版别号,比方截稿时最新版别为 2.1.1。
# 2、下载最新版别的 docker-compose,你需求将下面的 2.1.1 替换成最新的版别号
sudo curl -L "https://github.com/docker/compose/releases/download/2.1.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 3、颁发可履行权限
sudo chmod +x /usr/local/bin/docker-compose
# 4、测验是否装置成功(或许需求重启体系)
docker-compose -v
# 装置成功会显现 docker-compose 版别

阿里云

装置 Docker

# 1、运转以下指令,下载docker-ce的yum源
sudo wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 2、运转以下指令,装置Docker
sudo yum -y install docker-ce
# 3、测验 docker 是否装置成功 (检查版别号)
docker version
# 有 client 和 service 两部分表明 docker 装置并发动成功了(有部分错误不必管)
# 4、设置开机发动
sudo systemctl start docker
sudo systemctl enable docker
# 5、检查Docker是否发动
sudo systemctl status docker

装置 Docker Compose

Tips:仅Python 3及以上版别支撑docker-compose,并请确保已装置pip。

# 1、装置setuptools
sudo pip3 install -U pip setuptools
# 2、装置docker-compose
sudo pip3 install docker-compose
# 3、验证docker-compose是否装置成功
docker-compose --version

验证

建立自保管暗码办理器

起飞

装置官方 Bitwarden

确认服务器已成功装置好 DockerDocker Compose 之后,我们就能够来装置 Bitwarden 了。其实 Bitwarden 官方就现已供给了十分便利的一键装置脚本,我们只需履行即可。

Tips:因为 docker 镜像的体积比较大,国内服务器或许遇到半途卡住不动的状况

可通过,输入域名网址 https://go.btwrdn.co/bw-sh,下载到本地,再上传到服务器,履行 ./bitwarden.sh install

# 1、下载 Bitwarden 的装置脚本
curl -Lso bitwarden.sh https://go.btwrdn.co/bw-sh && chmod 700 bitwarden.sh
# 2、履行装置程序
./bitwarden.sh install

然后,装置脚本会一步步提示你输入,下面是部分要点选项

  1. Enter the domain name for your Bitwarden instance 输入你要给 Bitwarden 分配的域名,这儿比方为 bitwarden.iplaysoft.com

  2. Do you want to use Let’s Encrypt to generate a free SSL certificate? (y/n) 是否运用 Let’s Encrypt 自动生成免费的 SSL 证书,一般选 y (你有自己的证书也能够选 n,后边需求装备证书的途径)

  3. Enter the database name for your Bitwarden instance 输入用于 Bitwarden 的数据库名称

  4. Enter your installation id / Enter your installation key 你需求拜访 bitwarden.com/host 获取一组装置 ID 和装置密钥 Key (官网被 xx 无法拜访的话,只能各显神通了)

修正装备文件 (端口号、SSL 证书等)

  • 假如你需求运用自己的 SSL 证书、修正默许的端口号等需求,能够编辑装备文件 ./bwdata/config.yml比方你的服务器自身就有服务占用了 80 和 443 端口,那么能够修正装备里的 http_port 和 https_port 端口号来避免抵触。比方我改成 9980 和 9443,这样日后我拜访时的域名便是 bitwarden.iplaysoft.com:9980。

  • 要注意的是,腾讯云、阿里云等机器默许的「安全组规则」会阻止十分用端口的拜访,如运用非 80/443 端口,需求登录后台修正安全组规则答应你设置的端谈锋行。

  • 别的,假如你运用「浮屠面板」,或者懂得修正 Nginx 的装备,也能够对你的 bitwarden 服务进行“反代”,有建站经验的朋友,能够查查相关的资料,搞定应该不难。

  • 修正完后,有必要履行一下 ./bitwarden.sh rebuild 指令才能让新装备收效。

(可选) 修正环境装备文件:

  • 别的,在环境装备文件 ./bwdata/env/global.override.env 里还有诸如 SMTP、启用 Yubico、启用体系办理员门户、是否禁止用户注册等设置。

  • 其间,假如你的 Bitwarden 打算是私人运用,主张在注册完自己账号之后,改成 “禁止用户注册”,对应的项为:globalSettings__disableUserRegistration=false

  • 修正此文件后,需求重启 Bitwarden 容器才能收效,重启指令为:./bitwarden.sh restart

发动 Bitwarden 服务

./bitwarden.sh start

验证所有容器是否正常运转

docker ps

建立自保管暗码办理器

假如运转不正常,请检查日志,日志服务在 bitwarden/logs/

装置第三方 Bitwarden

vaultwarden

机器装备不合格,比方发动容器之后,mssql 无法正常工作,估量便是 RAM 装备不合格,官方 mssql 占 RAM 1.3G 内存。无法运转官方 Bitwarden,这时引荐运用第三方 Bitwarden

# 1、下载 vaultwarden 的装置脚本
docker run -d --name vaultwarden -v /vw-data/:/data/ -p 80:80 vaultwarden/server:latest
# 2、发动容器
docker start vaultwarden

自定义装备

docker run -d --name bitwarden 
  -e SIGNUPS_ALLOWED=false 
  -e TZ=Asia/Shanghai 
  -e SIGNUPS_ALLOWED=false 
  -e INVITATIONS_ALLOWED=false  
  -e SMTP_USERNAME=你的邮箱 
  -e SMTP_PASSWORD=邮箱暗码 
  -v /vw-data/:/data/ 
  -p 9980:80 
  vaultwarden/server:latest

验证容器是否正常运转

docker ps

建立自保管暗码办理器

反向署理

假如你有自己的 Nginx 服务,需求反向署理 官方 bitwarden 和第三方bitwarden,以及装备自己的 SSL 证书,能够参考以下装备:

user root;
worker_processes auto;
pid /run/nginx.pid;
#include /usr/share/nginx/modules/*.conf;
events {
    worker_connections 512;
}
http {
    etag on;
    expires 7d;
    gzip on;
    gzip_min_length 1k;
    gzip_buffers   2 8k;
    client_max_body_size 50m;
    gzip_comp_level 2;
    gzip_types   text/plain application/javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg;
    gzip_vary off;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;
    #include             /etc/nginx/mime.types;
    include             mime.types;
    default_type        application/octet-stream;
    #include /etc/nginx/conf.d/*.conf;
    server {
       listen 80;
       server_name bitwarden.iplaysoft.com;
       rewrite ^(.*)$ https://$host$1 permanent;
   }
   server {
        listen 443 ssl;
        server_name  bitwarden.iplaysoft.com;
        index index.html;
        ssl_certificate   /usr/local/webserver/nginx/cert/vd.downfuture.com.pem;
        ssl_certificate_key  /usr/local/webserver/nginx/cert/vd.downfuture.com.key;
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        access_log /usr/local/webserver/nginx/logs/nginx_access.log;
        error_log /usr/local/webserver/nginx/logs/nginx_error.log error;
        error_page 404 /404.html;
            location = /40x.html {
        }
        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
        location / {
            proxy_pass http://服务器公网IP:9980;
        }
    }
}

总结

bitwarden 强大的自保管程序,让我具有了免费暗码办理器,感谢!

文章同步更新平台:、CSDN、知乎、思否、博客,公众号(野生程序猿江辰) 我的联系方式,v:Jiang9684,欢迎和我一同学习交流