Skip to main content
Self-hosting is for operators who are comfortable owning a web application, database, migrations, secrets, queues, storage, domains, and third-party provider approvals. Before deploying, inspect the repository’s docs/upstream-source.json. It records the hosted source snapshot used for that public release; hosted features shipped later may not be present yet.

Start locally

1

Clone the public repository

2

Create your environment file

Add the core URLs and credentials for a Supabase project you control. Keep real secrets out of Git.
3

Apply guarded database migrations

Set SUPABASE_PROJECT_ID, SUPABASE_DB_URL, and MIGRATION_CONFIRMATION=MIGRATE:<SUPABASE_PROJECT_ID>, then run:
4

Run local checks

Add only the providers you need

Optional email, payment, social, calendar, analytics, AI, and media features stay unavailable until you supply your own credentials and complete each provider’s setup. Missing providers fail closed; the open-source edition does not fall back to Bento-owned accounts.

Deploy and verify

Use the repository’s current Cloudflare guide, configuration reference, and verification boundary. A compatible coding agent can also follow skills/deploy-bento/SKILL.md. You remain in control of paid resources, secrets, domain changes, OAuth consent, provider review, and live publishing.
Do not call an instance production-ready until you have tested a fresh migration, two-tenant data isolation, customer checkout and fulfilment, email delivery, provider callbacks, MCP authorization, and browser WebMCP on the exact domains you will use.