Overview
What Alba Ticket is made of and how the pieces fit.
Alba Ticket is a single application written in Elixir on the Phoenix framework. Every page is a LiveView, so browsers hold a socket to the server and pages update as data changes. Stateless application nodes can be run side by side; they cluster over Erlang distribution and share nothing but the database.
Components
| Component | Role | Required |
|---|---|---|
| Application | The Phoenix release: web pages, background jobs, the Jira importer | Yes |
| PostgreSQL 14 or later | All data except attachment files | Yes |
| S3-compatible object storage | Attachment files, uploaded and downloaded straight from browsers with presigned URLs | For attachments |
| SMTP server | Login links, invitations and notifications | For email |
| Typesense | Full-text search. Without it only exact ticket keys match in the search box; there is no database fallback | For search |
Background work (notifications, attachment sweeps, import runs, webhook processing) runs inside the application through Oban, which keeps its queue in PostgreSQL. No separate worker or message broker is needed; every node runs jobs.
One node is enough to start. Several nodes form a cluster for capacity and resilience; see Clustering. High availability for PostgreSQL, the object store and the mail server is arranged with those systems' own tooling.
Scope of this guide
This guide covers running your own installation, which serves one organisation. If you would rather not run it, the same software is available as a hosted service where a workspace is created for you and operated on your behalf; nothing here is needed in that case.
Reading this guide with an AI assistant
An AI assistant helping you install or troubleshoot Alba Ticket reads the guides best as Markdown. Every page of this guide, the user guide and the API documentation is also Markdown at its own address with .md added, for example /docs/technical/installation.md. On this site, /llms.txt lists them all by guide, and /llms-full.txt is this whole guide in one file, so an assistant given one address has all of it. Your own installation serves the user guide and the API documentation the same way, at its own address.