forked from defunkt/toes
spawnSync blocks the event loop while waiting for ps and du, which stalls the SSE metrics stream and other requests. Running these concurrently with async spawn (and Promise.all for du) keeps the server responsive under load. |
||
|---|---|---|
| apps | ||
| bin | ||
| docs | ||
| install | ||
| scripts | ||
| src | ||
| templates | ||
| .gitignore | ||
| .npmrc | ||
| bun.lock | ||
| CLAUDE.md | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
🐾 Toes
Toes is a personal web appliance you run on your home network.
Plug it in, turn it on, and forget about the cloud.
setup
Toes runs on a Raspberry Pi. You'll need:
- A Raspberry Pi 5 running the latest Raspberry Pi OS
- A
toesuser with passwordless sudo
SSH into your Pi as the toes user and run:
curl -fsSL https://toes.dev/install | bash
This will:
- Install system dependencies (git, fish shell, networking tools)
- Install Bun and grant it network binding capabilities
- Clone and build the toes server
- Set up bundled apps and tools (clock, code, cron, env, stats)
- Install and enable a systemd service for auto-start
Once complete, visit http://<hostname>.local on your local network.
features
- Effortlessly hosts bun/hype webapps - both SSR and SPA.
git push, Heroku-style deploys- https://toes.local web UI for managing your projects.
toesCLI for managing your projects.
cli configuration
by default, the CLI connects to localhost:3000 in dev and toes.local:80 in production.
toes config # show current host
TOES_URL=http://192.168.1.50:3000 toes list # connect to IP
TOES_URL=http://mypi.local toes list # connect to hostname
fun stuff
- textOS (TODO, more?)
- Claude that knows about all your toes APIS and your projects.
- non-webapps
february goal
- Corey and Chris are running Toes servers on their home networks, hosting personal projects and games.