Banata

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:

  1. You deploy the Banata platform to your infrastructure.
  2. Developers sign in to your Banata dashboard.
  3. They create a project.
  4. They generate a project-scoped API key.
  5. 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:

ComponentPurpose
ConvexBackend functions, data storage, and real-time subscriptions
Next.js hostDashboard, hosted auth UI, and API proxy routes
Email providerTransactional email delivery (verification, invites, etc.)
DNSYour 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:

text
convex/
|-- convex.config.ts
|-- auth.config.ts
|-- authNode.ts
|-- http.ts
`-- banataAuth/
    |-- auth.ts
    |-- adapter.ts
    `-- schema.ts

What 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.