Docs Deployment
The Gitmoot docs site is a static Docusaurus build, matching the operational shape used by Entmoot docs.
Build from the repo root:
cd website
npm install
npm run build
The build output is website/build. For the current server, deploy it under
the existing gitmoot.io host:
rsync -a --delete build/ /var/www/gitmoot-docs/
Nginx serves:
https://gitmoot.io/docs/from/var/www/gitmoot-docs/https://gitmoot.io/llms.txtfrom the docs buildhttps://gitmoot.io/llms-full.txtfrom the docs build
Smoke checks:
curl -fsS https://gitmoot.io/docs/intro >/dev/null
curl -fsS https://gitmoot.io/docs/reference/cli | rg 'gitmoot dashboard|agent run|interactive'
curl -fsS https://gitmoot.io/docs/workflows/skillopt-train-workflow | rg 'train init|train recover|gitmoot-skillopt'
curl -fsS https://gitmoot.io/docs/release-notes/v0.3.0-beta.1 | rg 'v0.3.0-beta.1|dashboard'
curl -fsS https://gitmoot.io/llms.txt | rg 'SkillOpt|Dashboard|Release Notes'
curl -fsS https://gitmoot.io/llms-full.txt | rg 'skillopt-train-workflow|CLI.md|release-notes'
Daemon Restart Call Spike
The repository polling ETag cache is process memory. After deploying a new
binary and restarting the daemon, expect one unconditional sweep of enabled
repos while that cache warms; the following sweeps send If-None-Match and
normally receive quota-free 304 responses for unchanged repositories. Account
for that one-sweep REST-call spike when restarting near a GitHub quota limit.
docs.gitmoot.io currently resolves to this server but should only be enabled
after the origin TLS certificate and nginx server block explicitly cover that
host.
Install script (gitmoot.io/install.sh)
The one-liner installer (curl -fsSL https://gitmoot.io/install.sh | sh) is
served from the gitmoot.io site root, which on the live server is
/var/www/gitmoot.io/ (root /var/www/gitmoot.io; with location = /install.sh in /etc/nginx/sites-available/gitmoot.io) — separate from the
Docusaurus docs build, which is served under /docs/ from
/var/www/gitmoot-docs/ (baseUrl is /docs/, so website/static/ files land
under /docs/, not /). The source of truth is tracked at
scripts/install.sh; deploy it by copying that file to the site root:
# from the repo root, on the server:
install -m 0644 scripts/install.sh /var/www/gitmoot.io/install.sh
Smoke check after deploy:
curl -fsSL https://gitmoot.io/install.sh | sh -n - # downloads + shell-parses
The installer downloads the per-OS/arch binary plus sha256sums.txt from the
matching GitHub release and verifies the checksum. The release assets
(including gitmoot_linux_arm64) and sha256sums.txt are produced by
.github/workflows/release.yml on release publish.