Developer guide · Deployment

Self-hosted authentication

Self-hosting authentication puts the identity boundary, keys and data inside infrastructure you control. It can reduce vendor dependency and support private deployments—but it also makes security operations your responsibility.

Self-hosted authentication means your team deploys and operates the service that registers credentials, creates sessions and issues identity claims. It does not mean inventing cryptography or placing login logic directly in every application. A useful self-hosted system is still a narrow, independently operated service boundary.

Why teams self-host authentication

Hosted identity platforms are a strong default when speed of adoption matters more than infrastructure control. Self-hosting becomes attractive when authentication data must stay in a customer environment, workloads need to operate without public internet access, per-user pricing grows faster than infrastructure cost, or a team needs a reviewable open-source boundary instead of a required external provider.

Data location

Keep identities, credentials, sessions and audit events inside a chosen region or customer network.

Deployment control

Run the same authentication boundary in your cloud, private infrastructure or a disconnected enclave.

Cost shape

Pay for the runtime and operations you use instead of automatically scaling a per-user identity bill.

Reviewability

Inspect source, configuration and data flows rather than treating identity as an opaque external dependency.

What you own when you self-host

Infrastructure ownership is not the same as reduced responsibility. Your team owns patching, availability, monitoring, key rotation, rate limiting, abuse response, data retention, backups and restore drills. You also need a documented response for account recovery and compromised operator access.

  • Terminate TLS correctly and configure the exact WebAuthn relying-party origins.
  • Keep authentication services and their data stores private from the public network where possible.
  • Rotate signing keys while preserving verification overlap for issued tokens.
  • Back up identity state, verify snapshots and practise restoring into a clean environment.
  • Collect useful security events without logging challenges, bearer tokens or private credential material.
  • Apply capacity planning and failure testing to the authentication path, not only the main application.

A small self-hosted authentication architecture

01Your applicationAuthorization and resources
02Authentication servicePasskeys, sessions and tokens
03Private data storeIdentity and audit state

The separation matters. Authentication should produce a durable user identifier and narrow claims. The relying application should decide whether that identity may read an account, approve a transaction or use a paid feature. Moving authorization into a general identity service creates a much wider—and harder to reason about—boundary.

Evaluation checklist

QuestionEvidence to request
Can it fail closed?Startup validation, dependency readiness and explicit deny behaviour
Can state be recovered?Versioned backup format, integrity verification and a clean-room restore runbook
Are trust boundaries clear?Network diagram, token claims and a list of deliberately excluded responsibilities
Can it be upgraded safely?Migration policy, compatibility contract and rollback procedure
Is production readiness honest?Published limitations, security process and independent assessment status

The RustyAuth deployment model

A standalone RustyAuth realm contains a Dioxus dashboard, one Rust backend and one private, volume-backed SableDB instance. Fleet deployments add a separate central control plane while each realm keeps its own service and data boundary. Configuration is versionable YAML with environment overrides for secrets.

This model is designed for teams that want passkey authentication without accepting a mandatory hosted identity provider. Read thedeployment documentation,configuration contract andbackup and recovery runbook for the operational details.

When a hosted provider is the better choice

Choose a mature hosted provider if your team cannot own an on-call authentication path, needs broad enterprise federation immediately, or requires completed certifications that RustyAuth does not claim. Self-hosting should be a deliberate infrastructure decision, not an assumption that open-source software removes operational work.

Try the complete boundary

Run passkey authentication locally.

Start locally