安装docker和docker-compose

跳转到安装docker和docker-compose

新建Bitwarden文件夹

# 根目录下
cd /
# 新建docker文件夹
mkdir /docker/Bitwarden -p

新建Bitwarden文件夹

新建Bitwarden文件

# 进入Bitwarden文件夹
cd /docker/Bitwarden
# 新建docker-compose.yml
vi /docker-compose.yml

新建docker-compose.yml

写入Bitwarden参数配置

# i: 编辑
version: '3'
services:
  vaultwarden:
    container_name: vaultwarden
    image: vaultwarden/server:latest
    restart: unless-stopped
    volumes:
      - ./data/:/data/
    ports:
      - 8080:80
    environment:
      - DOMAIN=https://abc.def.com # 这是您希望与您的Vaultwarden实例关联的域名。
      - LOGIN_RATELIMIT_MAX_BURST=10 # 允许在一阵登录/两步验证尝试中的最大请求次数。
      - LOGIN_RATELIMIT_SECONDS=60 # 这是来自同一IP的登录请求之间的平均秒数,在Vaultwarden限制登录次数之前。
      - ADMIN_RATELIMIT_MAX_BURST=10 # 这与LOGIN_RATELIMIT_MAX_BURST相同,只争对admin面板。
      - ADMIN_RATELIMIT_SECONDS=60 # 这与LOGIN_RATELIMIT_SECONDS相同
      - ADMIN_SESSION_LIFETIME=20 # 会话持续时间
      - ADMIN_TOKEN=YourReallyStrongAdminTokenHere # 此值是Vaultwarden管理员面板的令牌(一种密码)。为了安全起见,这应该是一个长的随机字符串。如果未设置此值,则管理员面板将被禁用。建议openssl rand -base64 48 生成ADMIN_TOKEN确保安全
      - SENDS_ALLOWED=true  # 此设置决定是否允许用户创建Bitwarden发送 - 一种凭证共享形式。
      - EMERGENCY_ACCESS_ALLOWED=true # 此设置控制用户是否可以启用紧急访问其账户的权限。例如,这样做可以在用户去世后,配偶可以访问密码库以获取账户凭证。可能的值:true / false。
      - WEB_VAULT_ENABLED=true # 此设置决定了网络保险库是否可访问。一旦您配置了您的账户和客户端,停止您的容器,然后将此值切换为false并重启Vaultwarden,可以用来防止未授权访问。可能的值:true/false。
      - SIGNUPS_ALLOWED=true # 此设置控制新用户是否可以在没有邀请的情况下注册账户。可能的值:true / false。
# :wq: 保存

写入Bitwarden参数配置

启动docker

systemctl start docker

docker服务自启

systemctl enable docker

启动docker-compose

docker-compose up -d

WEB访问

服务器IP:8080

停止docker-compose

docker-compose down

安装nginx

跳转到安装nginx

申请SSL证书

跳转到申请SSL证书

将SSL证书上传到/etc/nginx

上传SSL证书

# 将bundle.crt修改为crt
mv abc.def.com_bundle.crt abc.def.com.crt

配置nginx转发

vi /etc/nginx/conf.d/default.conf

server {
      listen       443 ssl;
      server_name  localhost;
      proxy_set_header X-Forwarded-Proto $scheme;
      ssl_certificate      abc.def.com.crt;#或者是crt文件
      ssl_certificate_key  abc.def.com.key;
      ssl_session_cache    shared:SSL:1m;
      ssl_session_timeout  5m;
      ssl_protocols TLSv1.2;
      ssl_ciphers HIGH:!aNULL:!MD5:!DES:!3DES;
      ssl_prefer_server_ciphers  on;

     location / {
      proxy_pass http://10.0.0.223:8080;#如果后面带/,表示强制跳转到绝对路径
    }



#    listen       80;
#    server_name  localhost;

#    #access_log  /var/log/nginx/host.access.log  main;

#    location / {
#        root   /usr/share/nginx/html;
#        index  index.html index.htm;
#    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}

配置nginx

nginx检查语法

nginx -t

检查语法

重新加载nginx

systemctl reload nginx

域名访问

IP:8080访问
域名访问

web界面

web界面