折腾下闲置的VPS,部署Bitwarden_rs和sharelist

1 折腾下闲置的VPS

本科时同学推荐搬瓦工的VPS,当然那时我连VPS是什么都不知道,听说能够翻过围墙所以就买了。对Linux一窍不通的我在曾经的doubi根据地上的文章指引下,也能够搭建一个比较舒服的上网环境,当时感到十分愉快(用的当然是那些一键脚本)。
过了一年除了IP被封过两次、换了几个机房、换了几个一键脚本以外,倒也还没觉得有啥不满;毕竟如果是买市面上那些服务每个月的钱也差不多。
人总是在不断学习进步的,我总算学会了一些linux基本操作,可以用XShell登一登我的VPS没事ls一下。但看到大佬们用自己的VPS搭各种服务器到时候,还是非常羡慕的,于是忍不住也尝试下,顺便学习下后端相关知识。

由于时间有限,以能用为唯一目的,多余的知识没时间更没必要去掌握(毕竟专业和这个毫不相关),操作全部记录在这方便以后换VPS时再搭一遍。

2 Bitwarden_rs部署

2.1 前言

好用的密码管理软件之一,_rs版本相对于官方版精简了不少,部署也比较简单。网上大多数bitwarden_rs部署教程的文章我基本上都过了一遍,我遇到的主要问题有:

  1. 部署后用Chrome浏览器无法登录与注册账号,IOS系统无法登录 (——后确定为未用https的原因)
  2. 网上关于申请https这部分往往一笔带过,什么Nginx反向代理啦....看得我这样的零基础玩家云里雾里。

结果大量时间都花在如何启用https上了,真让人头大。

2.2 步骤

2.2.1 VPS初始配置

经过几次重装OS后学乖了,把初始配置做成一个脚本。

sudo -i
apt-get install curl -y
apt-get install git -y
apt-get install vim -y
#=========================
#Vim配置
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
#=========================
git clone https://github.com/chengpengzhao/My_vimrc.git
cd My_vimrc
git checkout dev-WSL
cp ./'.vimrc(ssh)' ~/.vimrc
#=========================
#安装Docker、docker-compose
sudo curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
systemctl start docker
systemctl enable docker
#=========================
# 安装acme.sh
apt-get install cron socat -y
curl https://get.acme.sh | sh
source ~/.bashrc
export Namesilo_Key="xxxxxxxxxxxxx"(我的域名提供商)

apt install firewalld -y

firewall-cmd --permanent --add-service=http 
firewall-cmd --permanent --add-service=https 
firewall-cmd --reload 
service docker restart

步骤因人而异,大致都差不多。

2.2.2 一般部署(没有https的)

mkdir -p /opt/bitwarden && cd /opt/bitwarden

cat >> docker-compose.yml << EOF
version: "3"

services:
  bitwarden:
    image: bitwardenrs/server
    restart: always
    ports:
    - "8081:80"
    volumes:
      - ./bw-data:/data
    environment:
      WEBSOCKET_ENABLED: "true"
      SIGNUPS_ALLOWED: "true"
      WEB_VAULT_ENABLED: "true"
EOF

docker-compose up -d

端口相关知识我真的一窍不通...反正能用ip:8081访问就行。

2.2.3 启用https

稀里糊涂的装了个acme.sh脚本、在NameSilo申请了个API key;

acme.sh --issue --dns dns_namesilo --dnssleep 900 -d my_domain_name.com

看到没有报错的时候真的松了口气,然而证书是申请了,怎么绑到之前的bitwarden_rs的domain里我还是不会。
后面发现这篇教程和其他的都有些不一样,于是抱着一丝希望试了下...总算是解决了问题。

cat >> docker-compose.yml << EOF
version: "3"

services:
  bitwarden:
    image: bitwardenrs/server
    restart: always
    volumes:
      - ./bw-data:/data
    environment:
      WEBSOCKET_ENABLED: "true"
      SIGNUPS_ALLOWED: "true"

  caddy:
    image: abiosoft/caddy
    restart: always
    volumes:
      - ./Caddyfile:/etc/Caddyfile:ro
      - caddycerts:/root/.caddy
    ports:
      - 80:80
      - 443:443
    environment:
      ACME_AGREE: "true" 
      DOMAIN: "bitwarden.koko.cat"
      EMAIL: "[email protected]"
volumes:
  caddycerts:
EOF

cat >> Caddyfile << EOF
{$DOMAIN} {
    tls {$EMAIL}

    header / {
        Strict-Transport-Security "max-age=31536000;"
        X-XSS-Protection "1; mode=block"
        X-Frame-Options "DENY"
    }

    proxy /notifications/hub/negotiate bitwarden:80 {
        transparent
    }

    # Notifications redirected to the websockets server
    proxy /notifications/hub bitwarden:3012 {
        websocket
    }

    # Proxy the Root directory to Rocket
    proxy / bitwarden:80 {
        transparent
    }
}
EOF

docker-compose down && docker-compose up -d

2.2.4 定时备份

直接用github备份算了,或者定时手动导出到你觉得安全的位置。

cd ~
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub
#之后在github上导入,新建私人repository
cd /opt/bitwarden/bw-data
git init
git remote add origin [email protected]:xxxx/xxxx.git
git add -A
git commit -m "first push"
git push -u origin master

建立脚本并定时运行:

cd ~
cat >> backup.sh << EOF
#!/bin/bash
date=$(date '+%Y-%m-%d %H:%M')
cd /opt/bitwarden/bw-data
git add -A
git commit -m "backup at $date"
git push
EOF

bash ~/gitback.sh试运行,设置定时任务

echo "15 05 * * * bash ~/gitback.sh > ~/siteback.log 2>&1 &" > bt.cron
crontab bt.cron
rm -rf bt.cron

自动备份部分白嫖的Rat's Blog
查看定时任务可通过crontab -l

3 Sharelist分享云盘

项目地址
这个搭起来就简单多了,dockerr都给你准备好了,只需要注意安装完成后配置云盘可能比较复杂;我选用的是链接分享的方式,可以自己指定文件夹且不需要获取API之类的复杂操作。

wget --no-check-certificate -qO-  https://raw.githubusercontent.com/reruin/sharelist/master/netinstall.sh | bash
cd sharelist
docker-compose up

没错安装就是这么简单~(能用就行,网址配置、Nginx什么的就勘弁してくれ)

Author: zcp
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint polocy. If reproduced, please indicate source zcp !
评论
 Previous
用八爪鱼采集器爬取COMSOL培训视频 用八爪鱼采集器爬取COMSOL培训视频
1 前言整理邮件垃圾箱时偶然发现COMSOL(多物理场仿真软件)中国给我发了条有用的信息: COMSOL 用户,您好! 新型冠状病毒肺炎的疫情仍在持续,在疫情期间,COMSOL 中国将向所有注册用户 免费开放 15 个专题,共计
Next 
开始使用TiddlyWiki个人笔记系统和Gnucash个人财务管理系统 开始使用TiddlyWiki个人笔记系统和Gnucash个人财务管理系统
1 前言最近事情比较多,想看的书、想学的、不得不学的...其中很多都是无意中逛别人博客后发现的,比如财务管理、GTD、如何整理笔记、保险相关知识... 我之所以会把这些事的优先级放这么高,核心目的还是在于想让自己早点养成习惯,
  TOC