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.
Quick start
- Run
openssl rand -hex 32twice. Paste one result intoCALNODE_ENCRYPTION_KEYon the deploy form and the other intoCALNODE_RECOVERY_SECRET. Save both securely, with the recovery secret stored separately, and reuse them on redeploys. - 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.
- 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.