Self-hosting Kamra
Own your PMS end to end. Two supported paths: Docker (recommended, see the Quickstart) or a classic bench install. Every feature is included — there is no paid edition to upgrade to.
Server requirements
| Minimum | Recommended (20+ rooms, POS) | |
|---|---|---|
| CPU | 2 vCPU | 4 vCPU |
| RAM | 4 GB | 8 GB |
| Disk | 40 GB SSD | 80 GB SSD |
| OS | Ubuntu 22.04/24.04 LTS (any Docker-capable Linux) | — |
Measured on our own servers: a full single-property stack (database, cache, workers, web) idles around 600 MB of RAM — 4 GB leaves comfortable headroom for busy days and updates.
Also needed: a domain or subdomain (pms.yourhotel.com) pointed at the server; ports 80/443 open; SSL via Let's Encrypt.
Typical monthly cost
| Provider | Plan that fits | Price | Guide |
|---|---|---|---|
| Hostinger | KVM 2 (2 vCPU / 8 GB) | ~₹549/mo | Guide |
| DigitalOcean | Basic 4 GB | ~$24/mo | Guide |
| Linode | Shared 4 GB | ~$24/mo | Guide |
| AWS | t3.medium + EBS | ~$30/mo | Guide |
Rather not run a server?
Kamra Cloud is the same software, hosted, backed up and updated by the team that builds it — from ₹2,999/month billed annually. You can export everything and move to self-hosting any time; that's the point of open source.
After install — production checklist
- Create your property — sign in → Admin → New Property, then rooms, room types and rates.
- Staff users & roles — Hotel Admin / Front Desk / Revenue / Finance / Housekeeping; roles decide what each person sees.
- Email — set up SMTP for confirmations, invoices and briefings.
- Payments — add gateway keys in the payments app (e.g. Razorpay Settings); turn off test mode.
- Scheduler —
bench --site <site> enable-scheduler; the night audit runs at 03:00 site time and housekeeping SLAs escalate every 15 min. - Backups —
bench backup --with-fileson cron to off-site storage. - Security —
developer_mode 0, strong admin password, HTTPS only. - AI (optional) — connect Claude over MCP or enable the in-app copilot with your own key.
Updating
cd frappe-bench/apps/kamra && git pull
bench --site pms.yourhotel.com migrate
bench build && bench restartRun the eval harness after any update — deterministic checks over money, tax and availability logic:
bench --site pms.yourhotel.com console
>>> from kamra.scripts.eval_harness import execute; execute()