Quickstart
Download, run, create an admin, and install your first plugin.
Updated
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
- Open the admin console. On a fresh instance you land on the sign-in screen. go to /_/login
- Enter the admin email you just created. type “admin@example.com” into Email
- And the password. type “AdminP@ss123” into Password
- Sign in. click “Sign in”
- And you're in. This is your home base — collections, logs, and settings, all one click away. go to /_/
- 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:
- Browse — the catalogue, prices, and licence terms are synced live from railbase.app.
- 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.
- 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
- Understand the moving parts in Architecture.
- Learn the full install/update/uninstall flow in Installing plugins.
- Take it to production with Deployment and Backups.