Client
Do this on your own computer, where your site folders live.
Run it
1
Download
Grab the client — just the two scripts and the helpers they need, nothing else.
Download sitehoster-client.zip →
unzip sitehoster-client.zip
cd sitehoster-client
# files:
# client/sync.js push your site folders to the server
# client/automate.js run the on-page automation
# client/config.example.json config template (copy to config.json)
# shared/manifest.js merkle-tree + path-safety helpers
# shared/version.js the API version the client speaks
2
Configure it
Point the client at your server and your folder of site folders.
cp client/config.example.json client/config.json
# apiBase: "https://<your-server-ip>"
# apiToken: "<token from the installer>"
# contentRoot: "./sites"
3
Sync
The first run uploads everything; each later run pushes only what changed. A folder named
example.com goes live at example.com.
node client/sync.js
4
Keep it in sync
Either schedule it (cron every minute, or launchd on macOS), or let the client loop itself:
node client/sync.js --watch # sync now, then every 60s until stopped
node client/sync.js --watch --interval 30 # …or choose the period (seconds)
--watch needs no cron or launchd; a failed cycle is logged and the loop
keeps going, and Ctrl-C stops it cleanly.
Next Steps
You can use the browser extension to easily make edits to your local sites using your AI coding agent.