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.