在又一次因重复密码错误而被锁定账号后,我终于下定决心改用Bitwarden了
有的网站哪,不是我说你,密码设置规则纯粹就是用来恶心用户的
句点( . )TMD怎么就不算特殊字符了?!!!
此处省略一万字……
为什么选择Bitwarden,也不用我多说了
一句话就是 开源万岁!
正式开始操作
(以下shell均以root身份执行)
Google到了一篇大佬的博文,裸机部署,正合我意
不过,在那篇文章中,vaultwarden是编译源码安装的…
且不说编译极耗时间,光是加swap、配rust环境就够让我头疼了
翻了翻wiki,发现开发者已经提供了直接获取预编译可执行文件的方法 -> Pre built binaries
这不就好起来了…
无需安装docker哦 😀
cd /tmp
wget https://raw.githubusercontent.com/jjlin/docker-image-extract/main/docker-image-extract
chmod +x docker-image-extract
./docker-image-extract vaultwarden/server:alpine
之后就可以在output目录下得到所需文件了
PS:预编译文件同时支持sqlite、mysql、pgsql
安装
添加用户并给予权限,以便隔离运行
useradd -s /sbin/nologin -M vaultwarden
mkdir -p /var/lib/vaultwarden/data
chown -R vaultwarden:vaultwarden /var/lib/vaultwarden/
移动文件
cp output/vaultwarden /usr/bin
cp -r output/web-vault /var/lib/vaultwarden
rm -rf output
配置环境变量
### /etc/vaultwarden.env
DATA_FOLDER=/var/lib/vaultwarden/data/
DATABASE_URL=mysql://[user]:[password]@127.0.0.1:3306/[db_name]
IP_HEADER=X-Real-IP
WEB_VAULT_FOLDER=/var/lib/vaultwarden/web-vault/
WEB_VAULT_ENABLED=true
ADMIN_TOKEN=[token]
DOMAIN=https://[your.domain]
- 这里使用了mysql,请提前建立数据库,如有需要可以换用sqlite/pgsql
- 127.0.0.1 不得 改为localhost(当然IPv6地址也是可以的)
- [token]可执行
openssl rand -base64 48
得到 - 必须使用https
配置systemd
### /etc/systemd/system/vaultwarden.service
[Unit]
Description=Vaultwarden Server
Documentation=https://github.com/dani-garcia/vaultwarden
After=network.target
[Service]
User=vaultwarden
Group=vaultwarden
EnvironmentFile=/etc/vaultwarden.env
ExecStart=/usr/bin/vaultwarden
LimitNOFILE=1048576
LimitNPROC=64
PrivateTmp=true
PrivateDevices=true
ProtectHome=true
ProtectSystem=strict
WorkingDirectory=/var/lib/vaultwarden
ReadWriteDirectories=/var/lib/vaultwarden
AmbientCapabilities=CAP_NET_BIND_SERVICE
[Install]
WantedBy=multi-user.target
启动!
systemctl enable --now vaultwarden.service
systemctl status vaultwarden.service
之后用nginx/caddy反代即可(别忘了加上ssl)
Finished!
注册账户后,在https://[your.url]/admin
用之前设置的token登录,禁用新用户注册,以防abuse
最后放张成品图