Today a server needs node+npm before it can even fetch install.sh (chicken and egg: the script ships inside the npm package). Provide a stable bootstrap URL, get.docker.com / k3s style:
curl -fsSL https://codesema.com/install | CODESEMA_HUB_TOKEN=csk_... bash
The bootstrap only does what cloud-init.yaml.example's embedded provision.sh already does: install Node 22 if missing, npm i -g codesema@latest, then exec the package's own assets/deploy/install.sh with the inherited environment (autoconfig mode works with the hub token alone). Host it either as a static file served by the hub or as a raw GitHub URL; keep it tiny and idempotent so the real logic stays in one place (install.sh).
Today a server needs node+npm before it can even fetch install.sh (chicken and egg: the script ships inside the npm package). Provide a stable bootstrap URL, get.docker.com / k3s style:
curl -fsSL https://codesema.com/install | CODESEMA_HUB_TOKEN=csk_... bashThe bootstrap only does what cloud-init.yaml.example's embedded provision.sh already does: install Node 22 if missing, npm i -g codesema@latest, then exec the package's own assets/deploy/install.sh with the inherited environment (autoconfig mode works with the hub token alone). Host it either as a static file served by the hub or as a raw GitHub URL; keep it tiny and idempotent so the real logic stays in one place (install.sh).