Commit Graph

108 Commits

Author SHA1 Message Date
c24c0fac45 Refactor env vars: rename DATA_DIR to DATA_ROOT, add APP_URL 2026-03-01 21:21:23 -08:00
baa3712fa2 Add getApp command and gitUrl helper 2026-03-01 14:57:39 -08:00
56db56976b re-do the whole thing on git 2026-03-01 13:29:01 -08:00
64d5295fde Merge branch 'global-tools' 2026-03-01 10:16:01 -08:00
82c8fc42da Add dashboard support for tool apps with iframe embedding 2026-03-01 10:10:49 -08:00
52cf99b56d Replace global with apps and dashboard app properties 2026-03-01 09:48:36 -08:00
fdc14a5021 fix race condition 2026-03-01 09:40:35 -08:00
c7f8f09ba9 Add global field to filter tool tabs 2026-03-01 09:35:05 -08:00
Chris Wanstrath
74f9062a89 fix reconnect 2026-02-27 15:35:49 -08:00
Chris Wanstrath
55316027c0 heartbeat 2026-02-27 15:14:43 -08:00
45b1903e6b Use URL-based routing instead of local state 2026-02-26 19:43:18 -08:00
98a1c1ad97 Add client-side router, use URLs for navigation 2026-02-26 11:40:50 -08:00
87d0ff50c1 Centralize hostname config in shared module 2026-02-25 12:55:41 -08:00
0499060676 Use dynamic hostname instead of toes.local 2026-02-25 12:11:43 -08:00
51e42dc538 Fix memory usage via /proc/meminfo on Linux 2026-02-24 19:05:04 -08:00
236e8ff38e normalize app names to valid subdomains via toSubdomain utility 2026-02-19 20:04:23 -08:00
4aebd6a087 ensure app data directory exists before spawning process 2026-02-19 19:51:39 -08:00
7ea806b778 Add paw print emoji to install.sh status messages 2026-02-19 19:20:12 -08:00
aaf4660816 Delegate build logic to external script, simplify build target representation 2026-02-19 19:16:12 -08:00
18cf4243fa Build CLI binaries on-demand when requested via /dist/:file endpoint 2026-02-19 13:33:58 -08:00
971ebef21c dashboard 2026-02-19 09:28:15 -08:00
071f1a02b5 install toes cli 2026-02-18 20:46:56 -08:00
c5672e57bd cleanup 2026-02-17 14:47:47 -08:00
888f12a8f1 tweak proxy 2026-02-16 21:04:11 -08:00
96083b640f all apps are http apps 2026-02-16 13:25:24 -08:00
fecc074757 fix proxy bugs 2026-02-16 13:10:04 -08:00
3736202020 again 2026-02-16 09:43:47 -08:00
82ff55ba99 guess and check 2026-02-16 09:36:10 -08:00
1dc7b76b31 proxy fixes 2026-02-16 09:34:19 -08:00
86dacb0a74 subdomains 2026-02-15 17:30:41 -08:00
f085d78fc1 fix starting and restarts 2026-02-15 13:51:58 -08:00
6f2f07059d we handle reconnect elsewhere 2026-02-15 12:16:27 -08:00
6ba3cdaf14 share CLI, persistent tunnels 2026-02-15 10:33:03 -08:00
f3cc26252c better status check 2026-02-15 09:10:04 -08:00
1015e20cf9 [cron] reload jobs on renames/deploys 2026-02-15 08:44:48 -08:00
bf14ba4ba1 new event API 2026-02-15 08:36:58 -08:00
271ff151a1 single out toes logs on dashboard 2026-02-15 07:47:41 -08:00
1b563106fe max versions, remove old node_modules 2026-02-13 20:34:20 -08:00
c10ebe3c98 kill old processes on boot 2026-02-13 09:59:20 -08:00
720c0e76fb dashboard 2026-02-13 09:02:21 -08:00
Claude
50e5c97beb
Add system vitals gauges and unified log stream to dashboard
- Add /api/system endpoints for CPU, RAM, and disk metrics (SSE stream)
- Add /api/system/logs for unified log stream from all apps (SSE stream)
- Create Vitals component with three gauges: arc (CPU), bar (RAM), circular (Disk)
- Create UnifiedLogs component with real-time scrolling logs and status highlighting
- Update DashboardLanding with stats, vitals, and activity sections

Design follows Dieter Rams / Teenage Engineering aesthetic with neutral palette.

https://claude.ai/code/session_013L9HKHxMEoub76B1zuKive
2026-02-13 16:41:21 +00:00
543b5d08bc
favicon 2026-02-13 16:41:20 +00:00
Chris Wanstrath
6912bc0cdf bad 2026-02-12 16:30:41 -08:00
Chris Wanstrath
4a31d7bb69 tunnels 2026-02-12 16:24:45 -08:00
Chris Wanstrath
ee9c4a1d0a
Merge pull request #12 from defunkt/claude/auto-start-app-on-push-zklQA
Add app startup handling in activate endpoint
2026-02-12 08:46:10 -08:00
Claude
a7d4e210c2
Auto-start stopped/errored apps on push activate
Previously, pushing a new version would only restart apps that were
already running. Apps in stopped or invalid state (e.g. due to a
previous startup error) were left unchanged, requiring a manual start.

Now the activate endpoint calls startApp() for stopped/invalid apps,
so pushing a code fix automatically attempts to start the app.

https://claude.ai/code/session_014UvBEvHbnhaoMLebdRFzm6
2026-02-12 16:17:45 +00:00
Claude
2f4d609290
Fix app rename failing with "port is taken" error
renameApp() killed the old process with .kill() but didn't wait for it
to actually exit before restarting on the same port. The OS still had
the port bound, causing the new process to fail with "port is taken".

Additionally, the old process's exit handler would fire after the rename
and corrupt the app's state—releasing the new process's port, setting
state to 'invalid', and nullifying the proc reference.

Fix by:
- Making renameApp async and awaiting proc.exited before proceeding
- Guarding the exit handler to bail out when a newer process has taken over

https://claude.ai/code/session_01W9GF8Cy7T6V2rnVcoNd1Nc
2026-02-12 16:13:59 +00:00
b6e9ec73de .toes 2026-02-11 19:13:34 -08:00
Chris Wanstrath
c183fe42e9 set TOES_URL 2026-02-11 16:09:14 -08:00
Chris Wanstrath
d94a4421f9 integrated cron logs, cron cli 2026-02-10 11:12:57 -08:00