MCPSERV.CLUB
Alf.io

Alf.io

Self-Hosted

Open‑source ticketing for privacy‑first events

Active(88)
1.5kstars
0views
Updated 27 days ago

Overview

Discover what makes Alf.io powerful

Alf.io is a self‑hosted, open‑source ticket reservation and event attendance platform written in **Java 17**. It is built on the Spring Boot ecosystem, leveraging Gradle for build automation and PostgreSQL 10+ as its primary data store. The application is modular, exposing a rich REST API for ticket sales, event management, and reporting, while also providing an optional web‑based backoffice UI and a mobile check‑in client. Its architecture is designed around micro‑service friendly patterns—stateless HTTP endpoints, database session persistence via a dedicated `jdbc-session` profile, and pluggable extensions for payment providers (Stripe, Mollie, PayPal, etc.) and external systems such as CRMs.

Event lifecycle management

Secure payment integration

Extensible extension framework

Offline check‑in

Overview

Alf.io is a self‑hosted, open‑source ticket reservation and event attendance platform written in Java 17. It is built on the Spring Boot ecosystem, leveraging Gradle for build automation and PostgreSQL 10+ as its primary data store. The application is modular, exposing a rich REST API for ticket sales, event management, and reporting, while also providing an optional web‑based backoffice UI and a mobile check‑in client. Its architecture is designed around micro‑service friendly patterns—stateless HTTP endpoints, database session persistence via a dedicated jdbc-session profile, and pluggable extensions for payment providers (Stripe, Mollie, PayPal, etc.) and external systems such as CRMs.

Key Features

  • Event lifecycle management – Create events, define ticket types, set pricing rules, and enforce seat allocation.
  • Secure payment integration – Built‑in adapters for major processors; all sensitive data is handled via encrypted channels and row‑level security in PostgreSQL.
  • Extensible extension framework – Developers can add custom logic through Spring Boot starters, or integrate with third‑party services using webhooks and the public API.
  • Offline check‑in – The Alf.io‑PI component runs on Raspberry Pi, clustering with the central instance to download an encrypted attendee list and perform high‑throughput badge printing.
  • Multi‑tenant support – Each event is isolated via database schemas and row‑level security, enabling a single deployment to serve many organizers.

Technical Stack

LayerTechnology
BackendJava 17, Spring Boot 3.x, Spring MVC/REST, Spring Data JPA
BuildGradle Wrapper (gradlew) with Kotlin DSL
DatabasePostgreSQL 10+, leveraging RLS (Row‑Level Security) for data isolation
Messaging / JobsSpring Scheduler, optional disable-jobs profile for stateless deployments
ContainerizationOfficial Docker image (alfio/alf.io) available on Docker Hub; supports docker-compose and Kubernetes manifests
TestingJUnit 5, Spring TestContext, integration tests run against an embedded PostgreSQL

Core Capabilities for Developers

  • REST API – CRUD operations for events, tickets, orders; authentication via JWT or session cookies. Endpoints are documented in OpenAPI format and can be consumed by custom front‑ends or third‑party services.
  • Webhooks – Subscribe to order status changes, payment events, and check‑in completions; payloads are signed for integrity.
  • Extension Points – Implement custom PaymentProvider or EventValidator beans; register them via Spring’s component scanning.
  • CLI Tools – The alfio-cli module offers command‑line utilities for bulk imports, data migration, and health checks.
  • Row‑Level Security – Developers can define fine‑grained access policies directly in SQL; the application automatically enforces them via SET ROLE statements.

Deployment & Infrastructure

  • Self‑hosting – Requires a JDK 17 runtime and PostgreSQL; no external services are mandatory.
  • Scalability – Stateless HTTP layer allows horizontal scaling behind a load balancer; database can be read‑replicated for high traffic scenarios.
  • Container Support – Docker image exposes JAVA_OPTS and SPRING_PROFILES_ACTIVE; Kubernetes Helm charts are available in the community repository.
  • High Availability – The jdbc-session profile persists user sessions, enabling seamless failover; the PI component clusters automatically on first boot.

Integration & Extensibility

  • Payment Gateways – Out‑of‑the‑box adapters for Stripe, Mollie, PayPal, Revolut; each implements a common PaymentService interface.
  • CRM / ERP Hooks – Use webhooks to push attendee data into external systems; alternatively, consume the API from a custom connector.
  • Custom UI – The front‑end is built with Thymeleaf; developers can override templates or replace the entire UI with a SPA that consumes the API.
  • SDKs – While not bundled, community libraries exist for Node.js, Python, and Go to interact with the REST API.

Developer Experience

  • Configuration – All settings are externalized via application.yml; environment variables can override properties, making CI/CD pipelines straightforward.
  • Documentation – The GitHub repo contains a comprehensive README, API reference, and contribution guidelines; the CI pipeline publishes coverage and security metrics.
  • Community – Active issue tracker, open pull requests, and a dedicated Discord channel provide quick support; contributors are recognized via Open Collective sponsorship.
  • Licensing – GPLv3 ensures freedom to modify and redistribute, with a clear dual‑licensing path for commercial use.

Use Cases

ScenarioWhy Alf.io?
Non‑profit event organizerZero cost, full control over data, no vendor lock‑in.
Startup conferenceRapid deployment via Docker, custom payment flows, and badge printing on‑site.
Corporate trainingMulti‑tenant support allows a single instance to host multiple internal events with strict RLS.
Community meetupLightweight, self‑hosted solution that respects privacy and can run on a Raspberry Pi for offline check‑in.

Advantages Over Alternatives

  • Performance – Spring Boot’s embedded server and JPA with PostgreSQL RLS provide low latency for ticket purchases.
  • Flexibility – Complete source code

Open SourceReady to get started?

Join the community and start self-hosting Alf.io today