Self-hosted registration-to-check-in for internal corporate events. No SaaS, no recurring fees.
2.9K
Self-hosted registration-to-check-in for internal corporate events.
One source of truth. No SaaS. No recurring fees.
Admitto is a self-hosted event management platform covering the workflow from attendee import to event-day check-in and attendance reporting.
Import attendees, issue secure QR tickets, deliver them by email or Apple/Google Wallet, check guests in at the door, and export who actually attended.
Full documentation, source code, deployment instructions, and the user guide are available on GitHub.
Admitto covers everything between "we have a guest list" and "the event is over and we know who showed up".
It lets you:
Admitto is designed for organisations that want to run internal events without relying on a recurring general-purpose ticketing SaaS or handing attendee data to one.
The core principle is simple: Admitto is the single source of truth for who's invited, who confirmed, and who showed up.
Ticket emails, browser ticket pages, and wallet passes are delivery layers reflecting that state. They do not maintain independent copies of the attendee state.
Admin
Sets up events, imports attendees, manages tickets, sends email, and works with reports.
Operator
Runs event-day check-in using a tablet, camera, or scanner.
Superadmin
Configures the Admitto instance itself, including authentication, mail, integrations, and system settings.
Attendee
Does not need an Admitto account. Attendees receive a ticket and present it at the event.
| Area | What it does |
|---|---|
| 🎫 Tickets | Each attendee gets a unique QR code and browser ticket page. Venue information, directions, maps, and weather can be included when configured. |
| 📱 Wallet passes | Apple Wallet and Google Wallet integration backed by PassCreator. Staff can manage the lifecycle of wallet passes and see whether an attendee actually added one. |
| Send tickets using Microsoft 365, SMTP, or Power Automate. Detect bounced mail and inspect failed deliveries. | |
| 👥 Attendees | CSV/XLSX imports, ticket types, custom fields, bulk actions, and attendee deletion when required. |
| ✅ Check-in | Scan using a camera or USB scanner, or find attendees by name. Track badges and other handed-out items. Audio and vibration feedback is supported. |
| 🖥️ Staff admin | Manage events, reports, users, permissions, and company SSO. |
| ⚙️ Background jobs | Worker handles mail, imports, exports, bounce processing, retention jobs, and wallet synchronisation. |
| 📊 Reports | Attendance reporting and PDF/XLSX exports. |
| 🔒 Security | TOTP, passkeys, security keys, OIDC company SSO, optional Cloudflare Access, encrypted secrets, audit logging, and security logging. |
| 🌍 IP geolocation | Session and login logs can resolve country and city using a local dataset without sending addresses to an external geolocation API. |
| 🏠 Self-hosted | You operate the full stack yourself. Roles: Superadmin, Admin, Operator. |
Admitto supports:
Attendees themselves do not need to authenticate.
Ticket delivery can use:
Admitto can detect bounced messages and expose delivery failures to staff.
Apple Wallet and Google Wallet passes can be delivered from the same attendee ticket.
Wallet support includes lifecycle management such as:
Wallet passes are currently backed by PassCreator.
Event staff can check attendees in using:
Admitto prevents accidental duplicate check-in and provides immediate visual, audio, and vibration feedback.
Check-in can also track physical items handed to attendees, such as badges.
| Layer | Technology |
|---|---|
| Runtime | Node.js 24, TypeScript |
| Backend | Hono 4 |
| Database | PostgreSQL, Prisma 7 |
| Cache / shared state | Redis |
| Frontend | React 19, react-router 8, Vite |
| UI | Tabler design tokens |
| Containers | Docker, Docker Compose |
| Microsoft 365 Graph, SMTP, Power Automate, IMAP | |
| Authentication | Local accounts, OIDC, Cloudflare Access, TOTP, WebAuthn |
Official Admitto container images are published to both Docker Hub and GitHub Container Registry:
docker.io/solarssk/admitto
ghcr.io/solarssk/admitto
Content type
Image
Digest
sha256:eefbb3083…
Size
444 MB
Last updated
14 days ago
docker pull solarssk/admitto