在内网debian虚拟机安装dsh tavern并在本机使用

为了隔离环境,决定在内网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
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!无需注册,过短或乱码评论会被屏蔽。
提交
头像

昵称

取消
昵称表情代码图片快捷回复

    暂无评论内容