System requirements
What to provision before installing.
Server
- A 64-bit Linux host with Docker Engine 24 or later and Docker Compose v2, or any environment that runs OCI containers.
- 2 CPU cores and 2 GB of memory are enough for a small team; imports of large Jira backups benefit from more memory and fast disk.
- The image carries Chromium, which prints invoices to PDF. It is started for each invoice and stopped afterwards, so it costs nothing while idle and a few hundred megabytes for a second or two while printing; it runs offline and makes no request of its own.
- Disk for PostgreSQL (tickets and history are small; a Jira import of 100,000 issues is a few gigabytes) and, when using the bundled RustFS, for attachments.
Services
- PostgreSQL 14 or later. The bundled compose file runs PostgreSQL 16. When you bring your own, the application needs a database it owns; the migrations create an
alba_approle for row-level security when the migrating user is allowed to create roles. - S3-compatible object storage for attachments: AWS S3, RustFS, Ceph, Backblaze B2, Cloudflare R2, a MinIO you already run, or similar, with a bucket and an access key. Browsers upload directly to it, so the bucket's address must be reachable from users' browsers and its CORS policy must allow
PUTandGETfrom the application's origin. - Typesense 28 or later for search. The bundled compose file runs it as a service; it needs a few hundred megabytes of memory for tens of thousands of tickets and holds derived data only, rebuilt from the database on demand, so it is never backed up.
- An SMTP server for outgoing email. Without one, login links and invitations cannot be delivered; the bundled Mailpit catches email for evaluation only.
Network
- Port 4000 on the application container, normally behind a reverse proxy that terminates TLS on 443.
- WebSocket support on the proxy: LiveView pages need it.
- Outbound access from the application to the database, the object storage endpoint, the SMTP server and, for single sign-on, the identity provider.
Clustering
For more than one application node, add a private network between the nodes, a load balancer that supports WebSockets and health checks, and a DNS name that resolves to every node. See Clustering.
Browsers
Current versions of Chrome, Firefox, Safari and Edge. JavaScript is required.