Skip to content

FerrisKey is an open-source IAM solution designed for modern cloud-native environments. With its high-performance API written in Rust and its intuitive web interface developed in Typescript/React, FerrisKey offers a robust and flexible alternative to traditional IAM solutions.

License

Notifications You must be signed in to change notification settings

ferriskey/ferriskey

Repository files navigation

FerrisKey — Modern Open‑Source IAM in Rust

FerrisKey — Open‑Source, High‑Performance Identity & Access Management
Cloud‑native • Extensible • Built in Rust

CI Release License Stars Sponsor


✨ Why FerrisKey?

FerrisKey is a modern Identity & Access Management (IAM) platform built with Rust and a hexagonal architecture. It aims to be a serious open‑source alternative to heavyweight IAMs fast, modular, and cloud‑native by design.

  • 🦀 Performance-first — Rust, async I/O, low latency.
  • 🧱 Hexagonal architecture — clean domain, clear ports/adapters.
  • 🏢 Multi‑tenant realms — strong isolation of users/roles/clients.
  • 🔐 Modern auth — OIDC/OAuth2, MFA (TOTP).
  • 🧩 Extensibility — native modules for MFA, auditability, and webhooks.
  • ☁️ Cloud‑native — official Helm chart; ready for Kubernetes.

🧭 Table of Contents

🌟 Features

Capability Details
OIDC / OAuth2 Standards‑compliant flows for modern apps & services.
Multi‑Tenant Realms Logical isolation of users, roles, clients, secrets.
Clients & Service Accounts Fine‑grained role mapping; bitwise role system.
MFA (TOTP) Pluggable strategies with required actions.
Observability Prometheus metrics, Grafana dashboards.
Kubernetes‑ready Helm chart with sane defaults; OCI distribution.

License: Apache‑2.0. No paywalls. Community‑first.

🚀 Quick Start

Option A — Using latest Docker image

docker compose --profile registry up -d

Then visit http://localhost:5556 to access the console. The default credentials are admin and admin.

Option B — Re-build Docker image

docker compose --profile local up -d

Then visit http://localhost:5555 to access the console. The default credentials are admin and admin.

Option C — Helm (Kubernetes)

Requires a reachable Postgres (or include it via your platform’s recommended operator).

See chart documentation.

Option D - Cargo

  1. Clone the repo
git clone https://github.com/ferriskey/ferriskey
  1. Launch the database and execute migrations with sourced env variables
cd api
cp env.example .env
# feel free to change the env variables in .env to your liking.
docker compose up -d
cd ../core
# to install sqlx you might need to run `cargo install sqlx-cli`
DATABASE_URL=postgres://postgres:postgres@localhost:5432/ferriskey sqlx migrate run
  1. Launch the API
cd ../api
cargo run
  1. Launch the frontend (optional)
cd ../front
source env.sh
pnpm install
pnpm run dev

Then visit http://localhost:5555 to access the console. The default credentials are admin and admin.

⚙️ Configuration

Common environment variables (example):

PORT=3333
ENV=development
LOG_LEVEL=info
DATABASE_URL=postgres://postgres:postgres@127.0.0.1:5432/ferriskey

ADMIN_PASSWORD=admin
ADMIN_USERNAME=admin
ADMIN_EMAIL=admin@ferriskey.rs

ALLOWED_ORIGINS=http://localhost:5555

By default, the API will listen on port 3333 and the frontend on port 5555.

🧩 Modules

  • Trident — MFA & security scopes TOTP, WebAuthn, Magic Link; flexible required actions.

  • SeaWatch — Observability & audit logs Security event trails; queryable from the console; exportable.

  • Webhooks — Event‑driven extensibility Subscribe to user/client/realm lifecycle events without forking core.

🏗️ Architecture

FerrisKey follows a Hexagonal Architecture (Ports & Adapters) to keep business logic pure and infrastructure replaceable.

📈 Observability

  • Metrics: /metrics (Prometheus format)
  • Dashboards: Starter Grafana dashboards included in Helm values (optional)

🤝 Contributing

We welcome contributions of all kinds bugfixes, features, docs, testing.

  1. Read CONTRIBUTING.md
  2. Pick an issue (good first issues labelled)
  3. Open a PR with tests and a concise description

Join discussions to help shape modules, APIs, and UX.

🔐 Security

Please report vulnerabilities responsibly via Security Advisories. Avoid filing publicly until coordinated disclosure is agreed.

📜 License

Apache‑2.0 — free to use, modify, and distribute.

🔗 Links

About

FerrisKey is an open-source IAM solution designed for modern cloud-native environments. With its high-performance API written in Rust and its intuitive web interface developed in Typescript/React, FerrisKey offers a robust and flexible alternative to traditional IAM solutions.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors 21