🔑 Что нужно на входе

  • Домен (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-сертификаты и фильтрацию трафика.

Пошагово:

  1. Перейдите на https://cloudflare.com и создайте аккаунт.
  2. Нажмите “Add a site”, введите ваш домен.
  3. Выберите тариф: Free Plan.
  4. Cloudflare предложит импортировать DNS-записи — проверьте, что A-записи ведут на ваш VPS.
  5. Скопируйте два NS-сервера, например:
    • iris.ns.cloudflare.com
    • marty.ns.cloudflare.com
  6. Перейдите в Reg.ru → «Мои домены» → нужный домен → Изменить NS-серверы → введите NS от Cloudflare.
  7. Нажмите “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-plugin

4. 🐳 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 с оф сайта:

Install Community Edition on Docker: Passbolt Install Guide
A free, open source password manager for Docker? You’ve got it. A guide to deploying passbolt on a Docker server can be found here.

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/letsencrypt

7. 🔐 Проксируем Passbolt через NPM с SSL

В Nginx Proxy Manager:

  1. Зайдите в панель по адресу http://<ip>:81
  2. Войдите под дефолтным логином admin@example.com и паролем changeme, затем смените данные
  3. Перейдите во вкладку Proxy Hosts и нажмите Add Proxy Host
  4. Заполните форму:
    • Domain Names: ваш-домен.ru (без https://)
    • Scheme: http
    • Forward Hostname / IP: passbolt (или IP, если без Docker internal DNS)
    • Forward Port: 40080
    • Block Common Exploits: включите галочку
    • Websockets Support: включите галочку
  5. Перейдите на вкладку SSL:
    • Выберите: Request a new SSL Certificate
    • Включите:
      • Force SSL
      • HTTP/2 Support (опционально)
      • HSTS Enabled (рекомендуется)
      • Agree to terms...
    • Email: укажите рабочую почту для Let's Encrypt
  6. Нажмите 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.