Сайты
Управляемые дополнения: Postgres и Redis
The Addons tab lets you attach a managed PostgreSQL database or a managed Redis instance to a site without building or maintaining a server for it. Kapsule provisions it, gives you a connection…
Вкладка "Addons" позволяет подключить к сайту управляемую базу данных PostgreSQL или управляемый экземпляр Redis без необходимости создавать и поддерживать собственный сервер. Kapsule подготавливает его, предоставляет строку подключения и аккуратно удаляет её при удалении дополнения.
Где находятся Addons
Откройте Websites, нажмите на сайт, откройте меню Settings на вкладке сайта и выберите Addons. Страница озаглавлена Managed addons.
В каталоге есть два варианта:
| Дополнение | Типичное использование |
|---|---|
| PostgreSQL | Основное хранилище данных для приложения, которое не использует MySQL |
| Redis | Кэширование, хранилище сессий и очереди фоновых задач |
Это отличается от базы данных MySQL, которая идёт в комплекте со стандартным хостингом. Она находится на вкладке Files, затем Database и не требует подготовки: см. Подключение к вашей базе данных через SSH туннель.

Запрос дополнения
- Найдите дополнение в разделе Add a managed database.
- Нажмите Add to site.
Запрос записывается немедленно, и дополнение появляется в Your addons с логотипом PENDING и заметкой Waiting for provisioner. Страница автоматически обновляется каждые пятнадцать секунд, поэтому вы можете оставить её открытой.
Фоновая задача подбирает запросы в режиме ожидания каждые несколько минут, создаёт выделенную базу данных и выделенного пользователя для вашего сайта, а затем записывает зашифрованную строку подключения. Статус затем переходит в ACTIVE.
Запрос или удаление дополнения требует разрешения sites:write. Члены команды только для чтения могут видеть, какие дополнения существуют и их статус, но кнопки скрыты.
По одному каждого типа на сайт
Сайт может содержать одно дополнение PostgreSQL и одно дополнение Redis. Запрос второго дополнения того же типа отклоняется с сообщением о том, что оно уже подготовлено, а каталог скрывает опцию после её установки. Когда оба установлены, раздел каталога читается как All available addons are installed.
Чтение статуса
| Статус | Значение |
|---|---|
| PENDING | Запрошено, находится в очереди у provisioner |
| PROVISIONING | Сейчас создаётся |
| ACTIVE | Готово к использованию |
| FAILED | Подготовка не завершена; причина указана в строке |
| DELETED | Удалено, больше не отображается в списке |
Строка FAILED показывает фактический текст ошибки под ней вместо общего сообщения. Если причина не входит в число того, на что вы можете повлиять, скопируйте её в открытый тикет поддержки: см. Открытие тикета поддержки.
Получение строки подключения
Когда дополнение становится ACTIVE, его строка показывает замаскированную строку подключения с паролем, заменённым на точки, чтобы вы могли подтвердить хост и имя базы данных с первого взгляда без раскрытия учётных данных.
Нажмите Copy connection, чтобы поместить полную строку подключения в буфер обмена. Она расшифровывается на стороне сервера для этого одного запроса и никогда не печатается на странице, поэтому совместное использование экрана и скриншоты не раскрывают её. Каждое раскрытие записывается в журнал аудита сайта и отображается в журнале активности сайта.
Строка находится в обычной форме URL для каждого движка, содержащей хост, порт, пользователя, пароль и имя базы данных, которые были созданы для этого сайта.
Использование в вашем приложении
Вставьте строку подключения туда, где ваше приложение читает свою конфигурацию. На сайте Node.js правильное место для неё - вкладка Secrets, под ключом, таким как DATABASE_URL или REDIS_URL, в окружении production.
Не жёстко кодируйте строку подключения в файл, который вы коммитите. Она содержит живой пароль. Если она достигнет удалённого репозитория, её необходимо рассматривать как скомпрометированную, и единственное реальное решение - удалить дополнение и запросить новое, потому что учётные данные не могут быть повёрнуты на месте из панели.
Удаление дополнения
Нажмите Delete на строке. KPanel просит вас подтвердить и ясно говорит о том, что произойдёт: это удаляет управляемую базу данных, и данные невозможно восстановить.
Строка помечается как удалённая немедленно, и provisioner удаляет базу данных и пользователя при следующем запуске. Существующие соединения будут разорваны как часть этого процесса.
При удалении управляемого дополнения не делается резервная копия, и нет отката. Если в нём что-то есть, что вы хотите сохранить, выгрузите это сначала с помощью pg_dump или redis-cli --rdb, пока дополнение ещё активно и строка подключения ещё работает.
Выбор между вариантами
Используйте PostgreSQL, когда ваше приложение нуждается в реляционной базе данных и написано для Postgres: сильные ограничения, транзакции, JSON колонки и полнотекстовый поиск, который вам иначе пришлось бы добавлять отдельно.
Используйте Redis для того, что можно позволить исчезнуть: кэшированные фрагменты, счётчики лимитов частоты запросов, хранилище сессий и очереди задач. Относитесь к нему как к быстрому и летучему, а не как к системе записей.
Используйте встроенную базу данных MySQL для WordPress и для всего, что уже написано для MySQL. Добавление дополнения Postgres к сайту WordPress ничего полезного не делает, потому что WordPress не может с ним разговаривать.
Устранение неполадок
Дополнение находится в режиме PENDING длительное время. Provisioner работает по расписанию, а не мгновенно. Оставьте страницу открытой, так как она автоматически обновляется, и проверьте позже. Если он не переместился после нескольких проходов, откройте тикет поддержки с доменом сайта и типом дополнения.
Подготовка завершилась с FAILED. Прочитайте ошибку на строке. Удалите неудачное дополнение и запросите его снова, что безопасно: неудачная строка никогда не имела живую базу данных за ней.
Copy connection ничего не делает. Некоторые браузеры блокируют записи в буфер обмена, когда вкладка не в фокусе. Сначала нажмите на страницу, а затем нажмите кнопку снова.
Приложение не может подключиться. Проверьте три вещи по порядку: что статус дополнения ACTIVE, что вы скопировали строку вместо её переввода, и что ваше приложение читает значение, которое вы действительно установили, а не старое из предыдущего развёртывания. Обычно требуется перезагрузка, прежде чем новая конфигурация будет воспринята.
Соединения отклоняются после повторного развёртывания. Подтвердите, что строка подключения в вашей конфигурации по-прежнему совпадает с той, что на этой странице. Удаление и повторный запрос дополнения создаёт нового пользователя и новый пароль, поэтому старая строка не будет работать.
Что дальше
- Хранение секретов приложения для сайта, правильное место для хранения строки подключения.
- Подключение к вашей базе данных через SSH туннель для встроенной базы данных MySQL.
- Параметры сайта для остальной конфигурации на уровне сайта.