爱意满满的作品展示区。
muzig

做了个 Windows Phone 风格的 Tailscale 内网主页,顺便搭了套「手机上指挥 Claude 改代码、刷新就看到效果」的免费闭环

  •  
  •   muzig · 4h 20m ago · 192 views

    家里有台 Mac mini 跑着一堆自建服务,设备和端口越来越多,记不住哪个服务在哪台机器的哪个端口,于是写了个 tailnet 主页。

    GitHub: https://github.com/muzig/tailscale-home 在线演示(虚构数据,建议手机打开): https://muzig.github.io/tailscale-home/

    它做什么

    • 读 tailscale status / tailscale serve status,自动列出 tailnet 里所有设备(在线/离线、IP 、MagicDNS 名,点一下复制)和 serve 出来的服务
    • 可选探测在线设备的常见 Web 端口;手写的服务和书签放在 services.json,和自动发现的去重
    • 可达性由扫描端实测,不可达的磁贴会标出来
    • 桌面端键盘直达:方向键选择、回车打开、Esc 返回
    • 手机上是 Windows Phone 8.1 开始屏幕:黑底、4 列磁贴、转门动画、动态磁贴,左滑进 A–Z 全部服务列表

    整个项目就一个静态 HTML + 一个只用标准库的 Python 脚本,没有构建、没有框架、没有数据库。

    顺便的副产品:手机上改代码的闭环

    这个页面本身就是这样开发的:

    1. 开发机上开着 claude,打开 Remote Control
    2. 出门在外,用手机 Claude App 说「手机上磁贴小一点」
    3. Claude 改代码、commit 、push → 家里 Mac mini 上的自建 Gitea Actions 自动构建部署(一分钟内)
    4. 同一部手机刷新 https://<服务器>.<tailnet>.ts.net,直接看真实页面

    全程不需要 VPS 、公网 IP 、端口转发、域名和证书(tailscale serve 自动签 *.ts.net 的 HTTPS ),除了本来就在用的 Claude 订阅,其他都免费。

    和 Homepage / Glance 的区别

    它们是功能完整的仪表盘(小组件、几十种集成),代价是一份要手动维护的 YAML 。这个做得少得多:tailnet 本身就是配置,设备和服务自动出现;代码小到十分钟读完,fork 了随便改。想要小组件还是推荐 Homepage / Glance 。

    部署

    • macOS:Gitea + runner ,push 即部署(仓库里就是我自己在用的 workflow )
    • Linux:docker compose up + 一个 systemd 定时器,或者直接用 ghcr.io/muzig/tailscale-home 镜像
    • 只想看看:clone 下来 python3 -m http.server 就能跑演示数据

    MIT 协议。欢迎提意见,尤其是:

    • 手机上的交互还有哪里别扭
    • 你的 tailnet 里有什么服务识别不出来 / 图标不对
    • Linux 部署踩到的坑

    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2546 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 14:32 · PVG 22:32 · LAX 07:32 · JFK 10:32
    ♥ Do have faith in what you're doing.