为了隔离环境,决定在内网pve的debian kvm vps运行,由于dsh tavern的linux版本本身借助浏览器显示,那么可以把dsh放在vps以节省本机虚拟化性能占用。
安装 Node.js 22
curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.8/install.sh \
-o /tmp/nvm-install.sh
bash /tmp/nvm-install.sh
export NVM_DIR="$HOME/.nvm"
. "$NVM_DIR/nvm.sh"
nvm install 22
nvm alias default 22
Node 必须至少为 22.19.0
安装项目
export DSH_TAVERN_HOST=cli
export DSH_TAVERN_CLI_HOME="$HOME/.dsh-tavern"
export DSH_TAVERN_NO_OPEN=1
curl -fsSL https://cdn.jsdelivr.net/gh/flizzywine/dsh-tavern@main/install.sh \
-o /tmp/dsh-tavern-install.sh
sh /tmp/dsh-tavern-install.sh
export PATH="$HOME/.local/bin:$PATH"
dsh-tavern status
若在非root账户执行,则可能启动脚本缺少权限,尝试
chmod u+x "$HOME/.dsh-tavern/apps/dsh-tavern/bin/dsh-tavern.mjs"
export PATH="$HOME/.local/bin:$PATH"
dsh-tavern status
安装caddy (ps. 使用ssh隧道访问localhost也可,但caddy更适合后续直接访问)
sudo apt update
sudo apt install -y caddy
设置页面密码,
caddy hash-password
sudo cp /etc/caddy/Caddyfile /etc/caddy/Caddyfile.before-dshtavern
sudo nano /etc/caddy/Caddyfile
参考格式
https://dshtavern {
tls internal
basicauth {
tavern 替换为完整密码哈希
}
reverse_proxy 127.0.0.1:3081 {
header_up Host 127.0.0.1:3081
header_up Origin http://127.0.0.1:3081
header_up -Authorization
}
}
直接替换文件内容
sudo tee /etc/caddy/Caddyfile > /dev/null << 'EOF'
https://dshtavern {
tls internal
basicauth {
tavern 替换
}
reverse_proxy 127.0.0.1:3081 {
header_up Host 127.0.0.1:3081
header_up Origin http://127.0.0.1:3081
header_up -Authorization
}
}
EOF
检查,返回格式错误
sudo runuser -u caddy -- caddy validate --config /etc/caddy/Caddyfile
2026/10/10 20:50:20.894 INFO using provided configuration {"config_file": "/etc/caddy/Caddyfile", "config_adapter": ""}
2026/10/10 20:50:20.895 WARN Caddyfile input is not formatted; run the 'caddy fmt' command to fix inconsistencies {"adapter": "caddyfile", "file": "/etc/caddy/Caddyfile", "line": 2}
2026/10/10 20:50:20.895 INFO tls.cache.maintenance started background certificate maintenance {"cache": "0xc0001e5490"}
2026/10/10 20:50:20.896 INFO http server is listening only on the HTTPS port but has no TLS connection policies; adding one to enable TLS {"server_name": "srv0", "https_port": 443}
2026/10/10 20:50:20.896 INFO http enabling automatic HTTP->HTTPS redirects {"server_name": "srv0"}
2026/10/10 20:50:20.896 INFO tls.cache.maintenance stopped background certificate maintenance {"cache": "0xc0001e5490"}
Valid configuration
修复
sudo caddy fmt --overwrite /etc/caddy/Caddyfile
sudo runuser -u caddy -- caddy validate --config /etc/caddy/Caddyfile
通过后启动
sudo systemctl enable caddy
sudo systemctl restart caddy
sudo systemctl status caddy --no-pager
获取登录地址
dsh-tavern status
访问(其中dshtavern为vps主机名)
https://dshtavern/?token=xxx
basic认证账号tavern,密码为设定的值
由于dsh限制,无法在远程网页配置api,因此仍需要通过ssh隧道访问并配置api。否则报错“加载提供方目录失败: settings are unavailable in this browser”
ssh -N \
-o ExitOnForwardFailure=yes \
-o ServerAliveInterval=30 \
-L 127.0.0.1:3081:127.0.0.1:3081 \
你的Debian用户名@dshtavern
可选,信任证书
导出根证书,在 Debian 执行:
sudo install -m 0644 \
/var/lib/caddy/.local/share/caddy/pki/authorities/local/root.crt \
/home/<yourusername>/dshtavern-root.crt
在 Mac 终端执行:
scp <yourusername>@dshtavern:~/dshtavern-root.crt ~/Downloads/
将下载的证书导入 Mac“钥匙串访问”的“登录”钥匙串,双击证书,在“信任”中将且仅将 SSL 设置为“始终信任”。
关闭窗口认证保存。
然后获取项目当前访问地址:
dsh-tavern status
在 Mac 浏览器中,把输出地址的 http://127.0.0.1:3081 替换为 https://dshtavern,保留后面的 token 参数,再用你配置的网页账号密码登录。
![图片[1]-在内网debian虚拟机安装dsh tavern并在本机使用-THsInk](https://www.thsink.com/wp-content/uploads/2026/10/dshtavern-1024x634.png)
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END








暂无评论内容