{"generatedAt":"2026-10-27T16:44:42.700Z","uptimeSec":10761254,"sampleIntervalMs":2000,"site":{"title":"Lukezy Studio","tagline":"云服务器项目中枢","host":"www.lukezystudio.cn","publicBase":"https://www.lukezystudio.cn"},"host":{"hostname":"VM-0-9-ubuntu","platform":"Ubuntu 24.04.4 LTS","kernel":"6.8.0-117-generic","arch":"x64","cpuModel":"Intel(R) Xeon(R) Platinum 8255C CPU @ 2.50GHz","cores":2,"timezone":"Asia/Shanghai","bootTimeMs":1782358228957,"publicIp":"www.lukezystudio.cn"},"system":{"cpu":{"usagePercent":53.5,"cores":2,"model":"Intel(R) Xeon(R) Platinum 8255C CPU @ 2.50GHz","loadavg":{"1":0.22,"5":0.09,"15":0.08},"history":[{"t":1793119304480,"v":4},{"t":1793119306480,"v":5.1},{"t":1793119308470,"v":3.5},{"t":1793119310492,"v":3.7},{"t":1793119312492,"v":3.3},{"t":1793119314478,"v":5.2},{"t":1793119316478,"v":4.8},{"t":1793119318501,"v":8},{"t":1793119320483,"v":5.3},{"t":1793119322501,"v":4.3},{"t":1793119324489,"v":5},{"t":1793119326490,"v":6.8},{"t":1793119328504,"v":2.5},{"t":1793119330493,"v":18.5},{"t":1793119332504,"v":3.3},{"t":1793119334499,"v":5},{"t":1793119336527,"v":7.3},{"t":1793119338501,"v":5},{"t":1793119340509,"v":3.8},{"t":1793119342502,"v":4.3},{"t":1793119344523,"v":4},{"t":1793119346509,"v":5},{"t":1793119348530,"v":2.5},{"t":1793119350531,"v":4},{"t":1793119352515,"v":4.3},{"t":1793119354550,"v":4.5},{"t":1793119356553,"v":13.2},{"t":1793119358521,"v":39},{"t":1793119360523,"v":4.5},{"t":1793119362543,"v":3.5},{"t":1793119364541,"v":4.8},{"t":1793119366524,"v":7.5},{"t":1793119368545,"v":2.7},{"t":1793119370544,"v":3.6},{"t":1793119372533,"v":4.3},{"t":1793119374535,"v":5.3},{"t":1793119376536,"v":5.5},{"t":1793119378537,"v":3.5},{"t":1793119380555,"v":3.5},{"t":1793119382540,"v":4.8},{"t":1793119384556,"v":3.5},{"t":1793119386541,"v":6.8},{"t":1793119388561,"v":2.3},{"t":1793119390551,"v":4.5},{"t":1793119392568,"v":4.8},{"t":1793119394554,"v":5},{"t":1793119396583,"v":6.2},{"t":1793119398550,"v":3.3},{"t":1793119400557,"v":7.5},{"t":1793119402576,"v":3.3},{"t":1793119404564,"v":5.3},{"t":1793119406562,"v":5.3},{"t":1793119408575,"v":3.2},{"t":1793119410565,"v":4.8},{"t":1793119412581,"v":2.8},{"t":1793119414571,"v":4},{"t":1793119416573,"v":8.3},{"t":1793119418586,"v":10.3},{"t":1793119420576,"v":5.3},{"t":1793119422590,"v":3.5},{"t":1793119424590,"v":4},{"t":1793119426585,"v":5},{"t":1793119428596,"v":3.8},{"t":1793119430589,"v":4.3},{"t":1793119432592,"v":4},{"t":1793119434610,"v":3.5},{"t":1793119436603,"v":7.8},{"t":1793119438600,"v":3},{"t":1793119440601,"v":4},{"t":1793119442625,"v":4.5},{"t":1793119444610,"v":4.3},{"t":1793119446618,"v":9.8},{"t":1793119448613,"v":3.3},{"t":1793119450614,"v":4.5},{"t":1793119452637,"v":3.3},{"t":1793119454616,"v":4.7},{"t":1793119456622,"v":7.1},{"t":1793119458646,"v":2.3},{"t":1793119460625,"v":4.3},{"t":1793119462653,"v":4},{"t":1793119464626,"v":10.6},{"t":1793119466671,"v":37.5},{"t":1793119468635,"v":39.7},{"t":1793119470690,"v":7.2},{"t":1793119472637,"v":54.1},{"t":1793119474670,"v":61.9},{"t":1793119476635,"v":37},{"t":1793119478693,"v":48.7},{"t":1793119480646,"v":20.1},{"t":1793119482685,"v":53.5}]},"memory":{"total":3904794624,"used":2745331712,"available":1159462912,"free":148250624,"buffCache":1318596608,"usagePercent":70.3,"swapTotal":10674495488,"swapUsed":2518372352,"swapPercent":23.6,"cached":925499392,"dirty":1552384},"disk":[{"filesystem":"/dev/vda2","mount":"/","total":73859022848,"used":42581585920,"available":28147204096,"usagePercent":57.7}],"network":{"rxRate":2711.932101847229,"txRate":4275.08736894658,"interfaces":[{"name":"eth0","rxBytes":50328813742,"txBytes":84483752122,"rxRate":2711.932101847229,"txRate":4275.08736894658}]},"temperature":null,"processes":{"total":178,"running":2,"sleeping":123,"threads":526}},"totals":{"projectCount":19,"serviceCount":1,"runningCount":9,"onlineCount":16,"attributedRssBytes":1769320448,"attributedCpuPercent":98,"attributedDiskBytes":2922401474,"unattributed":{"count":167,"rssBytes":1140133888,"cpuPercent":7,"top":[{"pid":2328785,"name":"chrome","cmd":"/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=1393706 --enable-crash-reporter=, --user-data-dir=/opt/","rssBytes":213098496,"cpuPercent":0.5,"uptimeSec":548307},{"pid":1982730,"name":"node","cmd":"/home/ubuntu/.nvm/versions/node/v22.23.0/bin/node /home/ubuntu/portal/server.mjs","rssBytes":128606208,"cpuPercent":1,"uptimeSec":613955},{"pid":1393810,"name":"chrome","cmd":"/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=1393706 --enable-crash-reporter=, --user-data-dir=/opt/","rssBytes":109867008,"cpuPercent":0,"uptimeSec":1646369},{"pid":1393694,"name":"chrome","cmd":"/usr/bin/google-chrome-stable --no-sandbox --disable-setuid-sandbox --user-data-dir=/opt/browser-vnc/chrome-data --hide-","rssBytes":84398080,"cpuPercent":0.5,"uptimeSec":1646370},{"pid":3647109,"name":"YDService","cmd":"/usr/local/qcloud/YunJing/YDEyes/YDService","rssBytes":74969088,"cpuPercent":2.5,"uptimeSec":5835537},{"pid":2162342,"name":"PM2 v7.0.1: God","cmd":"PM2 v7.0.1: God Daemon (/home/ubuntu/.pm2)","rssBytes":40226816,"cpuPercent":0.5,"uptimeSec":6150104},{"pid":1487011,"name":"multipathd","cmd":"/sbin/multipathd -d -s","rssBytes":27947008,"cpuPercent":0,"uptimeSec":7096099},{"pid":1393749,"name":"chrome","cmd":"/opt/google/chrome/chrome --type=utility --utility-sub-type=network.mojom.NetworkService --lang=zh-CN --service-sandbox-","rssBytes":26038272,"cpuPercent":0,"uptimeSec":1646369}]}},"projects":[{"id":"dsh","name":"DeepSeek Harness","desc":"AI 编码智能体的 Web 工作台。在浏览器里指挥智能体读写代码、执行命令、跑子代理与工作流，支持插件、技能与多会话。","url":"/dsh/","category":"开发工具","icon":"🧠","accent":"#0A84FF","tags":["AI","Node","SPA"],"public":true,"runtime":"node","units":[],"match":["bin/dsh web"],"ports":[3080,13080],"dirs":["/home/ubuntu/.dsh"],"note":"服务器上最核心的开发入口","available":true,"httpStatus":200,"responseMs":43,"unavailableReason":null,"checkedAt":"2026-10-27T16:44:14.915Z","auto":false,"live":{"status":"running","processCount":1,"cpuPercent":0.5,"rssBytes":425201664,"diskBytes":587355587,"diskParts":[{"dir":"/home/ubuntu/.dsh","bytes":587355587,"error":null}],"processes":[{"pid":515956,"name":"node","cmd":"node /home/ubuntu/.nvm/versions/node/v22.23.0/bin/dsh web --host 127.0.0.1 --port 13080 --trusted-host 43.143.254.153 --","rssBytes":425201664,"cpuPercent":0.5,"uptimeSec":55061}],"uptimeSec":55061,"online":true,"statusCode":302,"responseMs":12,"healthError":null,"ports":[{"port":3080,"open":true},{"port":13080,"open":true}],"checkedAt":1793119474977}},{"id":"openclaw","name":"OpenClaw Control","desc":"OpenClaw 网关控制台，同时对外提供 OpenAI 兼容的 /v1 接口代理。当前是服务器上内存占用最大的服务。","url":"/o5fow7/","category":"开发工具","icon":"🐾","accent":"#5E5CE6","tags":["网关","API 代理"],"public":false,"runtime":"node","units":[],"match":["openclaw/dist/index.js"],"ports":[32059],"dirs":["/home/ubuntu/.openclaw"],"note":"控制台路径默认不挂到公网首页，避免暴露管理入口","available":true,"httpStatus":200,"responseMs":48,"unavailableReason":null,"checkedAt":"2026-10-27T16:44:14.915Z","auto":false,"live":{"status":"running","processCount":1,"cpuPercent":97.5,"rssBytes":1162485760,"diskBytes":1829550788,"diskParts":[{"dir":"/home/ubuntu/.openclaw","bytes":1829550788,"error":null}],"processes":[{"pid":2122183,"name":"node","cmd":"/home/ubuntu/.nvm/versions/node/v22.23.0/bin/node /home/ubuntu/.local/share/pnpm/global/5/.pnpm/openclaw@2026.6.9/node_m","rssBytes":1162485760,"cpuPercent":97.5,"uptimeSec":6157446}],"uptimeSec":6157446,"online":true,"statusCode":200,"responseMs":125,"healthError":null,"ports":[{"port":32059,"open":true}],"checkedAt":1793119474990}},{"id":"todolist","name":"待办清单","desc":"单文件前端 + Express 后端的待办应用，支持图片上传、周期待办自动重置，以及微信到期提醒。","url":"/todolist/","category":"效率工具","icon":"✅","accent":"#FF9F0A","tags":["pm2","微信提醒","周期待办"],"public":true,"runtime":"node","units":[],"match":["todolist/server.mjs"],"ports":[8790],"dirs":["/home/ubuntu/todolist"],"note":"由 pm2 托管","available":true,"httpStatus":200,"responseMs":13,"unavailableReason":null,"checkedAt":"2026-10-27T16:44:14.915Z","auto":false,"live":{"status":"running","processCount":1,"cpuPercent":0,"rssBytes":32116736,"diskBytes":2529466,"diskParts":[{"dir":"/home/ubuntu/todolist","bytes":2529466,"error":null}],"processes":[{"pid":3466116,"name":"node /home/ubun","cmd":"node /home/ubuntu/todolist/server.mjs","rssBytes":32116736,"cpuPercent":0,"uptimeSec":2115671}],"uptimeSec":2115671,"online":true,"statusCode":200,"responseMs":5,"healthError":null,"ports":[{"port":8790,"open":true}],"checkedAt":1793119475116}},{"id":"babyfood","name":"宝宝饮食记录","desc":"帮家长记录宝宝每日饮食的移动端应用：吃了什么、吃了多少、过敏反应，一屏看完。暖橙色卡片式界面。","url":"https://babyfood.lukezystudio.cn/","category":"宝宝记录","icon":"🍚","accent":"#FF9500","tags":["React","移动端","AI 识别"],"public":true,"runtime":"node","units":["babyfood-api.service"],"match":["baby-food-recorder-server/server.js"],"ports":[3003],"dirs":["/home/ubuntu/baby-food-recorder","/home/ubuntu/baby-food-recorder-server","/var/www/baby-food-recorder-sub"],"note":"","available":false,"httpStatus":null,"responseMs":null,"unavailableReason":"没有在 nginx 里找到这个地址","checkedAt":"2026-10-27T16:44:14.915Z","auto":false,"live":{"status":"running","processCount":1,"cpuPercent":0,"rssBytes":35475456,"diskBytes":92158478,"diskParts":[{"dir":"/home/ubuntu/baby-food-recorder","bytes":90836844,"error":null},{"dir":"/home/ubuntu/baby-food-recorder-server","bytes":707596,"error":null},{"dir":"/var/www/baby-food-recorder-sub","bytes":614038,"error":null}],"processes":[{"pid":3411606,"name":"node","cmd":"/home/ubuntu/.nvm/versions/node/v22.23.0/bin/node /home/ubuntu/baby-food-recorder-server/server.js","rssBytes":35475456,"cpuPercent":0,"uptimeSec":2127047}],"uptimeSec":2127047,"online":null,"statusCode":null,"responseMs":null,"healthError":null,"ports":[{"port":3003,"open":true}],"checkedAt":1793119475122}},{"id":"babyhealth","name":"宝宝健康成长记录","desc":"记录宝宝身高体重与生长曲线、发育情况、疫苗接种与日常健康。支持拍照识别儿保手册、接种证并批量导入历史记录。","url":"https://babyhealth.lukezystudio.cn/","category":"宝宝记录","icon":"📈","accent":"#FF6B6B","tags":["生长曲线","疫苗","OCR 导入"],"public":true,"runtime":"node","units":["babyhealth-api.service"],"match":["babyhealth/server/server.js"],"ports":[3004],"dirs":["/home/ubuntu/babyhealth","/var/www/babyhealth"],"note":"","available":false,"httpStatus":null,"responseMs":null,"unavailableReason":"没有在 nginx 里找到这个地址","checkedAt":"2026-10-27T16:44:14.915Z","auto":false,"live":{"status":"running","processCount":1,"cpuPercent":0,"rssBytes":22999040,"diskBytes":96333802,"diskParts":[{"dir":"/home/ubuntu/babyhealth","bytes":95934573,"error":null},{"dir":"/var/www/babyhealth","bytes":399229,"error":null}],"processes":[{"pid":2858985,"name":"node","cmd":"/home/ubuntu/.nvm/versions/node/v22.23.0/bin/node /home/ubuntu/babyhealth/server/server.js","rssBytes":22999040,"cpuPercent":0,"uptimeSec":2250940}],"uptimeSec":2250940,"online":null,"statusCode":null,"responseMs":null,"healthError":null,"ports":[{"port":3004,"open":true}],"checkedAt":1793119475122}},{"id":"night","name":"夜市增量","desc":"夜市主题的增量游戏。收入 = 数量层 × 单价层 × 倍数层 × 声望层，每个业态各有自己的卡牌牌组，抽到重复卡即升级。","url":"/night/","category":"游戏","icon":"🏮","accent":"#FF453A","tags":["增量游戏","卡牌"],"public":true,"runtime":"static","units":[],"match":["night-market-incremental"],"ports":[],"dirs":["/home/ubuntu/night-market-incremental"],"note":"","available":false,"httpStatus":403,"responseMs":null,"unavailableReason":"HTTP 403","checkedAt":"2026-10-27T16:44:14.915Z","auto":false,"live":{"status":"running","processCount":1,"cpuPercent":0,"rssBytes":37945344,"diskBytes":177689545,"diskParts":[{"dir":"/home/ubuntu/night-market-incremental","bytes":177689545,"error":null}],"processes":[{"pid":2178656,"name":"node","cmd":"/home/ubuntu/.nvm/versions/node/v22.23.0/bin/node /home/ubuntu/night-market-incremental/tools/docs/serve.mjs --port 8181","rssBytes":37945344,"cpuPercent":0,"uptimeSec":573898}],"uptimeSec":573898,"online":false,"statusCode":403,"responseMs":1,"healthError":null,"ports":[],"checkedAt":1793119475122}},{"id":"dsh-apk","name":"DSH Android 客户端","desc":"DeepSeek Harness 安卓客户端 v1.6.1：恢复全屏 + App 内直接下载文档/图片等文件。","url":"/dsh-apk/","category":"开发工具","icon":"📦","accent":"#64D2FF","tags":["APK","下载"],"public":true,"runtime":"static","units":[],"match":[],"ports":[],"dirs":["/var/www/dsh-apk/2"],"note":"1.6.0 可在 App 内直接更新；1.5.0 需先卸载（签名不同）","available":true,"httpStatus":200,"responseMs":14,"unavailableReason":null,"checkedAt":"2026-10-27T16:44:14.915Z","auto":false,"live":{"status":"static","processCount":0,"cpuPercent":0,"rssBytes":0,"diskBytes":136834,"diskParts":[{"dir":"/var/www/dsh-apk/2","bytes":136834,"error":null}],"processes":[],"uptimeSec":0,"online":true,"statusCode":200,"responseMs":1,"healthError":null,"ports":[],"checkedAt":1793119475123}},{"id":"opencode","name":"OpenCode Web","desc":"浏览器里的 AI 编码终端：8443 端口上的 OpenCode 服务端 Web UI，Basic 认证保护。","url":"/opencode","category":"开发工具","icon":"🖥️","accent":"#5E5CE6","tags":["OpenCode","终端","Basic 认证"],"public":true,"runtime":"node","units":[],"match":[],"ports":[8443],"dirs":["/home/ubuntu/opencode-workspace"],"note":"需要 Basic 认证","available":true,"httpStatus":302,"responseMs":26,"unavailableReason":null,"checkedAt":"2026-10-27T16:44:14.915Z","auto":false,"live":{"status":"running","processCount":0,"cpuPercent":0,"rssBytes":0,"diskBytes":7211,"diskParts":[{"dir":"/home/ubuntu/opencode-workspace","bytes":7211,"error":null}],"processes":[],"uptimeSec":0,"online":true,"statusCode":302,"responseMs":2,"healthError":null,"ports":[{"port":8443,"open":true}],"checkedAt":1793119475124}},{"id":"portal-apk","name":"项目中枢 安卓客户端","desc":"把项目中枢首页打包成 App：打开即进，页面随服务器热更，壳本身也能自更新。","url":"/portal-apk/","category":"开发工具","icon":"📱","accent":"#0A84FF","tags":["APK","WebView","热更"],"public":true,"runtime":"static","units":[],"match":[],"ports":[],"dirs":["/var/www/portal-apk"],"note":"直接下载安装包","available":true,"httpStatus":200,"responseMs":9,"unavailableReason":null,"checkedAt":"2026-10-27T16:44:14.915Z","auto":false,"live":{"status":"static","processCount":0,"cpuPercent":0,"rssBytes":0,"diskBytes":47297,"diskParts":[{"dir":"/var/www/portal-apk","bytes":47297,"error":null}],"processes":[],"uptimeSec":0,"online":true,"statusCode":200,"responseMs":2,"healthError":null,"ports":[],"checkedAt":1793119475126}},{"id":"auto-tutorials","name":"教程与文档","desc":"云服务器上所有教程、客户端下载与工作台入口的汇总页。一个链接，全部到达。","url":"/tutorials/","category":"自动发现","icon":"🗺️","accent":"#FF6B6B","tags":["自动发现","静态站点"],"public":true,"runtime":"static","units":[],"match":[],"ports":[],"dirs":["/var/www/tutorials"],"note":"","auto":true,"available":true,"httpStatus":200,"responseMs":1,"checkedAt":"2026-10-27T16:44:14.915Z","unavailableReason":null,"live":{"status":"static","processCount":0,"cpuPercent":0,"rssBytes":0,"diskBytes":1682004,"diskParts":[{"dir":"/var/www/tutorials","bytes":1682004,"error":null}],"processes":[],"uptimeSec":0,"online":true,"statusCode":200,"responseMs":3,"healthError":null,"ports":[],"checkedAt":1793119475128}},{"id":"auto-night-docs","name":"设计文档","desc":"/night/docs 由 nginx 配置自动发现","url":"/night/docs/","category":"自动发现","icon":"🔭","accent":"#FF9F0A","tags":["自动发现","反向代理"],"public":true,"runtime":"node","units":[],"match":[],"ports":[8181],"dirs":[],"note":"","auto":true,"available":true,"httpStatus":200,"responseMs":10,"checkedAt":"2026-10-27T16:44:14.915Z","unavailableReason":null,"live":{"status":"running","processCount":0,"cpuPercent":0,"rssBytes":0,"diskBytes":0,"diskParts":[],"processes":[],"uptimeSec":0,"online":true,"statusCode":200,"responseMs":7,"healthError":null,"ports":[{"port":8181,"open":true}],"checkedAt":1793119475131}},{"id":"auto-docs-apk","name":"设计文档 · 安卓版","desc":"/docs-apk 由 nginx 配置自动发现","url":"/docs-apk/","category":"自动发现","icon":"🌐","accent":"#0A84FF","tags":["自动发现","静态站点"],"public":true,"runtime":"static","units":[],"match":[],"ports":[],"dirs":["/var/www/docs-apk"],"note":"","auto":true,"available":true,"httpStatus":200,"responseMs":14,"checkedAt":"2026-10-27T16:44:14.915Z","unavailableReason":null,"live":{"status":"static","processCount":0,"cpuPercent":0,"rssBytes":0,"diskBytes":70995,"diskParts":[{"dir":"/var/www/docs-apk","bytes":70995,"error":null}],"processes":[],"uptimeSec":0,"online":true,"statusCode":200,"responseMs":1,"healthError":null,"ports":[],"checkedAt":1793119475138}},{"id":"auto-image-gen-doc","name":"生图工具：插件与配置教程 · dsh-studio-image-gen","desc":"/image-gen-doc 由 nginx 配置自动发现","url":"/image-gen-doc/","category":"自动发现","icon":"🗺️","accent":"#FF453A","tags":["自动发现","静态站点"],"public":true,"runtime":"static","units":[],"match":[],"ports":[],"dirs":["/var/www/dsh-image-gen-doc"],"note":"","auto":true,"available":true,"httpStatus":200,"responseMs":3,"checkedAt":"2026-10-27T16:44:14.915Z","unavailableReason":null,"live":{"status":"static","processCount":0,"cpuPercent":0,"rssBytes":0,"diskBytes":42513,"diskParts":[{"dir":"/var/www/dsh-image-gen-doc","bytes":42513,"error":null}],"processes":[],"uptimeSec":0,"online":true,"statusCode":200,"responseMs":3,"healthError":null,"ports":[],"checkedAt":1793119475139}},{"id":"auto-xhs-guide","name":"小红书发帖实战手册 · 封面、标题、冷启动与限流自查","desc":"一份照着就能发的 小红书 发布 SOP：分发四道关、标题公式、封面模板、正文结构、话题与时段、发布后 2 小时冷启动、限流自查表、30 天计划。","url":"/xhs-guide/","category":"自动发现","icon":"🧪","accent":"#FF6B6B","tags":["自动发现","静态站点"],"public":true,"runtime":"static","units":[],"match":[],"ports":[],"dirs":["/var/www/xhs-guide"],"note":"","auto":true,"available":true,"httpStatus":200,"responseMs":1,"checkedAt":"2026-10-27T16:44:14.915Z","unavailableReason":null,"live":{"status":"static","processCount":0,"cpuPercent":0,"rssBytes":0,"diskBytes":39225,"diskParts":[{"dir":"/var/www/xhs-guide","bytes":39225,"error":null}],"processes":[],"uptimeSec":0,"online":true,"statusCode":200,"responseMs":2,"healthError":null,"ports":[],"checkedAt":1793119475143}},{"id":"auto-feed-apk","name":"ainewsdetector · 安卓版","desc":"/feed-apk 由 nginx 配置自动发现","url":"/feed-apk/","category":"自动发现","icon":"🍀","accent":"#0A84FF","tags":["自动发现","静态站点"],"public":true,"runtime":"static","units":[],"match":[],"ports":[],"dirs":["/var/www/feed-apk"],"note":"","auto":true,"available":true,"httpStatus":200,"responseMs":12,"checkedAt":"2026-10-27T16:44:14.915Z","unavailableReason":null,"live":{"status":"static","processCount":0,"cpuPercent":0,"rssBytes":0,"diskBytes":425311,"diskParts":[{"dir":"/var/www/feed-apk","bytes":425311,"error":null}],"processes":[],"uptimeSec":0,"online":true,"statusCode":200,"responseMs":3,"healthError":null,"ports":[],"checkedAt":1793119475145}},{"id":"auto-dsh-mobile-doc","name":"DSH 云服务器部署 + 手机 APK 联动 · 完整教程","desc":"从一台空的 Ubuntu 云服务器开始，部署 DeepSeek Harness，加上登录网关与 nginx 反代，再配一个 19KB 的安卓 WebView 外壳，实现手机免重装热更。含真实排错记录与机器可读摘要。","url":"/dsh-mobile-doc/","category":"自动发现","icon":"🎨","accent":"#5E5CE6","tags":["自动发现","静态站点"],"public":true,"runtime":"static","units":[],"match":[],"ports":[],"dirs":["/var/www/dsh-mobile-doc"],"note":"","auto":true,"available":true,"httpStatus":200,"responseMs":3,"checkedAt":"2026-10-27T16:44:14.915Z","unavailableReason":null,"live":{"status":"static","processCount":0,"cpuPercent":0,"rssBytes":0,"diskBytes":437087,"diskParts":[{"dir":"/var/www/dsh-mobile-doc","bytes":437087,"error":null}],"processes":[],"uptimeSec":0,"online":true,"statusCode":200,"responseMs":5,"healthError":null,"ports":[],"checkedAt":1793119475148}},{"id":"auto-nebula","name":"NEBULA · 粒子场","desc":"Three.js + GPU 粒子：跟随手指散开、聚拢的物理阻尼粒子场","url":"/nebula/","category":"自动发现","icon":"📝","accent":"#0A84FF","tags":["自动发现","静态站点"],"public":true,"runtime":"static","units":[],"match":[],"ports":[],"dirs":["/var/www/nebula"],"note":"","auto":true,"available":true,"httpStatus":200,"responseMs":1,"checkedAt":"2026-10-27T16:44:14.915Z","unavailableReason":null,"live":{"status":"static","processCount":0,"cpuPercent":0,"rssBytes":0,"diskBytes":764838,"diskParts":[{"dir":"/var/www/nebula","bytes":764838,"error":null}],"processes":[],"uptimeSec":0,"online":true,"statusCode":200,"responseMs":1,"healthError":null,"ports":[],"checkedAt":1793119475153}},{"id":"auto-opencode-apk","name":"OpenCode 手机端 · 下载","desc":"/opencode-apk 由 nginx 配置自动发现","url":"/opencode-apk/","category":"自动发现","icon":"🧪","accent":"#FF9F0A","tags":["自动发现","静态站点"],"public":true,"runtime":"static","units":[],"match":[],"ports":[],"dirs":["/var/www/opencode-apk"],"note":"","auto":true,"available":true,"httpStatus":200,"responseMs":4,"checkedAt":"2026-10-27T16:44:14.915Z","unavailableReason":null,"live":{"status":"static","processCount":0,"cpuPercent":0,"rssBytes":0,"diskBytes":46052,"diskParts":[{"dir":"/var/www/opencode-apk","bytes":46052,"error":null}],"processes":[],"uptimeSec":0,"online":true,"statusCode":200,"responseMs":1,"healthError":null,"ports":[],"checkedAt":1793119475154}},{"id":"auto-dsh-win-doc","name":"Windows 端部署说明 · dsh-win-tunnel","desc":"/dsh-win-doc 由 nginx 配置自动发现","url":"/dsh-win-doc/","category":"自动发现","icon":"🧩","accent":"#64D2FF","tags":["自动发现","静态站点"],"public":true,"runtime":"static","units":[],"match":[],"ports":[],"dirs":["/var/www"],"note":"","auto":true,"available":true,"httpStatus":200,"responseMs":4,"checkedAt":"2026-10-27T16:44:14.915Z","unavailableReason":null,"live":{"status":"static","processCount":0,"cpuPercent":0,"rssBytes":0,"diskBytes":108806079,"diskParts":[{"dir":"/var/www","bytes":108806079,"error":null}],"processes":[],"uptimeSec":0,"online":true,"statusCode":200,"responseMs":1,"healthError":null,"ports":[],"checkedAt":1793119475155}}],"services":[{"id":"svc-nginx","name":"Nginx 反向代理","desc":"所有站点与反向代理的统一入口，负责 HTTPS、静态资源与各服务分流。","category":"后台服务","icon":"🛡️","accent":"#30D158","public":false,"runtime":"native","units":["nginx.service"],"match":["nginx"],"ports":[80,443],"dirs":["/etc/nginx","/var/log/nginx"],"note":"本平台的载体","live":{"status":"running","processCount":5,"cpuPercent":0,"rssBytes":53096448,"diskBytes":24278362,"diskParts":[{"dir":"/etc/nginx","bytes":172593,"error":null},{"dir":"/var/log/nginx","bytes":24105769,"error":null}],"processes":[{"pid":749827,"name":"nginx","cmd":"nginx: worker process","rssBytes":12951552,"cpuPercent":0,"uptimeSec":10169},{"pid":749828,"name":"nginx","cmd":"nginx: worker process","rssBytes":12701696,"cpuPercent":0,"uptimeSec":10169},{"pid":717275,"name":"nginx","cmd":"nginx: worker process","rssBytes":11501568,"cpuPercent":0,"uptimeSec":16273},{"pid":1487157,"name":"nginx","cmd":"nginx: master process /usr/sbin/nginx -g daemon on; master_process on;","rssBytes":10625024,"cpuPercent":0,"uptimeSec":7096094},{"pid":287926,"name":"nginx","cmd":"nginx: worker process","rssBytes":5316608,"cpuPercent":0,"uptimeSec":97872}],"uptimeSec":7096094,"online":null,"statusCode":null,"responseMs":null,"healthError":null,"ports":[{"port":80,"open":true},{"port":443,"open":true}],"checkedAt":1793119475156}}]}