Deploy Lalabase
Self-hosted project management and client portal for agencies
Just deployed
lalabase
Just deployed
/rails/storage
Postgres
Just deployed
/var/lib/postgresql/data
Deploy and Host self hosted Lalabase (Agency Project Management) on Railway
This template deploys self-hosted Lalabase on Railway in one click: tickets, time tracking and a client portal you control.
About Hosting Lalabase open-source software on Railway (self hosted Lalabase template)
Lalabase is open-source agency project management software, licensed under AGPL-3.0-only. This is independent community packaging of the unmodified release image, not an official distribution. Lalabase is a registered trademark of gboyke solutions UG.
The template starts three services: the Lalabase Rails app with a volume at /rails/storage, a pgvector Postgres 17 database with its own volume, and a password-protected Valkey cache without persistence.
Why Deploy Lalabase, the self-hosted agency project management tool on Railway (Railway Free Trial)
Lalabase on Railway gives your agency tickets, time tracking and a client portal with no per-seat fee.
Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.
By deploying Lalabase on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.
Railway vs Other Hosting Providers and VPS for Lalabase self hosting
Choose where the app, Postgres and Valkey run.
| Provider | What You Get with Railway | What You Get with the Other Provider |
|---|---|---|
| DigitalOcean | Three services on a private network, generated secrets, volumes and HTTPS without server work. | A Droplet you manage, including Docker, firewall, TLS and volume backups. |
| AWS | One template deploy for the app, pgvector Postgres and Valkey, with no IAM or VPC setup first. | Broad networking and scaling control, which you build and maintain yourself. |
| Hetzner | Containers, restarts and domain handled for you, with no server or proxy setup. | Low-cost bare servers where you run the Docker Compose stack and backups. |
Pick Railway for a quick start or a VPS for control.
Common Use Cases for hosted Lalabase
- Client portals: Each client gets its own organisation, and roles decide what they see.
- Tasks as list or board: Tickets show as a list or board, with per-project statuses, priorities and fields.
- Billable time tracking: Several time sessions can be logged against one ticket, each billable on its own. Records can be exported for invoicing.
- Documentation and meeting notes: Notes and documents sit beside the project, with meeting summaries linked to follow-up tasks.
- Optional AI assistant and MCP server: The assistant stays off until you enable it and pick a provider, such as your own API key or an in-network model. An MCP server with a personal access token lets tools like Claude or Cursor work with your tickets.
Dependencies for Lalabase Docker hosted on Railway
Three services: the Lalabase Rails app with a /rails/storage volume, pgvector Postgres 17 with a volume, and password-protected Valkey without persistence.
Deployment Dependencies for Managed Lalabase Service
Uploads live on a volume at /rails/storage. LALABASE_ADMIN_EMAIL defaults to admin@example.com.
All ten variables are generated or Railway references. The three encryption keys must never change after first boot.
| Variable | Service | Purpose |
|---|---|---|
| Postgres.POSTGRES_PASSWORD | Postgres | Password for the lalabase database user (generated per deploy) |
| Valkey.REDIS_PASSWORD | Valkey | Password protecting the private Valkey cache (generated per deploy) |
| DATABASE_URL | lalabase | Connection string to the bundled pgvector Postgres over the private network |
| REDIS_URL | lalabase | Connection string to the bundled Valkey for cache and Action Cable |
| LALABASE_HOST | lalabase | Public hostname used for links in emails and allowed hosts (Railway domain) |
| SECRET_KEY_BASE | lalabase | Rails secret that signs sessions and cookies (128 hex chars, generated) |
| LALABASE_ADMIN_PASSWORD | lalabase | Password for the instance admin admin@example.com, sign in at /admin |
| ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY | lalabase | Key for encrypted database fields; never change after first boot |
| ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY | lalabase | Key for searchable encrypted fields; never change after first boot |
| ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT | lalabase | Salt for encryption key derivation; never change after first boot |
Implementation Details for Lalabase (ghcr.io/onepush-dev/lalabase:2026.11.0 runs the unmodified upstream release image with start scripts (wait for DB, db:prepare, one-time lalabase:setup admin, Puma on 0.0.0.0:8080 with Solid Queue in Puma); Postgres is ghcr.io/onepush-dev/lalabase-postgres:17 (pgvector pg17), Valkey ghcr.io/onepush-dev/lalabase-valkey:8; upstream separate worker and Caddy replaced)
The app image wraps the unmodified upstream release; Railway routing replaces Caddy.
How does Lalabase compare against other tools
Lalabase vs Redmine (Redmine Alternative)
- Client portal: Lalabase gives each client organisation its own access, with roles deciding what each person sees.
- Time tracking: Lalabase records several billable sessions per ticket and exports them for invoices.
- Where Redmine wins: it is established with many plugins.
Lalabase vs Jira (Jira Alternative)
- Self-hosting: Lalabase is AGPL-3.0-only and runs on your own server, keeping data under your control.
- Agency workflow: Lalabase bundles tickets, time, docs and meetings in one tool.
- Where Jira wins: more integrations.
Lalabase vs OpenProject (OpenProject Alternative)
- Scope: Lalabase focuses on tickets, billable time, client access and documentation for agency work.
- Deployment: Lalabase ships as one release image with Postgres and Valkey, on Railway or a VPS.
- Where OpenProject wins: more planning, like Gantt scheduling.
Lalabase with Docker Compose vs Railway (Self-Hosting Method Comparison)
- Setup effort: Docker Compose needs a hand-configured environment file; Railway provisions three services with generated secrets.
- Updates and volumes: on a VPS you pull release tags yourself; on Railway you manage volumes in the dashboard.
- Where Docker Compose wins: you control the host, TLS and Caddy.
How to use Lalabase on Railway?
- Open
https://your-domain/adminand sign in asadmin@example.comwith the password from theLALABASE_ADMIN_PASSWORDvariable on thelalabaseservice. The admin account is created on first boot. - Change the admin email and password on that page right away.
- Register your team's first user at
/users/sign_up. Each sign-up creates its own separate organisation, so people never land in someone else's data. Once SMTP is set, invite teammates instead. - If you only want invited users, turn off public registration under System settings in
/admin. - Add mail settings:
SMTP_ADDRESS,SMTP_PORT,SMTP_DOMAIN,SMTP_USERNAMEandSMTP_PASSWORDon thelalabaseservice. Without SMTP, unconfirmed accounts still work for 3 days, and the admin can confirm them from/admin. - The interface defaults to German; users can change the language in their settings.
- Check the health endpoint:
https://your-domain/up
How to self host Lalabase on other VPS Services (Lalabase self hosting guide)
Clone the Repository
Use a server with at least 2 vCPU, 4 GB RAM and 20 GB disk, with your-domain pointing at it. Check out the latest release tag, not main.
git clone https://github.com/lalabase/lalabase.git
cd lalabase
git checkout "$(git describe --tags --abbrev=0)"
Install Dependencies
Install Docker 24+ with the Compose v2 plugin. The app, Postgres, Valkey and Caddy run as containers.
Configure Environment Variables
Copy the example file and set LALABASE_HOST to your-domain.
cp .env.docker.example .env
Start the Lalabase Application
Start the stack, then run the one-time setup task to create the instance admin. Caddy fetches a TLS certificate for LALABASE_HOST.
docker compose up -d
docker compose exec web bin/rails lalabase:setup
Official Pricing of Lalabase (Lalabase pricing)
Lalabase is free open source software under AGPL-3.0-only, so self hosting has no license fee. Upstream also offers a paid German hosted cloud; see its pricing page.
Lalabase hosted vs self hosted comparison (Pricing, features, costs, and more)
Self-hosting is free; you pay only for infrastructure.
Monthly cost of self hosting Lalabase on Railway
Railway bills by usage: RAM, CPU, volume size and service count.
System Requirements for Hosting Lalabase on a VPS
Upstream recommends 2 vCPU, 4 GB RAM and 20 GB disk, with Docker 24+ and Compose v2.
Frequently Asked Questions (FAQs)
Which login is which: the admin or the team?
The instance admin signs in at /admin with admin@example.com and LALABASE_ADMIN_PASSWORD. Team users register at /users/sign_up.
Can a stranger take over my data?
No. Each sign-up gets its own organisation. For invited users only, close public registration under System settings in /admin.
Why am I not getting confirmation emails?
No SMTP server is configured, so no mail goes out. Confirmation emails and invitations need SMTP_* variables. Unconfirmed accounts work for 3 days; the admin can confirm them in /admin.
Why is the interface in German?
German is the default UI language; users can switch in settings.
What happens if the encryption keys change?
Encrypted fields become unreadable without the original keys.
Is this the official Lalabase?
No. This is independent community packaging of the unmodified release image. Lalabase is a registered trademark of gboyke solutions UG.
Template Content
