Platform Operators
Self-Hosting
Run the full Banata platform on your own infrastructure.
Self-hosting Banata means running the entire platform -- dashboard, auth backend, and all supporting services -- on infrastructure you control. You are not embedding a different auth model into your app; you are deploying the same product that powers the hosted Banata service.
If you only need to integrate auth into your application as a customer, head to the Quick Start instead.
Product Shape
The self-hosted and hosted versions of Banata follow the same workflow:
- You deploy the Banata platform to your infrastructure.
- Developers sign in to your Banata dashboard.
- They create a project.
- They generate a project-scoped API key.
- Their apps use Banata's SDKs and auth UI, pointed at your Banata instance.
Everything your end-users interact with -- sign-in pages, email verification, organization management -- works identically whether the platform is hosted by Banata or by you.
What You Need
To run Banata yourself, you need four things:
| Component | Purpose |
|---|---|
| Convex | Backend functions, data storage, and real-time subscriptions |
| Next.js host | Dashboard, hosted auth UI, and API proxy routes |
| Email provider | Transactional email delivery (verification, invites, etc.) |
| DNS | Your own domain(s) for the dashboard and auth surfaces |
See Self-Hosted Environment Variables for the full list of configuration values each component requires.
Local Convex Wiring
Your self-hosted deployment keeps a small set of local Convex files alongside the published @banata-auth/convex package:
convex/
|-- convex.config.ts
|-- auth.config.ts
|-- authNode.ts
|-- http.ts
`-- banataAuth/
|-- auth.ts
|-- adapter.ts
`-- schema.tsWhat stays local
These files live in your repository because they bind platform configuration to your specific environment:
auth.ts-- wires your project runtime config, environment variables, and local auth settings.adapter.ts-- closes over the local auth factory so Convex can invoke it at runtime.schema.ts-- acts as a local schema anchor that Convex component codegen depends on.
What comes from @banata-auth/convex
The published package provides everything that is shared across all Banata deployments:
- Packaged component registration
- Packaged component schema and migrations
- Auth factory helpers, plugins, and triggers
- HTTP route helpers for the auth API surface
You should not need to modify any code inside the package. Your local files are the only customization surface.
Next Steps
- Quick Start -- integrate Banata auth into a customer application.
- Deploy -- step-by-step guide for deploying the Banata platform.
- Environment Variables -- every configuration value your self-hosted instance needs.