Roomer is a self-hosted desk and asset booking platform. Upload your floor plans, map every desk, and let your team book the space they need — with waitlists, enterprise SSO, and email notifications included.
Up and running in minutes
# Clone and start
git clone https://github.com/c0dewhacker/Roomer.git
cd Roomer
cp .env.example .env # set SESSION_SECRET
docker compose up -d
# Or pull pre-built images from Docker Hub
docker compose pull && docker compose up -d
Migrations run automatically. A generated admin password is printed to the API logs on first boot.
From a single meeting room to a multi-building campus — Roomer handles the full booking lifecycle without the SaaS subscription.
Upload PDFs or images of your floor plans. Pin every desk, meeting room, and asset directly on the canvas — no CAD software required.
Live desk status at a glance — available, booked, assigned, queued, restricted, or in conflict. Book for a day or a custom date range in seconds.
Users join a queue when a desk is full. When a slot opens, the next person is automatically promoted and has a configurable window to claim it.
Native support for OIDC, SAML 2.0, and LDAP. Automatic user provisioning via SCIM. Works with Entra ID, Okta, Google Workspace, and more.
Booking confirmations, queue promotions, and floor availability alerts — all delivered via your own SMTP relay with fully customisable templates.
Occupancy rates, booking history, and lease tracking for permanent desk assignments. Export data for your own analysis.
Restrict floors, zones, and assets to specific groups. Role hierarchy from super-admin down to view-only guest — no over-provisioning.
Import users, buildings, floors, and assets in bulk via CSV. Validation with clear per-row error reporting so you can fix and re-upload without starting over.
Two Docker images — API and web. docker compose up -d starts everything. Schema migrations run automatically on every restart.
Built on a solid, boring stack
Open source. Self-hosted. No per-seat fees, no vendor lock-in. Your data, your server.