Repository navigation
v2.3.0
Several instances, tested properly. Running slonbase as a fleet, behind a balancer, behind
PgBouncer and with projects on other servers, was run for real (scripts/fleet-test, also in CI),
which found problems that are fixed here, and a scaling guide now says what
works, what was measured and where the limits are.
Added
database.listen_url(--database-listen-url,SLONBASE_DATABASE_LISTEN_URL): a direct
connection forLISTEN/NOTIFY, so slonbase works behind PgBouncer in transaction mode. Without
it, behind such a pooler, instances started and answered requests but stopped sharing schema
changes, settings, realtime events and rate limits, with no error.- Health checks for a fleet: sync (each instance sends itself a notification every minute
and shows an error, naming a transaction-mode pooler and the fix, if it doesn't arrive) and
connections (PostgreSQL's connections in use against its limit, a warning from 80% and an
error from 95%, since several instances and projects multiply them). - Sign out everywhere:
POST /api/collections/{collection}/records/{id}/revoke-tokensgives a
record a new token key, so every token it holds stops working on every instance; a user may
call it for themselves, a superuser for anyone. The dashboard's record menu has the action.
(Tokens are stateless, so there is no per-device logout, as in PocketBase.) - Scaling and deployment topologies: five layouts with diagrams (one
instance; projects on several servers; a load balancer; PgBouncer; managed failover), the
connection budget N × (18 + 5 × projects) with measured numbers, what is shared and what is per
instance, sessions and sign-out across instances, upgrades, nginx, HAProxy and PgBouncer
recipes, and the limits. scripts/fleet-test: several instances behind a balancer with no affinity, checking tokens,
schema and settings propagation, shared rate limits, realtime forwarding and projects, run in
CI directly and through PgBouncer.
Changed
- Idle project pools release their connections after two minutes, so many projects don't each
hold a few connections for nothing. - Pooler-safe session state: the backup lock is a transaction lock on a dedicated connection,
and the SQL console's and JavaScript hooks'SETs areSET LOCALinside a transaction, so
nothing leaks onto the next user of a pooled connection (a leak that was possible even without a
pooler). - A realtime subscribe request that was forwarded to an instance that has died answers after two
seconds instead of five. - The website's scale-out section and the documentation say what was tested, including the
limits (connections, local files, no rolling upgrades).
Website, documentation and discovery
Added
- Easier to find, for search engines and for AI assistants: a sitemap, a
robots.txtthat
welcomes search and AI crawlers, canonical addresses and Open Graph cards on every page,
structured data (software, FAQ, breadcrumbs, articles), a 404 page,llms.txtand
llms-full.txtwith every guide also served as Markdown (/docs/<page>.md), and an IndexNow
ping on each deploy. - New guides: About, Features, a five-minute
quickstart, slonbase and PocketBase,
slonbase vs PostgREST and the benchmarks.
Changed
-
slonbase is described as what it is now: a backend platform on PostgreSQL (many projects,
roles and API keys, an SQL console, designers, scale-out), compatible with the PocketBase SDKs,
not "PocketBase's API on PostgreSQL". The README, the site, the package descriptions and the
documentation lead with that. -
The documentation site uses the dashboard's colours, and passes the accessibility checks.
-
A new look for https://slonbase.com, built from the dashboard's own colours, type and
components, with a screencast of the real dashboard, every dashboard screen (the command
center for projects, the SQL console, settings and the email designer included) and the
benchmark numbers of 2.2. -
Benchmarks of 2.2.0 against PocketBase 0.40.6 and PostgREST 16.5, with memory, binary size
and start-up time (bench/; the runs are kept inbench/published/2.2.0). The binary is 22 MB
on disk (10 MB to download), not the 8 MB the page said. -
The dashboard screenshots are taken, and the tour recorded, by
scripts/demo/run.sh, from a
seeded demo installation.
Install
- Docker:
ghcr.io/ayeshrodz/slonbase:2.3.0 - Debian/Ubuntu:
slonbase_2.3.0_amd64.deb/_arm64.deb - Fedora/RHEL:
slonbase-2.3.0-1.x86_64.rpm/.aarch64.rpm - Binaries:
slonbase-2.3.0-linux-{amd64,arm64}.tar.gz
Verify downloads with sha256sum --ignore-missing -c SHA256SUMS. See the installation guide.