LinOTP
LinOTP is an open-source two-factor authentication server that manages one-time passwords for user logins.
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
Variants
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
- LinOTP and physical tokens : r/sysadmin - Reddit (reddit)
- OpenOTP feedback : r/sysadmin - Reddit (reddit)
- Free OTP Servers? : r/networking - Reddit (reddit)
- Anybody using LinOTP with AD? : r/sysadmin - Reddit (reddit)
Collected 14 days ago - public community threads