Vaultwarden

用 Rust 编写的非官方 Bitwarden 兼容服务器,以前称为 bitwarden_rs


Docker Run

创建容器

1
2
docker pull vaultwarden/server:latest
docker run -it -d --name vaultwarden -v /root/docker/vaultwarden/:/data/ -p 8000:80 vaultwarden/server:latest

停止容器并删除

1
docker stop vaultwarden && docker rm vaultwarden

Docker-Compose

创建 docker-compose.yml 文件

1
nano docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
version: '3.3'
services:
server:
container_name: vaultwarden
restart: unless-stopped
environment:
- SIGNUPS_ALLOWED=true
- WEBSOCKET_ENABLED=true
volumes:
- './data/:/data/'
ports:
- '8000:80'
image: 'vaultwarden/server:latest'

6666:80 为网页端口

SIGNUPS_ALLOWED=true 注册完毕后,可以将注册关闭

SIGNUPS_ALLOWED=false 代表禁止注册

WEBSOCKET_ENABLED=true 此浏览器需要 HTTPS 才能使用 Web 密码库

1
docker-compose up -d

打开 8000 端口

1
ufw allow 8000/tcp

一键脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#! /bin/bash

red(){
echo -e "\033[31m\033[01m$1\033[0m"
}
green(){
echo -e "\033[32m\033[01m$1\033[0m"
}
yellow(){
echo -e "\033[33m\033[01m$1\033[0m"
}


# Vaultwarden
function vaultwarden_install(){
if nc -z localhost 8000; then
echo " 8000 端口已经被占用,请检查相关进程。"
exit 1
fi
if docker ps -a --format "{{.Names}}" | grep -q "vaultwarden"; then
echo " vaultwarden 容器名已经被占用"
exit 1
fi
if [ ! -d /root/docker/Vaultwarden ]; then
mkdir -p /root/docker/Vaultwarden
fi
cd /root/docker/Vaultwarden
if [ -f "docker-compose.yml" ]; then
rm docker-compose.yml
fi
cat <<EOF > docker-compose.yml
version: '3.3'
services:
server:
container_name: vaultwarden
restart: unless-stopped
environment:
- SIGNUPS_ALLOWED=true
- WEBSOCKET_ENABLED=true
volumes:
- './data/:/data/'
ports:
- '8000:80'
image: 'vaultwarden/server:latest'
EOF
docker-compose up -d
ufw allow 8000/tcp
yellow "-----------------------------------------------"
green " Web 端口:8000"
echo
green " Docker IP = $(ip addr show docker0 | grep 'inet\b' | awk '{print $2}' | cut -d '/' -f1):8000"
echo
green " 服务器 IP = http://$(ifconfig $(ifconfig | grep -oP 'enp\w+') | grep 'inet ' | awk '{print $2}'):8000"
echo
green " vaultwarden 安装完毕!"
yellow "-----------------------------------------------"
}
vaultwarden_install

Bitwarden: https://bitwarden.com/

Vaultwarden: https://github.com/dani-garcia/vaultwarden