Thank you for your interest in AuthEngine. This guide applies to all repositories in the auth-engine organization.
Tagline: One identity for every app and organisation.
| Repository | What to change here |
|---|---|
| auth-engine | FastAPI backend, IAM, OIDC, migrations |
| auth-engine-dashboard | Next.js admin UI |
| auth-engine-infra | Terraform, Docker Compose, documentation |
| .github | Org profile, CONTRIBUTING, SECURITY |
Documentation (canonical): docs.authengine.org
- Read the Quick Start and run the stack locally.
- Search existing issues — avoid duplicate work.
- For large changes, open an issue first to discuss approach.
- Look for issues labeled
good first issueif you are new to the codebase.
git clone https://github.com/auth-engine/auth-engine-infra.git
cd auth-engine-infra/compose
cp env.local.example .env
# Set SECRET_KEY and JWT_SECRET_KEY (openssl rand -hex 32)
docker compose up -d --build
docker exec authengine-api auth-engine migrate| Service | URL |
|---|---|
| API / Swagger | http://localhost:8000/docs |
| Dashboard | http://localhost:3000 |
Clone URLs in compose/.env default to the auth-engine org on GitHub.
git clone https://github.com/auth-engine/auth-engine.git
cd auth-engine
uv sync
cp .env.example .env # configure Postgres, Redis, MongoDB
auth-engine migrate
auth-engine runRequires Python 3.12+, uv, and running Postgres, Redis, and MongoDB (or use Compose from auth-engine-infra).
git clone https://github.com/auth-engine/auth-engine-dashboard.git
cd auth-engine-dashboard
cp .env.example .env.local
npm ci && npm run devPoint NEXT_PUBLIC_API_URL at a running API (local or remote).
- Fork the repository and create a branch from
main:feature/short-descriptionfix/short-descriptiondocs/short-description
- Keep PRs focused — one logical change per PR when possible.
- Test locally before opening the PR:
- Backend: lint/typecheck via CI; run migrations if you changed models.
- Dashboard:
npm run buildmust pass. - Docs: verify links if you edited
auth-engine-infra/docs/.
- Describe your PR:
- What changed and why
- How you tested it
- Related issue (
Fixes #123)
- Open the PR against
main.
Maintainers will review when they can. Be patient — this is an early-stage open-source project.
- Match existing style in each repo (Ruff/mypy for Python, ESLint for TypeScript).
- Do not commit secrets (
.env, API keys, passwords). Use.env.examplefor templates only. - Add or update documentation in
auth-engine-infra/docs/when behavior changes. - Prefer small, readable diffs over large refactors unless discussed in an issue first.
| Type | Where |
|---|---|
| Bug | Bug report issue |
| Feature idea | Feature request issue |
| Question | Question issue |
| Security vulnerability | See SECURITY.md or docs — Security Policy — do not open a public issue |
By contributing, you agree that your contributions will be licensed under the MIT License used across AuthEngine repositories.
- Website: authengine.org
- Docs: docs.authengine.org
- Org: github.com/auth-engine