用途:dev-serve 用于把本地开发服务器快速发布到 <项目名>.YOUR_DOMAIN 子域名下,由 tmux 托管进程、Caddy 负责 HTTPS 反向代理。
主要能力:从仓库目录名推导子域名;从 package.json 的 scripts.dev 自动识别开发命令(支持 vite、next、nuxt、sveltekit);若存在 vite 配置文件则自动修补 allowedHosts;在名为 dev-<name> 的 tmux 会话中以 --host 0.0.0.0 --port <port> 启动;向 Caddyfile 添加路由与仪表盘链接;通过 Caddy 管理 API 重载(无需 sudo、无需重启);等待端口监听并轮询 HTTPS 直到返回 2xx/3xx(最长 90 秒)。
使用方式:安装脚本 cp scripts/dev-serve.sh ~/.local/bin/dev-serve 并 chmod +x ~/.local/bin/dev-serve;设置 DEV_SERVE_DOMAIN 或修改脚本内 DOMAIN 变量。命令包括 dev-serve up <repo-path> [port]、dev-serve down <name>、dev-serve ls、dev-serve restart <name>。可用 DEV_CMD 覆盖开发命令。端口默认从 5200 起自动分配并跳过已占用端口。
适用场景:需要把本地开发服务通过自有通配符域名临时对外访问的开发者。
限制与依赖:需要 Caddy 已配置通配符 DNS 与 TLS、tmux、jq、curl,且 Caddy 管理 API 位于 localhost:2019。Vite 会拦截未识别主机名,自动修补失败时需手动在 vite.config.ts 添加 server: { allowedHosts: ['myapp.YOUR_DOMAIN'] }。证书签发失败可等待 30-60 秒并查看 /var/log/caddy-error.log;Caddy 重载失败可用 caddy reload --config ~/.config/caddy/Caddyfile --address localhost:2019。其他配置项包括 DEV_SERVE_STATE_DIR、CADDYFILE、CADDY_ADMIN。