Сидел себе как-то отечественный разработчик и думал, как можно реализовать функционал известного инструмента для хранения паролей KeePass, уместив это всё в веб-приложение (PWA). Так на свет и родился KeeWeb – сервис с открытым исходным кодом, работающий напрямую из браузера.
Ранее мы уже рассматривали 2 других варианта self-hosted менеджеров для хранения паролей Vaultwarden и Nextcloud Passwords. Сами по себе это прекрасные сервисы, но подойдут далеко не всем пользователям. KeeWeb, в свою очередь, имеет более низкий порог вхождения, так как (сюрприз), его можно вовсе не устанавливать на свою машину. При этом пароли хранятся не на сервере разработчика, а в личных облачных хранилищах пользователя.
Что вообще представляет из себя Keeweb? Кому он пригодится? Давайте узнаем. Но по традиции, для начала небольшая информация о способах установки.
Установка KeeWeb
Как я уже упомянул, KeeWeb является PWA (Progressive Web App), а значит не требует установки на компьютер пользователя или серверную машину. Использовать сервис можно напрямую из браузера.
Для тех же, кто не привык доверять разработчикам, есть альтернативные варианты.
Доступность на платформах
Cloudron | CapRover | YunoHost |
– | +* | + |
Установка KeeWeb при помощи YunoHost
Приложение размещено в магазине YunoHost и устанавливается буквально в пару кликов. Для self-hosted это самый предпочтительный способ, так как не нужно беспокоиться о настройках Nginx или получении сертификата.
Установка KeeWeb при помощи Docker
Вторым способом установки вполне себе официальным методом является Docker:
docker run --name keeweb -d -p 443:443 -p 80:80 -v $EXT_DIR:/etc/nginx/external/ antelle/keeweb
И, как мы знаем, где есть установка через Docker, там можно осуществить её при помощи CapRover. На момент написания статьи мне не удалось опробовать этот метод, но обязательно вернусь с правками, если это получится.
Способы хранения паролей
KeeWeb сходу встречает пользователя диалогом создания / открытия хранилища паролей.

Сервис поддерживает как локально расположенные на ПК файлы, так и не расположенные в облачных хранилищах, среди которых:
- Dropbox;
- Google Диск;
- OneDrive;
- А также любое облако с поддержкой WebDav.
Для входа в публичные облачные хранилища поддерживается авторизация OAuth. Достаточно ввести логин и пароль от учётной записи сервиса и подтвердить ряд разрешений.
Что касается WebDav, здесь спокойно смогут работать:
- PCloud;
- Облако Mail.ru;
- Nextcloud / Owncloud;
- Яндекс.Диск (хоть и не рекомендуется из-за ограничений на WebDav со стороны компании).
В случае самостоятельного хостинга сохранить хранилище прямо на сервере не выйдет. Вам будет необходимо синхронизировать его с любым облачным хранилищем или сохранить в виде обычного kdbx
файла.
Интерфейс
Главный экран KeeWeb будет привычен пользователям других похожих сервисов. Слева располагается нескрываемое меню, где можно выбрать, какие пароли и записи будут отображаться. Далее следует сам список записей с поиском, а большую часть окна занимает окно с отображением и редактированием данных.

Каких-либо отвлекающих лично меня факторов не заметил. Однако было бы неплохо сворачивать панель меню до небольшого дока с иконками, как это сделано, например, в мобильной версии интерфейса. Сам же UI бесшовный, а все элементы расположены в поле зрения пользователя. Дополнительных диалоговых окон не предусмотрено, исключение составляют настройки, которые здесь вынесены на отдельную страницу.
В настройках KeeWeb можно выбрать одну из 12 тем оформления, а также установить дополнительные из раздела плагинов.
Абсолютно таким же образом устанавливается, например, Русский язык и ряд других локализаций, которых тут целое множество.
Для навигации можно использовать горячие клавиши. Перенастроить их нельзя, и скорее всего будет невозможно и в будущем, однако это всё равно достаточно приятная мелочь.

Функции KeeWeb
Каталогизация паролей
В первую очередь, затрагивая функциональность, хотелось бы отметить возможности каталогизации паролей. KeeWeb не выдумывает велосипед и позволяет разделять пароли по нескольким критериям: группы, метки, цвет.
Группы – это понятная всем иерархическая система, состоящая из папок, подпапок и самих записей. Вложенность в рамках KeeWeb не ограничена.
Метки тоже должны быть знакомы тем, кто пользовался ранее любым менеджером паролей. Это что-то вроде тэгов, которые можно поставить отдельным записям.
Цвет же выступает в качестве замены избранного. Так пользователь может присвоить важным паролям свой собственный флажок цвета и иметь к ним быстрый доступ.
Дополнительно выделить записи можно при помощи иконок, которых здесь не так много по умолчанию, но в случае чего можно загрузить свою.
Всё это визуальные элементы, которые безусловно помогают в каталогизации. Но что если у пользователя несколько сотен паролей и нужно найти один конкретный, без привязки к группе или метке? В таком случае поможет общий поиск по всем записям в хранилище. Фильтров у него более чем достаточно, однако у меня наблюдались проблемы с ключевой фразой из заметок. Найти её удалось только задав опцию с точным регистром.

Генерация паролей
Так уж повелось, что хранилище паролей не может быть без генератора новых паролей. Тут он также имеется и работает ничуть не хуже аналогов.
Пользователь может задать длину пароля, вид символов, обязательно входящих в данный пароль, или вовсе отметить один из специальных пресетов:
- PIN;
- MAC адрес;
- 128-битный хэш;
- 256-битный хэш.
Аудит
KeeWeb, как и другие похожие сервисы, способен проверять пароли на надёжность. Кроме вполне себе стандартной проверки через онлайн-ресурс Have i been pwned, данное хранилище может проверять случайность и длину пароля, а также его возраст.
Плохие пароли помечаются программой в записи, но, к сожалению, отдельной удобной вкладки для этого не предусмотрено.

Интеграции
У KeeWeb, помимо Web версии существуют десктоп клиенты, однако воспринимать их как полноценные приложения не стоит. По сути это обёртка WEB приложения, работающая в изолированном браузере.
А вот с мобильными клиентами сервису не повезло. Впрочем, по понятным причинам. Использовать KeeWeb на мобильном можно в связке с Keepass2Android или KeePassDX. Если же полноценные клиенты пользователю не нужны, интерфейс KeeWeb хорошо оптимизирован под использование на мобильных браузерах.
Для всех популярных браузеров также можно найти расширение KeeWeb Connect. Оно работает как любое другое браузерное расширение для паролей, однако требует одно из двух условий: установленное и открытое в фоне десктопное приложение KeeWeb или постоянно открытая вкладка с сервисом в браузере.
Итог
Итак, мы разобрались с тем, на что способен данный сервис, однако актуальным остаётся ровно один вопрос. Кому на самом деле может пригодится KeeWeb? Думаю ни для кого не секрет, что в первую очередь его будут использовать энтузиасты, помешанные на селфхостинге. Это те пользователи, что привыкли хранить все данные при себе.
Что касается остальных людей, здесь не до конца всё понятно. С одной стороны, KeeWeb не нужен, когда есть KeePass и другие оффлайн клиенты с аналогичным функционалом. С другой стороны, он может пригодится в тех условиях, когда устанавливать сторонний софт просто не вариант. Например, на работе.