Установка KeeWeb на Ubuntu 20.04
TL;DR
KeeWeb — лёгкий открытый менеджер паролей совместимый с KeePass. В этой инструкции показано, как запустить KeeWeb в Docker на Ubuntu 20.04: обновить систему, установить Docker, собрать образ из репозитория и запустить контейнер, затем открыть веб-интерфейс и создать файл паролей.

KeeWeb — это open-source менеджер паролей. Он совместим с форматом KeePass (.kdbx), доступен как веб-версия и как настольные приложения. KeeWeb поддерживает синхронизацию с облачными хранилищами (OneDrive, Google Drive, Dropbox и др.), имеет теги, историю версий, темы, горячие клавиши и встроенный просмотр изображений. В этой пошаговой инструкции вы установите и запустите KeeWeb на сервере с Ubuntu 20.04 через Docker.
Кому подходит эта инструкция
- Тем, кто хочет быстрый веб-интерфейс для локальных или приватных хранилищ паролей.
- Администраторам серверов Ubuntu 20.04 со знанием базовых команд Linux.
Требования
- Сервер с Ubuntu 20.04.
- Доступ к root или пользователь с sudo.
- Понимание базовой работы с Docker.
Подготовка системы
Обновите пакеты перед началом:
apt-get update -yУстановите зависимости:
apt-get install apt-transport-https git ca-certificates curl software-properties-common gnupg2 unzip -yВажно: если сервер публичный, настройте брандмауэр и доступ по SSH перед тем, как открывать HTTP-порт извне.
Установка Docker
Добавьте репозиторий Docker и его GPG-ключ, затем установите Docker CE. Пример команд:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
apt-get update -y
apt-get install docker-ce -yПроверьте версию Docker:
docker -vОжидаемый результат — строка версии Docker, например “Docker version 20.10.x”.
Сборка и запуск KeeWeb (образ из GitHub)
Клонируйте репозиторий с Dockerfile для KeeWeb:
git clone https://github.com/SvenC56/docker-keeweb.gitПерейдите в папку и соберите образ Docker:
cd docker-keeweb
docker build -t svenc56/keeweb .Пример вывода сборки (урезано):
---> 98ab35023fd6
Step 6/8 : WORKDIR /opt/keeweb
---> Running in e5966f3a3cec
Removing intermediate container e5966f3a3cec
---> e36bc8c356bc
Step 7/8 : COPY --from=git /keeweb /usr/share/nginx/html
---> 7cde550d672f
Step 8/8 : EXPOSE 80
---> Running in b784c9df85d7
Removing intermediate container b784c9df85d7
---> 11ddfdbf04f8
Successfully built 11ddfdbf04f8Проверьте загруженные образы:
docker imagesЗапустите контейнер и пробросьте порт 80 наружу:
docker run -d -p 80:80 svenc56/keewebКоманда вернёт ID контейнера, например:
70c5b0b493759eca931dfdbe473fb090d8e66d4269b6f7b0b221568ace020721Проверьте, что контейнер запущен:
docker psВы должны увидеть запись с образом svenc56/keeweb и перенаправлением портов 0.0.0.0:80->80/tcp.
Доступ к KeeWeb
Откройте в браузере адрес:
Вы увидите панель KeeWeb:

Нажмите на значок “+ i” для добавления нового файла базы данных паролей:

Нажмите “Создать” внизу, чтобы начать новую базу:

Укажите мастер-пароль, имя базы и при желании ключ-резервную копию. Нажмите кнопку “Сохранить в” чтобы скачать .kdbx файл на локальную машину и завершить настройку.

Если вы хотите настроить синхронизацию с облаком, выберите нужный сервис в интерфейсе:

В разделе “Shortcuts” можно просмотреть горячие клавиши:

Во вкладке “Appearance” настраиваются язык, тема и шрифт:

Практические советы и безопасность
Важно: по умолчанию контейнер слушает HTTP на порту 80 без TLS. Для публичного сервера настройте обратный прокси (nginx, Traefik) и включите HTTPS (Let’s Encrypt). Ограничьте доступ по брандмауэру (ufw, iptables).
Если вы храните .kdbx в облаке, убедитесь, что у вас надёжный мастер-пароль и при необходимости два фактора (2FA) в облачном провайдере.
Откат и удаление
Остановить и удалить контейнер:
docker stop
docker rm Удалить образ:
docker rmi svenc56/keewebКритерии приёмки
- Веб-страница KeeWeb доступна по HTTP/HTTPS.
- Контейнер svenc56/keeweb запущен и работает (docker ps).
- Удалось создать и скачать .kdbx файл и открыть его в интерфейсе.
Чеклист для запуска (быстрый)
- Обновлены пакеты: apt-get update
- Установлены зависимости
- Установлен Docker и запущен демон
- Собран и запущен образ svenc56/keeweb
- Настроен брандмауэр и HTTPS (для публичного сервера)
Когда этот подход не подходит
- Если нужен корпоративный уровень аудита и централизованное управление ключами — лучше рассмотреть специализированные решения (например, серверные менеджеры паролей с RBAC).
- Если правило безопасности требует хранения паролей только в управляемом хранилище со строгой интеграцией SSO — KeeWeb в контейнере может быть недостаточен.
Альтернативы
- KeePass + Sync (локально) — лёгкий вариант без веб-интерфейса.
- Bitwarden (self-hosted) — более полнофункциональное корпоративное решение.
- Passbolt, Vault — для командного управления секретами.
Мини‑методология установки
- Подготовить сервер и доступы.
- Обновить систему и установить зависимости.
- Установить Docker и проверить работу.
- Склонировать репозиторий и собрать образ.
- Запустить контейнер и проверить веб-интерфейс.
- Настроить безопасность (HTTPS, брандмауэр, резервное копирование .kdbx).
Риски и меры смягчения
- Риск: открытый HTTP и утечка через сеть. Мера: настроить HTTPS и ограничить доступ IP.
- Риск: потеря .kdbx файла. Мера: хранить резервные копии и использовать безопасное облако с шифрованием.
- Риск: уязвимости в образе. Мера: периодически обновлять образ и следить за обновлениями безопасности.
Короткий глоссарий
- .kdbx — формат базы данных KeePass, содержащий зашифрованные записи.
- Docker image — собранный образ, из которого создаются контейнеры.
- Контейнер — изолированный запуск процесса приложения.
Заключение
Вы успешно развернули KeeWeb на Ubuntu 20.04 в Docker. Теперь вы можете создавать локальные файлы паролей (.kdbx), синхронизировать их с облаком и использовать удобный веб-интерфейс. Не забудьте настроить HTTPS и резервное копирование для безопасности.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента