{"generatedAt":"2026-09-28T07:30:03.236Z","meta":{"intervalMin":30,"retentionDays":90},"summary":{"online":8,"total":8},"sites":[{"id":"home","kind":"site","name":"amomorning.com","logotype":null,"alias":null,"desc":"Personal homepage — research, writing and selected work.","url":"https://amomorning.com/","web":{"ok":true,"ms":89,"status":200,"error":null},"cert":{"days":89,"state":"ok"},"backend":[],"uptime":{"d7":1,"d30":1,"lat24":92,"bars":[{"d":"2026-08-30","r":null,"ok":0,"tot":0},{"d":"2026-08-31","r":null,"ok":0,"tot":0},{"d":"2026-09-01","r":null,"ok":0,"tot":0},{"d":"2026-09-02","r":null,"ok":0,"tot":0},{"d":"2026-09-03","r":null,"ok":0,"tot":0},{"d":"2026-09-04","r":null,"ok":0,"tot":0},{"d":"2026-09-05","r":null,"ok":0,"tot":0},{"d":"2026-09-06","r":null,"ok":0,"tot":0},{"d":"2026-09-07","r":null,"ok":0,"tot":0},{"d":"2026-09-08","r":null,"ok":0,"tot":0},{"d":"2026-09-09","r":null,"ok":0,"tot":0},{"d":"2026-09-10","r":null,"ok":0,"tot":0},{"d":"2026-09-11","r":null,"ok":0,"tot":0},{"d":"2026-09-12","r":null,"ok":0,"tot":0},{"d":"2026-09-13","r":null,"ok":0,"tot":0},{"d":"2026-09-14","r":null,"ok":0,"tot":0},{"d":"2026-09-15","r":null,"ok":0,"tot":0},{"d":"2026-09-16","r":null,"ok":0,"tot":0},{"d":"2026-09-17","r":null,"ok":0,"tot":0},{"d":"2026-09-18","r":null,"ok":0,"tot":0},{"d":"2026-09-19","r":null,"ok":0,"tot":0},{"d":"2026-09-20","r":null,"ok":0,"tot":0},{"d":"2026-09-21","r":null,"ok":0,"tot":0},{"d":"2026-09-22","r":null,"ok":0,"tot":0},{"d":"2026-09-23","r":1,"ok":2,"tot":2},{"d":"2026-09-24","r":1,"ok":49,"tot":49},{"d":"2026-09-25","r":1,"ok":48,"tot":48},{"d":"2026-09-26","r":1,"ok":48,"tot":48},{"d":"2026-09-27","r":1,"ok":48,"tot":48},{"d":"2026-09-28","r":1,"ok":19,"tot":19}]}},{"id":"blog","kind":"site","name":"blog","logotype":null,"alias":null,"desc":"Notes and essays on computation, architecture and tools.","url":"https://blog.amomorning.com/","web":{"ok":true,"ms":40,"status":200,"error":null},"cert":{"days":89,"state":"ok"},"backend":[],"uptime":{"d7":1,"d30":1,"lat24":42,"bars":[{"d":"2026-08-30","r":null,"ok":0,"tot":0},{"d":"2026-08-31","r":null,"ok":0,"tot":0},{"d":"2026-09-01","r":null,"ok":0,"tot":0},{"d":"2026-09-02","r":null,"ok":0,"tot":0},{"d":"2026-09-03","r":null,"ok":0,"tot":0},{"d":"2026-09-04","r":null,"ok":0,"tot":0},{"d":"2026-09-05","r":null,"ok":0,"tot":0},{"d":"2026-09-06","r":null,"ok":0,"tot":0},{"d":"2026-09-07","r":null,"ok":0,"tot":0},{"d":"2026-09-08","r":null,"ok":0,"tot":0},{"d":"2026-09-09","r":null,"ok":0,"tot":0},{"d":"2026-09-10","r":null,"ok":0,"tot":0},{"d":"2026-09-11","r":null,"ok":0,"tot":0},{"d":"2026-09-12","r":null,"ok":0,"tot":0},{"d":"2026-09-13","r":null,"ok":0,"tot":0},{"d":"2026-09-14","r":null,"ok":0,"tot":0},{"d":"2026-09-15","r":null,"ok":0,"tot":0},{"d":"2026-09-16","r":null,"ok":0,"tot":0},{"d":"2026-09-17","r":null,"ok":0,"tot":0},{"d":"2026-09-18","r":null,"ok":0,"tot":0},{"d":"2026-09-19","r":null,"ok":0,"tot":0},{"d":"2026-09-20","r":null,"ok":0,"tot":0},{"d":"2026-09-21","r":null,"ok":0,"tot":0},{"d":"2026-09-22","r":null,"ok":0,"tot":0},{"d":"2026-09-23","r":1,"ok":2,"tot":2},{"d":"2026-09-24","r":1,"ok":49,"tot":49},{"d":"2026-09-25","r":1,"ok":48,"tot":48},{"d":"2026-09-26","r":1,"ok":48,"tot":48},{"d":"2026-09-27","r":1,"ok":48,"tot":48},{"d":"2026-09-28","r":1,"ok":19,"tot":19}]}},{"id":"syngia","kind":"app","name":"Syngia","logotype":null,"alias":null,"desc":"Browser-based AI device platform — remote access to dev machines from anywhere.","url":"https://app.amomorning.com/syngia/","web":{"ok":true,"ms":48,"status":200,"error":null},"cert":{"days":89,"state":"ok"},"backend":[{"name":"server","configured":true,"ok":true,"ms":11,"status":404,"d7":1},{"name":"host agent","configured":true,"ok":true,"ms":10,"status":200,"d7":1}],"uptime":{"d7":1,"d30":1,"lat24":36,"bars":[{"d":"2026-08-30","r":null,"ok":0,"tot":0},{"d":"2026-08-31","r":null,"ok":0,"tot":0},{"d":"2026-09-01","r":null,"ok":0,"tot":0},{"d":"2026-09-02","r":null,"ok":0,"tot":0},{"d":"2026-09-03","r":null,"ok":0,"tot":0},{"d":"2026-09-04","r":null,"ok":0,"tot":0},{"d":"2026-09-05","r":null,"ok":0,"tot":0},{"d":"2026-09-06","r":null,"ok":0,"tot":0},{"d":"2026-09-07","r":null,"ok":0,"tot":0},{"d":"2026-09-08","r":null,"ok":0,"tot":0},{"d":"2026-09-09","r":null,"ok":0,"tot":0},{"d":"2026-09-10","r":null,"ok":0,"tot":0},{"d":"2026-09-11","r":null,"ok":0,"tot":0},{"d":"2026-09-12","r":null,"ok":0,"tot":0},{"d":"2026-09-13","r":null,"ok":0,"tot":0},{"d":"2026-09-14","r":null,"ok":0,"tot":0},{"d":"2026-09-15","r":null,"ok":0,"tot":0},{"d":"2026-09-16","r":null,"ok":0,"tot":0},{"d":"2026-09-17","r":null,"ok":0,"tot":0},{"d":"2026-09-18","r":null,"ok":0,"tot":0},{"d":"2026-09-19","r":null,"ok":0,"tot":0},{"d":"2026-09-20","r":null,"ok":0,"tot":0},{"d":"2026-09-21","r":null,"ok":0,"tot":0},{"d":"2026-09-22","r":null,"ok":0,"tot":0},{"d":"2026-09-23","r":1,"ok":2,"tot":2},{"d":"2026-09-24","r":1,"ok":49,"tot":49},{"d":"2026-09-25","r":1,"ok":48,"tot":48},{"d":"2026-09-26","r":1,"ok":48,"tot":48},{"d":"2026-09-27","r":1,"ok":48,"tot":48},{"d":"2026-09-28","r":1,"ok":19,"tot":19}]}},{"id":"cook","kind":"app","name":"Cook","logotype":"COOK P{LR}OG","alias":null,"desc":"Personal cooking archive — recipes, food photo log and weekly meal plans.","url":"https://app.amomorning.com/cook/","web":{"ok":true,"ms":19,"status":200,"error":null},"cert":{"days":89,"state":"ok"},"backend":[{"name":"node api","configured":true,"ok":true,"ms":3,"status":200,"d7":1}],"uptime":{"d7":1,"d30":1,"lat24":12,"bars":[{"d":"2026-08-30","r":null,"ok":0,"tot":0},{"d":"2026-08-31","r":null,"ok":0,"tot":0},{"d":"2026-09-01","r":null,"ok":0,"tot":0},{"d":"2026-09-02","r":null,"ok":0,"tot":0},{"d":"2026-09-03","r":null,"ok":0,"tot":0},{"d":"2026-09-04","r":null,"ok":0,"tot":0},{"d":"2026-09-05","r":null,"ok":0,"tot":0},{"d":"2026-09-06","r":null,"ok":0,"tot":0},{"d":"2026-09-07","r":null,"ok":0,"tot":0},{"d":"2026-09-08","r":null,"ok":0,"tot":0},{"d":"2026-09-09","r":null,"ok":0,"tot":0},{"d":"2026-09-10","r":null,"ok":0,"tot":0},{"d":"2026-09-11","r":null,"ok":0,"tot":0},{"d":"2026-09-12","r":null,"ok":0,"tot":0},{"d":"2026-09-13","r":null,"ok":0,"tot":0},{"d":"2026-09-14","r":null,"ok":0,"tot":0},{"d":"2026-09-15","r":null,"ok":0,"tot":0},{"d":"2026-09-16","r":null,"ok":0,"tot":0},{"d":"2026-09-17","r":null,"ok":0,"tot":0},{"d":"2026-09-18","r":null,"ok":0,"tot":0},{"d":"2026-09-19","r":null,"ok":0,"tot":0},{"d":"2026-09-20","r":null,"ok":0,"tot":0},{"d":"2026-09-21","r":null,"ok":0,"tot":0},{"d":"2026-09-22","r":null,"ok":0,"tot":0},{"d":"2026-09-23","r":1,"ok":2,"tot":2},{"d":"2026-09-24","r":1,"ok":49,"tot":49},{"d":"2026-09-25","r":1,"ok":48,"tot":48},{"d":"2026-09-26","r":1,"ok":48,"tot":48},{"d":"2026-09-27","r":1,"ok":48,"tot":48},{"d":"2026-09-28","r":1,"ok":19,"tot":19}]}},{"id":"teach-web","kind":"app","name":"Teach Web","logotype":null,"alias":null,"desc":"A personal notebook in the shape of lecture notes.","url":"https://app.amomorning.com/teach-web/","web":{"ok":true,"ms":30,"status":200,"error":null},"cert":{"days":89,"state":"ok"},"backend":[],"uptime":{"d7":1,"d30":1,"lat24":42,"bars":[{"d":"2026-08-30","r":null,"ok":0,"tot":0},{"d":"2026-08-31","r":null,"ok":0,"tot":0},{"d":"2026-09-01","r":null,"ok":0,"tot":0},{"d":"2026-09-02","r":null,"ok":0,"tot":0},{"d":"2026-09-03","r":null,"ok":0,"tot":0},{"d":"2026-09-04","r":null,"ok":0,"tot":0},{"d":"2026-09-05","r":null,"ok":0,"tot":0},{"d":"2026-09-06","r":null,"ok":0,"tot":0},{"d":"2026-09-07","r":null,"ok":0,"tot":0},{"d":"2026-09-08","r":null,"ok":0,"tot":0},{"d":"2026-09-09","r":null,"ok":0,"tot":0},{"d":"2026-09-10","r":null,"ok":0,"tot":0},{"d":"2026-09-11","r":null,"ok":0,"tot":0},{"d":"2026-09-12","r":null,"ok":0,"tot":0},{"d":"2026-09-13","r":null,"ok":0,"tot":0},{"d":"2026-09-14","r":null,"ok":0,"tot":0},{"d":"2026-09-15","r":null,"ok":0,"tot":0},{"d":"2026-09-16","r":null,"ok":0,"tot":0},{"d":"2026-09-17","r":null,"ok":0,"tot":0},{"d":"2026-09-18","r":null,"ok":0,"tot":0},{"d":"2026-09-19","r":null,"ok":0,"tot":0},{"d":"2026-09-20","r":null,"ok":0,"tot":0},{"d":"2026-09-21","r":null,"ok":0,"tot":0},{"d":"2026-09-22","r":null,"ok":0,"tot":0},{"d":"2026-09-23","r":1,"ok":2,"tot":2},{"d":"2026-09-24","r":1,"ok":49,"tot":49},{"d":"2026-09-25","r":1,"ok":48,"tot":48},{"d":"2026-09-26","r":1,"ok":48,"tot":48},{"d":"2026-09-27","r":1,"ok":48,"tot":48},{"d":"2026-09-28","r":1,"ok":19,"tot":19}]}},{"id":"ganzhi","kind":"app","name":"AI 测字","logotype":null,"alias":"Ching Divination","desc":"Character divination (测字), assisted by a language model.","url":"https://app.amomorning.com/ganzhi/","web":{"ok":true,"ms":10,"status":200,"error":null},"cert":{"days":89,"state":"ok"},"backend":[{"name":"python api","configured":true,"ok":true,"ms":8,"status":200,"d7":1},{"name":"ai api","configured":true,"ok":true,"ms":1105,"status":200,"d7":1}],"uptime":{"d7":1,"d30":1,"lat24":10,"bars":[{"d":"2026-08-30","r":null,"ok":0,"tot":0},{"d":"2026-08-31","r":null,"ok":0,"tot":0},{"d":"2026-09-01","r":null,"ok":0,"tot":0},{"d":"2026-09-02","r":null,"ok":0,"tot":0},{"d":"2026-09-03","r":null,"ok":0,"tot":0},{"d":"2026-09-04","r":null,"ok":0,"tot":0},{"d":"2026-09-05","r":null,"ok":0,"tot":0},{"d":"2026-09-06","r":null,"ok":0,"tot":0},{"d":"2026-09-07","r":null,"ok":0,"tot":0},{"d":"2026-09-08","r":null,"ok":0,"tot":0},{"d":"2026-09-09","r":null,"ok":0,"tot":0},{"d":"2026-09-10","r":null,"ok":0,"tot":0},{"d":"2026-09-11","r":null,"ok":0,"tot":0},{"d":"2026-09-12","r":null,"ok":0,"tot":0},{"d":"2026-09-13","r":null,"ok":0,"tot":0},{"d":"2026-09-14","r":null,"ok":0,"tot":0},{"d":"2026-09-15","r":null,"ok":0,"tot":0},{"d":"2026-09-16","r":null,"ok":0,"tot":0},{"d":"2026-09-17","r":null,"ok":0,"tot":0},{"d":"2026-09-18","r":null,"ok":0,"tot":0},{"d":"2026-09-19","r":null,"ok":0,"tot":0},{"d":"2026-09-20","r":null,"ok":0,"tot":0},{"d":"2026-09-21","r":null,"ok":0,"tot":0},{"d":"2026-09-22","r":null,"ok":0,"tot":0},{"d":"2026-09-23","r":1,"ok":2,"tot":2},{"d":"2026-09-24","r":1,"ok":49,"tot":49},{"d":"2026-09-25","r":1,"ok":48,"tot":48},{"d":"2026-09-26","r":1,"ok":48,"tot":48},{"d":"2026-09-27","r":1,"ok":48,"tot":48},{"d":"2026-09-28","r":1,"ok":19,"tot":19}]}},{"id":"code","kind":"site","name":"code","logotype":null,"alias":null,"desc":"code-server — VS Code running in the browser, for remote development.","url":"https://code.amomorning.com/","web":{"ok":true,"ms":63,"status":200,"error":null},"cert":{"days":89,"state":"ok"},"backend":[],"uptime":{"d7":1,"d30":1,"lat24":59,"bars":[{"d":"2026-08-30","r":null,"ok":0,"tot":0},{"d":"2026-08-31","r":null,"ok":0,"tot":0},{"d":"2026-09-01","r":null,"ok":0,"tot":0},{"d":"2026-09-02","r":null,"ok":0,"tot":0},{"d":"2026-09-03","r":null,"ok":0,"tot":0},{"d":"2026-09-04","r":null,"ok":0,"tot":0},{"d":"2026-09-05","r":null,"ok":0,"tot":0},{"d":"2026-09-06","r":null,"ok":0,"tot":0},{"d":"2026-09-07","r":null,"ok":0,"tot":0},{"d":"2026-09-08","r":null,"ok":0,"tot":0},{"d":"2026-09-09","r":null,"ok":0,"tot":0},{"d":"2026-09-10","r":null,"ok":0,"tot":0},{"d":"2026-09-11","r":null,"ok":0,"tot":0},{"d":"2026-09-12","r":null,"ok":0,"tot":0},{"d":"2026-09-13","r":null,"ok":0,"tot":0},{"d":"2026-09-14","r":null,"ok":0,"tot":0},{"d":"2026-09-15","r":null,"ok":0,"tot":0},{"d":"2026-09-16","r":null,"ok":0,"tot":0},{"d":"2026-09-17","r":null,"ok":0,"tot":0},{"d":"2026-09-18","r":null,"ok":0,"tot":0},{"d":"2026-09-19","r":null,"ok":0,"tot":0},{"d":"2026-09-20","r":null,"ok":0,"tot":0},{"d":"2026-09-21","r":null,"ok":0,"tot":0},{"d":"2026-09-22","r":null,"ok":0,"tot":0},{"d":"2026-09-23","r":null,"ok":0,"tot":0},{"d":"2026-09-24","r":null,"ok":0,"tot":0},{"d":"2026-09-25","r":null,"ok":0,"tot":0},{"d":"2026-09-26","r":null,"ok":0,"tot":0},{"d":"2026-09-27","r":null,"ok":0,"tot":0},{"d":"2026-09-28","r":1,"ok":5,"tot":5}]}},{"id":"model","kind":"site","name":"model","logotype":null,"alias":null,"desc":"3D model gallery — geometry and block models rendered in the browser.","url":"https://model.amomorning.com/","web":{"ok":true,"ms":34,"status":200,"error":null},"cert":{"days":89,"state":"ok"},"backend":[],"uptime":{"d7":1,"d30":1,"lat24":44,"bars":[{"d":"2026-08-30","r":null,"ok":0,"tot":0},{"d":"2026-08-31","r":null,"ok":0,"tot":0},{"d":"2026-09-01","r":null,"ok":0,"tot":0},{"d":"2026-09-02","r":null,"ok":0,"tot":0},{"d":"2026-09-03","r":null,"ok":0,"tot":0},{"d":"2026-09-04","r":null,"ok":0,"tot":0},{"d":"2026-09-05","r":null,"ok":0,"tot":0},{"d":"2026-09-06","r":null,"ok":0,"tot":0},{"d":"2026-09-07","r":null,"ok":0,"tot":0},{"d":"2026-09-08","r":null,"ok":0,"tot":0},{"d":"2026-09-09","r":null,"ok":0,"tot":0},{"d":"2026-09-10","r":null,"ok":0,"tot":0},{"d":"2026-09-11","r":null,"ok":0,"tot":0},{"d":"2026-09-12","r":null,"ok":0,"tot":0},{"d":"2026-09-13","r":null,"ok":0,"tot":0},{"d":"2026-09-14","r":null,"ok":0,"tot":0},{"d":"2026-09-15","r":null,"ok":0,"tot":0},{"d":"2026-09-16","r":null,"ok":0,"tot":0},{"d":"2026-09-17","r":null,"ok":0,"tot":0},{"d":"2026-09-18","r":null,"ok":0,"tot":0},{"d":"2026-09-19","r":null,"ok":0,"tot":0},{"d":"2026-09-20","r":null,"ok":0,"tot":0},{"d":"2026-09-21","r":null,"ok":0,"tot":0},{"d":"2026-09-22","r":null,"ok":0,"tot":0},{"d":"2026-09-23","r":null,"ok":0,"tot":0},{"d":"2026-09-24","r":null,"ok":0,"tot":0},{"d":"2026-09-25","r":null,"ok":0,"tot":0},{"d":"2026-09-26","r":null,"ok":0,"tot":0},{"d":"2026-09-27","r":null,"ok":0,"tot":0},{"d":"2026-09-28","r":1,"ok":5,"tot":5}]}}]}