Repository navigation
FeedKeeper 0.19.0
FeedKeeper v0.19.0 adds passkeys and optional two-factor authentication to every self-hosted installation.
What's New in v0.19.0
Passkeys
- Sign in without a password: Register a passkey in Settings → Account and use your device's PIN, fingerprint or face to sign in. FeedKeeper requires user verification and checks the configured origin and RP ID.
- Manage your credentials: Name multiple passkeys and remove them individually. Private keys and biometric data stay with your credential provider.
- OAuth sign-in: The connector sign-in page links to the same passkey login before consent.
Authenticator and recovery codes
- Optional second factor: Set up an authenticator app with a QR code or manual key, confirm a six-digit code, then save ten single-use recovery codes. A verified passkey can sign in on its own.
- Protected changes: Adding or removing credentials and changing authenticator settings require fresh identity confirmation. Enabling or disabling the authenticator revokes other browser sessions, device/API tokens, OAuth grants, pairing codes and unfinished sign-ins. The current browser remains open so recovery codes can be saved.
- Operator recovery: The local
security:recovercommand removes a lost authenticator and revokes access without changing passwords or passkeys.
Upgrade notes
- Back up the database and the existing
SESSION_SECRETsecurely before updating. Authenticator keys are encrypted using that secret; rotating it requires recovery and re-enrollment. Migration0029runs automatically, and existing accounts keep their current sign-in until they opt in. - Set
PUBLIC_URLto the stable external HTTPS origin before enrolling passkeys. Localhost works for development; ordinary HTTP LAN addresses cannot use passkeys. Keep a recovery route when moving domains. - Native clients can continue pairing through an authenticated browser and using revocable device tokens.
Documentation: Account security and recovery, Changelog.
Validation: backend and web tests, type checks, production build, cryptographic WebAuthn verification tests and isolated browser checks for passkey enrollment, authenticator setup and mobile layout.
Quick start with Docker
mkdir feedkeeper && cd feedkeeper
curl -fsSLO https://raw.githubusercontent.com/visualfusion/feedkeeper/main/compose.yaml
echo "SESSION_SECRET=$(openssl rand -hex 32)" > .env
docker compose up -dOpen http://localhost:3000, then create the first admin account. Configure HTTPS and PUBLIC_URL before enrolling production passkeys.