# Deploy Calnode on nibrun

> A scheduling and booking app with calendar integrations, an API and an MCP server.

[nibrun](https://nibrun.com) deploys a single compiled binary in one click. Calnode gets
a microVM of its own, a persistent filesystem at `data/`, and an HTTPS URL.

- Deploy on nibrun: https://nibrun.com/deploy/calnode
- Repository: https://github.com/Calnode/calnode
- Version: `v0.11.2`

Calnode is a scheduling and booking app with calendar integrations, webhooks and a native MCP
server. It keeps bookings in SQLite and serves its admin UI and public booking pages from one
binary. See the [deployment guide](https://github.com/Calnode/calnode/blob/v0.11.2/DEPLOY.md).

## Quick start

1. Run `openssl rand -hex 32` twice. Paste one result into `CALNODE_ENCRYPTION_KEY` on the deploy
   form and the other into `CALNODE_RECOVERY_SECRET`. Save both securely, with the recovery
   secret stored separately, and reuse them on redeploys.
2. Click **Deploy on nibrun**, then open the URL and complete first-run setup to create the
   owner account. Do this as soon as the app is live: the first visitor can claim it.
3. Configure email and calendar integrations in Settings, then add an event type and availability.

The preset keeps the database and uploaded assets on your persistent volume. If you add a custom
domain, update `BASE_URL` to its full HTTPS URL and update any registered OAuth redirect URLs.

The standalone release does not bundle Litestream: setting `LITESTREAM_REPLICA_URL` alone does
not enable database backups or restore.

The preset trusts nibrun's loopback proxy for forwarded client addresses. Visitors routed through
the same Cloudflare edge address can still share rate limits because nibrun's proxy does not
preserve the original visitor address in the forwarded chain.

---

Deploying an app of your own? https://nibrun.com/llms.txt has the instructions, the CLI
and the agent skill.
