LinOTP

LinOTP is an open-source two-factor authentication server that manages one-time passwords for user logins.

  • Other
  • Productivity
  • Tools & Utilities
LinOTP is an open-source two-factor authentication server that manages one-time passwords for user logins. It supports Open Authentication (OATH) standards such as hash-based message authentication code (HMAC) and time-based HMAC, and it can be extended with custom challenge-response, Quick Response (QR) code, and push-message tokens. System administrators use LinOTP to provide a modular, self-hosted authentication option instead of relying only on vendor authenticator apps.

Platform availability

Available on 1 of 9 platforms

  • Unraid
  • TrueNAS (not listed)
  • Umbrel (not listed)
  • ZimaOS (not listed)
  • Proxmox (not listed)
  • Helm (not listed)
  • Mac (not listed)
  • Windows (not listed)
  • Linux (not listed)

Health score?A 0-100 score computed nightly from four factors: maintained (40%: recent commits and steady activity), popular (25%: GitHub stars, log scale), easy to install (20%: platforms, install notes, setup guides, Docker image) and light to run (15%: minimum RAM, ARM support). When the source code has been checked, a fifth factor, security check (20%: automated scan for committed secrets, unsafe desktop-app settings, known-vulnerable dependencies and project hygiene; any serious finding caps it at 20), is added. Factors without data are left out and the rest are rescaled.

65/100 Good

Maintained
100last commit 6 days ago
Popular
55550 GitHub stars
Easy to install
351 install platform, install notes, Docker image
Light to run
304 GB minimum RAM

Availability: platform listings confirmed today, links checked 15 days ago

GitHub stars
550
Open issues
136
Last commit
2026-10-07
License
AGPL-3.0
Activity
declining

Checked 6 days ago - source: GitHub (LinOTP/LinOTP)

Resources & Compatibility

Minimum requirements: 4 GB RAM, 2 CPU core(s). ARM (e.g. Raspberry Pi) is not supported.

Checked 15 days ago - source: Docker Hub image tags and published docs

First-install notes

  • Set up LinOTP and your admin login Run the init steps to create LinOTP's data, cache, and log folders, database, audit and encryption keys (files that track changes and protect secrets), and a local admin username/password. Without this, LinOTP has nowhere to keep settings and no account for you to log in with. source
  • Start the LinOTP web interface Run linotp run to start the management website, then open it in a browser and sign in with the admin you created. This is how you add users and security tokens; without it, you cannot open the web page. source
  • Use the default web address first By default, LinOTP listens on localhost:5000, so only the same computer can open the web page. If you need access from another device, open port 5000 (a numbered doorway for web traffic) or change the address, or other devices will not be able to connect. source

Fetched 11 days ago - each note links to its source

Alternatives

No alternatives collected yet.

Common questions

What settings should I change before running LinOTP in production?

Set a strong LINOTP_ADMIN_PASSWORD and LINOTP_SESSION_COOKIE_SECURE=true, and configure SSL/TLS termination with a reverse proxy. Use persistent volumes for /data, /cache, and the database.

Can LinOTP use a hardware security module?

Yes, LinOTP offers PKCS11/HSM support for hardware security modules.

Can LinOTP be used for Windows logon?

The LinOTP vendor provides a credential provider that enables Windows logon with OTP.

Does LinOTP log authentication and admin actions?

LinOTP provides a signed audit log that records authentications and management actions.

Why does LinOTP report 'Access denied for user root @ localhost' during Debian installation?

This can occur during installation or upgrade of a Debian package if the SQL user entered did not exist yet.

Answers sourced from github.com, linotp.org, linotp.org, selfhost.directory, www.reddit.com

Community

Collected 14 days ago - public community threads