Extensions
Each extension is a Go module in ext/ with its own README; the pages here are those READMEs. Want to add one? Read Writing an extension.
Standard extensions
These ship with pocketone and add no work to an app that doesn't use them.
| Extension | What it does |
|---|---|
| PITR | Point-in-time restore of your database with Litestream. On by default. |
| Auto TLS | Certificates on demand and wildcards through ACME. |
| Bulk Mail | Campaigns to your app's own users, with audiences from a collection, a view or SQL. |
| Pages | Server-rendered pages from a pb_pages folder (formerly PocketPages). |
| Vacuum | Scheduled SQLite VACUUM. |
| MCP | An MCP endpoint at /mcp so agents can manage your app and call its tools. |
| OAuth Server | Your app as an OAuth provider; pocketone login and MCP sign-in use it. |
| S3 Redirect | File downloads as short-lived signed S3 redirects. |
| Tokens | Long-lived API tokens with scopes. |
| Deploy | pocketone deploy, dev, pull and logs, and the deploy API. |
| Remotes | Named remotes and saved logins for the pocketone command. |
| Upgrade | pocketone upgrade to the latest release, keeping the old executable. |
| Config | The pocketone.yaml config file, with secrets in a .env beside it. |
| JS Errors | JS hook errors that name the pb_hooks file and line. |
Run many instances
Host hundreds of PocketBase instances in one process, across regions.
| Extension | What it does |
|---|---|
| Pocker | Hundreds of PocketBase instances in one Go process, routed by hostname. |
| Multisite | Many instances behind one listener, routed by hostname, run by one provider. |
| Docker | A host provider that runs each instance in its own container. |
| Sandbox | Confines untrusted JS hooks, SQL and outbound network. |
| Firewall | Peer allow-lists, trusted proxies and rate limits for a host. |
| Edge | Forwards each request to the edge that owns the instance. |
| Mothership | A control plane and its edges, across regions. |
| Schedules | Scheduled webhooks that wake sleeping instances. |
| Stats | Measures disk use and last request for each instance a host serves. |
Services for your instances
Shared services a host gives every instance it runs.
| Extension | What it does |
|---|---|
| Mail Relay | Outgoing mail for instances without SMTP, through your relay, with limits. |
| S3 Fallback | A default bucket for uploads and backups when an instance has no S3 of its own. |
| Server Timing | Server-Timing headers for each step of a request. |
Sell it as a service
Accounts, quotas and billing, for running PocketBase as a service.
| Extension | What it does |
|---|---|
| Multitenant | Accounts that own instances: quotas, owner logins, tokens and an API. |
| Multitenant Billing | Plans, quotas and the billing provider hook for Multitenant. |
| Lemon Squeezy Adapter | Lemon Squeezy as the billing provider. |
For extension authors
The extension contract and tools for building and testing extensions.
| Extension | What it does |
|---|---|
| Extension Kit | The extension contract: one extension works on a single app and under pocker. |
| Mail Trap | Dev mode: mail from an app without SMTP lands in a built-in inbox. |
| Dev Users | Local testing only: a superuser and a user with password "password". |
| JS Embed | JS hooks and migrations embedded in the binary. |
Questions and comments
Comments are a GitHub Discussions thread; sign in with GitHub to post.