利用zerotier进行内网穿透搭建bitwarden服务

Posted on Mon 09 January 2023 in howto

基本思路

将 bitwarden 服务和数据放在内网,在外网VPS上安装 zerotier-one并设置 caddy 反向代理使其可以访问内网的 bitwarden 服务。

内网设置

内网安装 vaultwarden 的 docker 镜像:

docker pull vaultwarden/server:alpine

alpine 镜像对资源占用较少。

docker-compose.yml :

version: '3'
services:
    vaultwarden:
        image: vaultwarden/server:alpine
        container_name: vaultwarden
        restart: always
        ports:
            - 3012:3012
            - 8899:80
        environment:
            WEBSOCKET_ENABLED: "true"  # Enable WebSocket notifications.
        volumes:
            - ./vw-data:/data

VPS设置

安装 zerotier-one,并加入内网机器所在的 zerotier 网络。

在 Caddyfile 中添加反向代理的内容:

https://domain.name:port {
    reverse_proxy /notifications/hub 内网服务器zerotier网络IP:3012
    reverse_proxy 内网服务器zerotier网络IP:8899
}

在 bitwarden 客户端中将自托管环境服务器URL设成 https://domain.name:port 即可。