michael 5d6b7ceeb0 feat(gui): KeysPage scaffold + tokio runtime in main, gtk::Box layout
KeysPage::new spawns the connect-and-render flow on glib::MainContext::
spawn_local. On success it shows a placeholder PreferencesPage (Task 5
fills in the list); on failure it shows StatusPage with a Retry button
that re-runs the connect attempt.

main.rs installs the multi-thread tokio runtime guard before app.run()
so zbus's tokio futures execute correctly when polled by glib.

Layout deviation from plan: ToolbarView is libadwaita v1_4-gated; the
project sticks with gtk::Box vertical for portability (commit c6a5e94
established this pattern).
2026-04-27 09:20:31 -07:00

authforge

Turnkey U2F / FIDO2 passkey / TOTP MFA for Linux desktops. v1 ships on Ubuntu LTS + GNOME; Debian and KDE Plasma are on the roadmap.

Install (end users)

sudo add-apt-repository ppa:dangerousthings/authforge
sudo apt install authforge

Build from source

See docs/BUILDING.md.

Status

Pre-alpha. Phases 07, 15, 16 code complete (workspace scaffold, D-Bus daemon, storage layer, FIDO2 backend, policy apply via pam-auth-update with lockout simulation, PAM pending-flag backstop, authforgectl CLI, gnome-control-center overlay, Ansible role for fleet deployment). Phase 8 (GUI Security Keys tab) and Phase 12 (recovery flow) are the next single-lane bundles. See docs/plans/ for design, roadmap, and per-phase implementation plans.

Copyright 2026 Dangerous Things, LLC. Licensed under the Apache License, Version 2.0.

Description
mfa support and related user management and policy tools for linux
Readme 398 KiB
Languages
Rust 95.9%
C 3.6%
Jinja 0.3%
Makefile 0.2%