Если когда-нибудь теряли смартфон с Google Authenticator и потом вручную восстанавливали десятки аккаунтов, вы точно поймёте, зачем придумали 2FAuth. Это проект из категории «сделал себе — оказалось удобно всем». Автор устал от зависимостей от облаков, от бесконечных QR-кодов и от того, что одноразовые пароли живут только в телефоне. В результате появился собственный web-интерфейс для двухфакторки — минималистичный, независимый и полностью под вашим контролем.
Смысл и философия 2FAuth
По сути, 2FAuth — это личная альтернатива приложениям вроде Google Authenticator, Aegis или Authy, только работающая в браузере и разворачиваемая на своём сервере. Можно использовать на десктопе, ноутбуке или смартфоне, не переживая, что завтра очередное обновление iOS вычистит вам все токены.
Главная идея проста: хранить OTP-секреты в своей базе данных, а не где-то в облаках. Это не просто паранойя — это осознанная гигиена. 2FAuth подходит тем, кто хочет вернуть себе контроль над своими кодами и избавиться от ощущения, что «всё держится на одном телефоне».
Интерфейс без суеты
Одна из причин, почему разработчик вообще взялся за проект, — усталость от интерфейсов, где все токены мигают и отсчитывают секунды до обнуления, словно таймер бомбы. 2FAuth предлагает гораздо спокойный подход: вы видите только то, что нужно, и только тогда, когда нужно. Можно группировать аккаунты по папкам, удобно искать, копировать код кликом — и всё это без стресса и мельтешения.
Визуально интерфейс аккуратный, лаконичный и рассчитан на многоплатформенность. Работает и на мобильных браузерах, и на настольных, и через Docker, если хочется запустить «внутри стеклянного куба».
Функции и возможности
Под капотом у 2FAuth полный набор того, что нужно современному генератору кодов:
- Поддержка TOTP и HOTP по RFC 4226 и RFC 6238, а также генерация Steam Guard-кодов;
- Сканирование QR-кодов прямо из браузера — добавление новых учёток занимает секунды;
- Добавление вручную — если QR-код недоступен, есть расширенная форма с нужными параметрами;
- Редактирование уже импортированных записей, включая импорт из других приложений (Google Auth, Aegis, 2FAS);
- Локализация интерфейса (пока английский и французский, но переводы можно добавлять через Crowdin);
- Группировка аккаунтов и фильтрация — при большом числе токенов спасает от хаоса.
Все данные хранятся в вашей базе — Laravel совместим с MySQL, PostgreSQL, SQLite и другими движками, так что ограничений почти нет.
Безопасность: не просто формальность
2FAuth не притворяется корпоративным монстром, но базовые меры реализованы грамотно. Приложение рассчитано на одного пользователя, так что нет риска случайного открытия доступа «всему офису». Авторизация — через пароль или аппаратный ключ (YubiKey, Titan), причём можно вообще отключить стандартный логин-форм. Это редкость для open-source проектов такого класса.
База данных может быть зашифрована. Для этого достаточно активировать опцию шифрования и сохранить значение APP_KEY
из файла .env
. Именно эта строка превращает ваши токены в бессмысленный мусор для любого, кто вдруг получит доступ к базе. И да, 2FAuth автоматически разлогинивает пользователя после периода бездействия — мелочь, а приятно.
Установка: без плясок с бубном
Устанавливать 2FAuth можно по-разному, но большинство, конечно, выбирают Docker. Запуск через docker compose
занимает пару минут: скопировали репозиторий, настроили переменные окружения, и готово. Есть даже готовый контейнер на Docker Hub. Для тех, кто предпочитает ручной подход, остаются классические PHP-способы — Laravel 8+ и любая поддерживаемая база данных.
А если хочется попробовать без развёртывания — существует демо-версия с логином demo@2fauth.app
и паролем demo
. Можно пощупать интерфейс, ничего не ломая и не настраивая.
Импорт и миграция: уходим красиво
Переезд с других приложений 2FA организовал максимально безболезненно. Можно импортировать данные из JSON-экспорта Aegis, 2FAS Auth или собственного формата 2FAuth. Даже Google Authenticator частично поддерживается через QR-коды. По сути, миграция сводится к тому, чтобы считать или загрузить нужный файл, и всё заработает как прежде — только теперь на вашем сервере.
Резервное копирование тоже проще простого: база + файл .env
— и у вас полный образ всего проекта. При сбое или смене устройства восстановление занимает минуты, а не дни.
Кому пригодится 2FAuth
Это решение — находка для тех, кто уже живёт в экосистеме self-hosting: использует собственный Nextcloud, Vaultwarden, Bitwarden RS или Plausible. 2FAuth идеально дополняет этот стек: вы контролируете свои данные и не зависите от политики Google или Microsoft.
Также приложение подойдёт администраторам и разработчикам, у которых десятки токенов для разных сервисов. Хранить всё это на одном смартфоне — не только неудобно, но и рискованно. Здесь же вы можете разделить рабочие и личные учётки, зашифровать базу и даже хранить сервер за VPN или Tor.
Минусы и ограничения
Конечно, без ложки дёгтя не обошлось. Приложение рассчитано на одного пользователя — мультиаккаунты не поддерживаются. Это логично, но может отпугнуть тех, кто хочет общую «корпоративную панель» для команды. Ещё один нюанс — ручная настройка HTTPS и обновлений, если вы не используете Docker. Впрочем, для опытного пользователя это не проблема, а скорее хобби.
Изредка возникают мелкие шероховатости с интерфейсом или QR-сканером в мобильных браузерах, но проект активно развивается, и автор охотно принимает pull request’ы. Лицензия — AGPL-3.0, так что форкать и допиливать можно свободно.
Итоги: маленький герой в мире двухфакторки
2FAuth — это тот случай, когда open-source закрывает реальную боль, а не просто «чтобы было». Простая идея, реализованная с любовью к деталям: собственный хостинг, шифрование, Docker, YubiKey, импорт из популярных приложений и спокойный интерфейс без бегущих таймеров. Всё это делает 2FAuth отличным выбором для тех, кто хочет управлять своей двухфакторкой без зависимости от смартфона и без нервов.
Можно сказать, что это «анти-Google Authenticator»: без рекламы, без облаков, без сюрпризов. Только вы, ваши токены и ваш сервер. А если вдруг потеряете смартфон — в этот раз вы просто откроете браузер и спокойно войдёте.