Sign inSign up

solarssk/admitto

By solarssk

•Updated 14 days ago

Self-hosted registration-to-check-in for internal corporate events. No SaaS, no recurring fees.

Image
Web servers
0

2.9K

solarssk/admitto repository overview

Admitto

CI Codecov Quality Gate OpenSSF Best Practices OpenSSF Scorecard

Release Docker Docker Hub License

Node.js 24 TypeScript Hono 4 React 19 PostgreSQL Prisma 7 Redis

Self-hosted registration-to-check-in for internal corporate events.
One source of truth. No SaaS. No recurring fees.

⁠Admitto

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⁠.

⁠What is Admitto?

Admitto covers everything between "we have a guest list" and "the event is over and we know who showed up".

It lets you:

  1. Import attendees from CSV/XLSX.
  2. Generate a secure QR ticket for each attendee.
  3. Deliver tickets using Microsoft 365, SMTP, or Power Automate.
  4. Issue wallet passes for Apple Wallet and Google Wallet.
  5. Check in attendees using a tablet, camera, or USB scanner.
  6. Export reports showing who actually attended.

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.

⁠Who uses it?

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.

⁠Features

AreaWhat it does
🎫 TicketsEach attendee gets a unique QR code and browser ticket page. Venue information, directions, maps, and weather can be included when configured.
📱 Wallet passesApple Wallet and Google Wallet integration backed by PassCreator. Staff can manage the lifecycle of wallet passes and see whether an attendee actually added one.
✉️ MailSend tickets using Microsoft 365, SMTP, or Power Automate. Detect bounced mail and inspect failed deliveries.
👥 AttendeesCSV/XLSX imports, ticket types, custom fields, bulk actions, and attendee deletion when required.
✅ Check-inScan 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 adminManage events, reports, users, permissions, and company SSO.
⚙️ Background jobsWorker handles mail, imports, exports, bounce processing, retention jobs, and wallet synchronisation.
📊 ReportsAttendance reporting and PDF/XLSX exports.
🔒 SecurityTOTP, passkeys, security keys, OIDC company SSO, optional Cloudflare Access, encrypted secrets, audit logging, and security logging.
🌍 IP geolocationSession and login logs can resolve country and city using a local dataset without sending addresses to an external geolocation API.
🏠 Self-hostedYou operate the full stack yourself. Roles: Superadmin, Admin, Operator.

⁠Authentication

Admitto supports:

  • Local accounts
  • TOTP two-factor authentication
  • WebAuthn passkeys
  • Hardware security keys
  • OpenID Connect (OIDC)
  • Company SSO
  • Optional Cloudflare Access / Zero Trust

Attendees themselves do not need to authenticate.

⁠Mail

Ticket delivery can use:

  • Microsoft 365 Graph
  • SMTP
  • Power Automate
  • IMAP bounce ingestion

Admitto can detect bounced messages and expose delivery failures to staff.

⁠Wallet passes

Apple Wallet and Google Wallet passes can be delivered from the same attendee ticket.

Wallet support includes lifecycle management such as:

  • pass creation
  • updates
  • voiding
  • restoring
  • expiration
  • deletion
  • installation/status tracking

Wallet passes are currently backed by PassCreator.

⁠Check-in

Event staff can check attendees in using:

  • device camera
  • USB / hardware QR scanner
  • attendee search

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.

⁠Technology stack

LayerTechnology
RuntimeNode.js 24, TypeScript
BackendHono 4
DatabasePostgreSQL, Prisma 7
Cache / shared stateRedis
FrontendReact 19, react-router 8, Vite
UITabler design tokens
ContainersDocker, Docker Compose
MailMicrosoft 365 Graph, SMTP, Power Automate, IMAP
AuthenticationLocal accounts, OIDC, Cloudflare Access, TOTP, WebAuthn

⁠Docker images

Official Admitto container images are published to both Docker Hub and GitHub Container Registry:

docker.io/solarssk/admitto
ghcr.io/solarssk/admitto

Tag summary

Content type

Image

Digest

sha256:eefbb3083…

Size

444 MB

Last updated

14 days ago

docker pull solarssk/admitto