System requirements
For a small to medium installation we recommend the following resources.
Hardware
| Resource | Minimum | Recommended |
|---|---|---|
| CPU | 2 vCPU | 4 vCPU |
| RAM | 4 GB | 8 GB |
| Storage | 20 GB SSD | 40 GB SSD |
Software
- Docker 24+ and Docker Compose v2 (for the container installation)
- PostgreSQL 15+ with the
vectorextension, pgvector 0.7+ (0.8+ recommended). 0.7 is a hard floor from this release on, even if you never use 3072-dimensional embeddings: the schema contains two search indexes on thehalfvectype, which only exists from 0.7 — bothdb:migrateanddb:schema:loadabort on older extensions. Before upgrading an existing installation, checkSELECT extversion FROM pg_extension WHERE extname='vector';and runALTER EXTENSION vector UPDATE;if needed. - libvips 8.13+ (8.15+ recommended). Rails calls
Vips.block_untrustedat boot, a guard against CVE-2026-66066. Without that method the application does not boot at all — not for migrations either, and not forrails runner. Odd but deliberate: a system with no libvips starts (you merely lose image variants); only an old one aborts. ⚠️ Ubuntu 22.04 ships 8.12.1 and nothing newer, backports included; build libvips from source into/usr/localthere, or move to Ubuntu 24.04, which carries 8.15. Check withvips --version, or more precisely from the application:bundle exec ruby -e 'require "vips"; p Vips.respond_to?(:block_untrusted)'. - A TLS certificate (e.g. via Let's Encrypt) for production
Mind the architecture
Native binaries are not portable between ARM (e.g. Apple-Silicon development) and x86_64 (typical servers). Always build images on the target architecture.
Network
Lalabase needs outbound access to your AI provider (e.g. OpenAI) if you use the AI features. All other services run inside your own infrastructure.