Railbase
GPTClaude

Quickstart

Download, run, create an admin, and install your first plugin.

Updated

Video guide —watch on YouTube ↗

This guide takes you from nothing to a running Railbase with a paid plugin installed. It takes a few minutes and assumes a local machine; production hardening is covered in Deployment.

1. Download the binary

Grab the build for your platform from the download page. It's a single executable — there is nothing else to install. On macOS / Linux, make it runnable:

chmod +x ./railbase

2. Create the first admin

Seed the first administrator before starting the server. admin bootstrap is a first-run / recovery seed only — it creates the very first admin and refuses once any administrator exists. The email is a positional argument; you'll be prompted for a password (twice). The command creates the data store on first use, and the vault won't unlock without a password — locally, set RAILBASE_DEV=true to use the built-in development key:

RAILBASE_DEV=true ./railbase admin bootstrap you@example.com

Note

This is not how you add admins routinely — once you're in, onboard the rest through the invite flow (admin UI → Administrators → Invite, or POST /api/_admin/admins/invite), which sends an auditable single-use link and lets each admin set their own password. For scripted first-runs, --password and --no-email carry over.

Important

The vault is a single file opened by one process at a time. Commands that open it (admin, backup, jobs, …) can't run while serve holds the lock — they exit with "vault: file is locked by another process". Create the admin first (as here), or stop the server for a moment. On a running instance you can also create the first admin from the /_/bootstrap setup wizard instead.

3. Run it

RAILBASE_DEV=true ./railbase serve

With no other flags, Railbase:

  • listens on http://localhost:8095
  • keeps its data store at ./pb_data/railbase.vault (a single encrypted file)
  • serves the admin console at http://localhost:8095/_/

Important

In production you set a real RAILBASE_VAULT_PASSWORD instead of RAILBASE_DEV=true. A bare serve with neither exits with "no vault password configured". See Installation.

Tip

Use a different port or data directory with flags: RAILBASE_DEV=true ./railbase serve --addr :9000 --data-dir ./demo. See the CLI reference.

Now open http://localhost:8095/_/ and sign in. (Two-factor authentication is self-service — enroll it under your account settings once you're in.)

Try it: Sign in to the admin console

  1. Open the admin console. On a fresh instance you land on the sign-in screen. go to /_/login
  2. Enter the admin email you just created. type “admin@example.com” into Email
  3. And the password. type “AdminP@ss123” into Password
  4. Sign in. click “Sign in”
  5. And you're in. This is your home base — collections, logs, and settings, all one click away. go to /_/
  6. Your collections, audit events, and live request rates, all at a glance. hover Collections

4. Open the marketplace

The in-app marketplace is built in and on by default — there's nothing to enable. Open Marketplace in your admin (/_/) and you're browsing the live catalogue from railbase.app.

Note

The marketplace always pulls from railbase.app — the catalogue, prices, and checkout are served there. To add a plugin to a build you compile yourself instead, see Installing plugins.

5. Buy or trial, and install a plugin

Open the Marketplace and pick a plugin. The flow is entirely in-product:

  1. Browse — the catalogue, prices, and licence terms are synced live from railbase.app.
  2. Buy or try free — checkout is embedded right in the page; enter your card in the secure payment form (served by railbase.app; card data never touches your server). Where a plugin offers a trial, Try free starts a time-boxed trial with no card.
  3. Install — your instance pulls the bundle, verifies it's authentic and unmodified (sha256 + ed25519), and lands it as an encrypted, license-gated row in your Vault (_plugins). It runs in-process in the core's goja runtime — no separate process, no port, no subprocess.

No download, no file to copy, no redeploy. The moment it installs, the plugin's schema, verbs (/api/<slug>/*) and jobs go live — and its end-user UI is mounted at /<slug> from the bundle's widgets.json, with no rebuild.

Note

Pricing is a value metric the publisher picks per plugin — per-seat is the default, but a plugin may instead bill a flat company price, a per-host seat, a flat price with a usage allowance, or a custom negotiated deal. See Licensing & seats.

Next steps

Was this page helpful?Thanks for your feedback!