Open Source v0.1.1

Identity.
Solved.

Self-hosted IAM server with OAuth 2.0, OpenID Connect, SAML 2.0, and MFA. Deploy in 30 seconds. Own your auth forever.

View on GitHub
32+
Modules
27
DB Models
7
Auth Protocols
0
Lock-in
terminal
$ |
Built with
N
R
P
TS
D
Pr
OAuth 2.0 OpenID Connect SAML 2.0 PKCE (RFC 7636) TOTP (RFC 6238)
Features

Everything you need to secure your stack

Enterprise-grade IAM features without the enterprise complexity. Self-hosted, open-source, and ready in seconds.

Standards-Based Auth

Full OAuth 2.0 with PKCE, OpenID Connect Core 1.0, and SAML 2.0 support. Authorization Code, Client Credentials, Device Code, and Refresh Token grants.

OAuth 2.0 OIDC SAML 2.0 PKCE

Multi-Factor Auth

TOTP-based MFA compatible with Google Authenticator, Authy, and Microsoft Authenticator. Recovery codes, brute force protection, and account lockout.

TOTP Recovery Codes Brute Force

Multi-Tenant Realms

Isolated tenants with independent users, clients, roles, groups, signing keys, themes, and configurations. Perfect for SaaS platforms.

Realms RBAC Groups Roles

Federation & Social Login

LDAP/Active Directory sync, OIDC and SAML identity provider brokering. Connect Google, GitHub, Azure AD, or any compliant IdP.

LDAP Social Login IdP Brokering

Developer SDK

Zero-dependency TypeScript SDK with React hooks. 5 lines to authenticate. Works with Next.js, Vite, or any OIDC-compliant library.

TypeScript React Hooks Zero Deps

Production Ready

Prometheus metrics, health checks, rate limiting, Helmet security headers. Fully stateless design for horizontal scaling behind any load balancer.

Prometheus Health Checks Stateless
SDK

Integrate in minutes, not days

Zero-dependency TypeScript SDK with React hooks. Install from npm, add 5 lines of code, and your app has enterprise-grade authentication.

OAuth 2.0 + PKCE flow with automatic token refresh

React hooks: useAuthme(), useUser(), useRoles()

Works with Next.js, Vite, or any OIDC-compliant library

npm install authme-sdk
import { AuthmeClient } from 'authme-sdk';

const authme = new AuthmeClient({
  url: 'https://auth.example.com',
  realm: 'my-realm',
  clientId: 'my-app',
  redirectUri: 'http://localhost:5173/callback',
});

await authme.init();
if (!authme.isAuthenticated()) {
  await authme.login();
}
Architecture

Built on proven technology

A modern, modular architecture designed for reliability and horizontal scaling.

Your Applications
Web Apps Mobile Apps APIs CLI Tools
AuthMe Server
OAuth 2.0 / OIDC SAML 2.0 IdP & SP Admin REST API Login & Account Pages
Service Layer (NestJS)
Auth Tokens Users Clients Roles MFA Sessions Events Metrics
Data & Integrations
PostgreSQL (Prisma 7) LDAP / AD Sync SMTP Email External IdPs
Backend
NestJS 11 · TypeScript 5.7 · Node 22
Database
PostgreSQL 16 · Prisma 7 ORM
Admin UI
React 19 · Vite 7 · Tailwind CSS 4
Security
Argon2id · JOSE · Helmet
Auth Pages
Handlebars SSR · Themeable
Observability
Pino · Prometheus · Health Checks
Comparison

AuthMe vs. The Rest

See how AuthMe stacks up against the most popular identity solutions.

Feature comparison between AuthMe, Keycloak, Auth0, and Clerk identity providers
Feature
Recommended
AuthMe
Keycloak Auth0 Clerk
Self-Hosted
Open Source
OAuth 2.0 / OIDC
SAML 2.0
Multi-Factor Auth
Multi-Tenant Realms
Admin REST API
Modern Admin UI
Client SDK + React
Themeable Login Pages
LDAP / AD Sync
Docker One-Liner
Language TypeScript Java N/A (SaaS) N/A (SaaS)
Memory ~120 MB ~512 MB N/A N/A
Setup Time 30 sec 5 min 2 min 2 min
Cost Free forever Free $$$ $$
Getting Started

Deploy in 30 seconds

From zero to production-ready identity server in three simple steps.

01
01

Clone & Configure

Clone the repository and customize your environment variables.

terminal
git clone https://github.com/Islamawad132/Authme.git
cd Authme
cp .env.example .env
02
02

Launch with Docker

Start AuthMe and PostgreSQL with a single command.

terminal
docker compose up -d
03
03

Create Your First Realm

Use the Admin API or Dashboard to set up a realm, client, and users.

terminal
curl -X POST http://localhost:3000/admin/realms \
  -H "Authorization: Bearer <api-key>" \
  -H "Content-Type: application/json" \
  -d '{"name": "my-app", "displayName": "My App"}'
AuthMe is running at http://localhost:3000
Admin Console

Beautiful Admin Dashboard

Manage realms, users, clients, roles, and sessions from a modern React-powered admin UI.

localhost:3000/admin
AuthMe Admin my-app
Total Users
2,847 +12%
Active Sessions
384 +5%
OAuth Clients
12
Login Events
18.4k +8%
Recent Users
Search...
A
alice@example.com
Admin Active
B
bob@company.io
User Active
C
carol@startup.dev
User Pending
D
dave@enterprise.com
Manager Active
React 19 Real-time Updates Role-Based Access Dark Theme Responsive
Open Source

Built in the open.
Owned by you.

No vendor lock-in. No surprise pricing. Fork it, extend it, self-host it. Your identity infrastructure, your rules.

Support AuthMe

Help keep this project alive and growing

Buy me a Coffee

For Developers

Get started with the SDK, explore the API, and contribute to the project.

Star on GitHub
Islamawad132/Authme
Install the SDK
npm i authme-sdk

For Teams

Deploy to your infrastructure and manage identity across all your applications.