Skip to content

Getting Started ​

AuthHero is an open-source authentication system compatible with Auth0 APIs. Choose the quickest path to get running:

The fastest way to try AuthHero. No Node.js required.

bash
git clone https://github.com/markusahlstrand/authhero.git
cd authhero
docker compose up --build

AuthHero is now running at http://localhost:3000 with:

  • Admin login: admin / admin
  • SQLite database (persisted in a Docker volume)
  • Management API ready to use

Configuration ​

Customize via environment variables in docker-compose.yml:

VariableDefaultDescription
PORT3000Server port
ISSUERhttp://localhost:3000/Token issuer URL (must match your public URL)
ADMIN_USERNAMEadminAdmin username
ADMIN_PASSWORDadminAdmin password
SEEDtrueAuto-seed database on startup

WARNING

Change ADMIN_PASSWORD before deploying to production.

See Docker deployment for production configuration with TLS and reverse proxy.

Option 2: npm create ​

Scaffold a new project with the interactive CLI:

bash
npx create-authhero my-auth-app

The CLI will guide you through:

  1. Choosing a template (local for SQLite, cloudflare for D1, aws-sst, or proxy)
  2. Whether to include the admin UI at /admin and enable multi-tenant mode
  3. Installing dependencies, running migrations and starting the dev server

The admin user is not created by the CLI. The local template serves HTTPS on https://localhost:3000 with a self-signed certificate; open /setup there on first run and the wizard creates the first tenant, the admin user and a default application — see Your first login.

Non-Interactive Mode ​

bash
npx create-authhero my-app --template local --yes

CLI Options ​

OptionDescription
-t, --template <type>local (SQLite), cloudflare (D1), aws-sst, or proxy
--package-manager <pm>npm, yarn, pnpm, or bun
--admin-uiServe the admin dashboard at /admin (local and cloudflare)
--multi-tenantEnable multi-tenant support
--skip-install / --skip-migrate / --skip-startStop after scaffolding
-y, --yesSkip prompts, use defaults

What's Next ​

Your first login walks through the whole thing end to end on the server you just started: sign in to the admin dashboard at /admin, then drive an authorization-code login by hand — /authorize in the browser, the universal login screen, and the code exchange at /oauth/token.

After that, point your own application at AuthHero: add its callback URL to an application in the dashboard and use any Auth0-compatible SDK.

Learn More ​

Dual-licensed: AGPL-3.0-only or commercial license.