🔑 Что нужно на входе
- Домен (HTTPS-адрес Passbolt)
- VPS (любой с Ubuntu 22.04+)
- Терпение на пару часов
1. 🧷 Покупаем домен
Reg.ru — код рефералки: 9E45-4577-1048-A828
Хитрый сайт предложит купить 2 домена: 1 за 1р, но хорошо подумайте нужен ли он вам, так как продление 1 из этих 2х в разы дороше
Бюджетные зоны:
.fun,.online,.store,.icu- обращайте внимание на цену продления!
у меня вышло 959 за 2025 год

Получится как то так:

Переводим домен в Cloudflare (с максимальной приватностью)
Зачем это нужно:
Cloudflare позволяет скрыть настоящий IP вашего сервера от внешнего мира, при этом обеспечивая быстрый DNS, защиту от DDoS, автоматические SSL-сертификаты и фильтрацию трафика.
Пошагово:
- Перейдите на https://cloudflare.com и создайте аккаунт.
- Нажмите “Add a site”, введите ваш домен.
- Выберите тариф: Free Plan.
- Cloudflare предложит импортировать DNS-записи — проверьте, что A-записи ведут на ваш VPS.
- Скопируйте два NS-сервера, например:
iris.ns.cloudflare.commarty.ns.cloudflare.com
- Перейдите в Reg.ru → «Мои домены» → нужный домен → Изменить NS-серверы → введите NS от Cloudflare.
- Нажмите “Done, check nameservers” в Cloudflare. Статус станет Active в течение 15–60 минут.
⚙️ Обязательно включите proxy (оранжевое облачко ☁️) для A-записей!
Это обеспечит:
- Сокрытие IP вашего сервера
- Проксирование всего трафика через инфраструктуру Cloudflare
- Работу HTTPS и автоматических сертификатов
2. 📅 Арендуем VPS
Берём самый бюджетный тариф на VDSina — для Passbolt хватит 1 ядра и 1 ГБ ОЗУ.
Лично я пользуюсь уже пару лет этим хостером и он отлично оправдывает свои деньги (бывают сбои, но еще не было такого чтобы проблемы продолжались дольше пары дней).


Моя рекомендация: не жадничать на месте и взять хотя бы 50 гб, так вы избавите себя от необходимости частой очистки логов а стоимость вырастет не сильно.
3. ⚙️ Устанавливаем Docker
Добавим репозиторий Docker:
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
Установим все необходимые пакеты:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin4. 🐳 Docker Compose для Passbolt
mkdir ~/passbolt && cd ~/passbolt
nano docker-compose.yml
Вставляем содержимое:
services:
db:
image: mariadb:10.11
restart: unless-stopped
environment:
MYSQL_RANDOM_ROOT_PASSWORD: "true"
MYSQL_DATABASE: "passbolt"
MYSQL_USER: "passbolt"
MYSQL_PASSWORD: "P4ssb0lt"
volumes:
- database_volume:/var/lib/mysql
passbolt:
image: passbolt/passbolt:latest-ce
#Alternatively you can use rootless:
#image: passbolt/passbolt:latest-ce-non-root
restart: unless-stopped
depends_on:
- db
environment:
APP_FULL_BASE_URL: https://ВАШ КУПЛЕННЫЙ ДОМЕН
DATASOURCES_DEFAULT_HOST: "db"
DATASOURCES_DEFAULT_USERNAME: "passbolt"
DATASOURCES_DEFAULT_PASSWORD: "P4ssb0lt" #можно оставить, но лучше изменить
DATASOURCES_DEFAULT_DATABASE: "passbolt"
EMAIL_DEFAULT_FROM: ВАШ EMAIL
EMAIL_TRANSPORT_DEFAULT_HOST: smtp.gmail.com
EMAIL_TRANSPORT_DEFAULT_PORT: 587
EMAIL_TRANSPORT_DEFAULT_USERNAME: ВАШ EMAIL
EMAIL_TRANSPORT_DEFAULT_PASSWORD: "ВАШ ПАРОЛЬ ДЛЯ API ПРИЛОЖЕНИЯ"
EMAIL_TRANSPORT_DEFAULT_TLS: "true"
PASSBOLT_SSL_FORCE: "false"
volumes:
- gpg_volume:/etc/passbolt/gpg
- jwt_volume:/etc/passbolt/jwt
command:
[
"/usr/bin/wait-for.sh",
"-t",
"0",
"db:3306",
"--",
"/docker-entrypoint.sh",
]
ports:
- 40080:80
- 40443:443
#Alternatively for non-root images:
# - 80:8080
# - 443:4433
volumes:
database_volume:
gpg_volume:
jwt_volume:
Или скачиваем docker-compose.yml с оф сайта:

5. 🌐 Устанавливаем Nginx Proxy Manager
Добавьте в docker-compose.yml отдельным сервисом (NPM) или запустите отдельно. Доступ к веб-панели по http://<ip>:81
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
# These ports are in format <host-port>:<container-port>
- '80:80' # Public HTTP Port
- '443:443' # Public HTTPS Port
- '81:81' # Admin Web Port
# Add any other Stream port you want to expose
# - '21:21' # FTP
# Uncomment the next line if you uncomment anything in the section
# environment:
# Uncomment this if you want to change the location of
# the SQLite DB file within the container
# DB_SQLITE_FILE: "/data/database.sqlite"
# Uncomment this if IPv6 is not enabled on your host
# DISABLE_IPV6: 'true'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt7. 🔐 Проксируем Passbolt через NPM с SSL
В Nginx Proxy Manager:
- Зайдите в панель по адресу
http://<ip>:81 - Войдите под дефолтным логином
admin@example.comи паролемchangeme, затем смените данные - Перейдите во вкладку Proxy Hosts и нажмите Add Proxy Host
- Заполните форму:
- Domain Names: ваш-домен.ru (без
https://) - Scheme:
http - Forward Hostname / IP:
passbolt(или IP, если без Docker internal DNS) - Forward Port:
40080 - Block Common Exploits: включите галочку
- Websockets Support: включите галочку
- Domain Names: ваш-домен.ru (без
- Перейдите на вкладку SSL:
- Выберите: Request a new SSL Certificate
- Включите:
- Force SSL
- HTTP/2 Support (опционально)
- HSTS Enabled (рекомендуется)
- Agree to terms...
- Email: укажите рабочую почту для Let's Encrypt
- Нажмите Save
Через 10–30 секунд сертификат будет выдан, и Passbolt станет доступен по HTTPS.
⚠️ Proxy-режим в Cloudflare должен быть включён (оранжевое облако), иначе не будет работать сокрытие IP и защита трафика. в Cloudflare должен быть включён (оранжевое облако), иначе не будет работать сокрытие IP и защита трафика.
8. 🔒 Финальная безопасность
sudo ufw allow OpenSSH
sudo ufw allow 80,443/tcp
sudo ufw enable
Оставляем только нужные порты. Прячем Passbolt за NPM.
✅ Готово!
У вас есть собственный секьюрный password manager. Семья будет довольна.
Если статья помогла — отблагодарите рефкой:
Домен: код 9E45-4577-1048-A828 на reg.ru
Как развернуть Passbolt на VPS под семью
Если вы — как и я — устали хранить пароли в Google Docs с названием пароли_точно_не_смотреть, самое время поставить Passbolt — приватный менеджер паролей с открытым кодом. Ниже — инструкция, как развернуть его с затратами на домен и VPS.