Перейти к содержимому

Перед установкой ​

  1. Сервер с Linux, Docker и Docker Compose v2 (см. требования). Docker ставится по официальной инструкции.
  2. Домен, на котором будет Buglapse, например errors.example.com, и A-запись этого домена на IP сервера. Без неё не выпустится сертификат.
  3. Свободные порты 80 и 443 — на них Caddy получает сертификат и принимает трафик.

Лицензионный ключ заранее не нужен: установщик сам выдаст пробную лицензию на 30 дней.

Установка ​

bash
curl -fsSL https://app.buglapse.com/api/self-hosted/install.sh | sudo bash

Установщик спросит:

  1. Лицензионный ключ (bgl1.…) — или нажмите Enter, чтобы получить пробный. Тогда он спросит домен и email, попросит принять условия использования и пришлёт на почту шестизначный код. После кода ключ выдаётся сразу; на тот же email заводится аккаунт на app.buglapse.com, где потом видны ваши инстансы и ключи (см. Лицензия).
  2. Домен, если ещё не спросил.

Дальше он сам:

  • входит в registry образов с ключом и скачивает последнюю версию;
  • раскладывает файлы в /opt/buglapse, генерирует ключ шифрования и пароль базы;
  • проверяет сервер;
  • запускает PostgreSQL и Redis, создаёт схему базы, устанавливает ключ;
  • показывает форму первого аккаунта: email, имя, название организации и пароль (дважды). Этот пользователь — администратор инстанса и владелец организации;
  • запускает сервер, панель и прокси.

В конце он пишет адрес — откройте его и войдите. Дальше:

  1. Настройте почту — без неё не уходят приглашения, сброс пароля и алерты.
  2. Создайте проект и подключите SDK, как в установке SDK: DSN и сниппет — в Настройки → Общие и Настройки → Скрипт загрузчика проекта, уже с вашим доменом.
  3. Пригласите команду: Организация → Участники.

Ключ уже есть

Его можно передать сразу — вместе с доменом:

bash
curl -fsSL https://app.buglapse.com/api/self-hosted/install.sh | sudo bash -s -- \
    --license bgl1.… --domain errors.example.com

Готовая команда с вашим ключом и доменом есть на странице Self-hosted в аккаунте на app.buglapse.com.

Без вопросов ​

Для Ansible, Terraform и CI всё передаётся опциями, пароль администратора — переменной BUGLAPSE_ADMIN_PASSWORD (не короче 8 символов):

bash
curl -fsSL https://app.buglapse.com/api/self-hosted/install.sh | sudo BUGLAPSE_ADMIN_PASSWORD='…' bash -s -- \
    --license bgl1.… \
    --domain errors.example.com \
    --admin-email you@example.com \
    --admin-name "Ваше Имя" \
    --organization Acme

Если чего-то не хватает, а терминала нет, установщик остановится и назовёт недостающую опцию.

Опции ​

ОпцияЧто делает
--license KEYЛицензионный ключ (иначе — переменная BUGLAPSE_LICENSE_KEY, иначе спросит или предложит пробный)
--domain DДомен инстанса
--admin-email, --admin-name, --organizationПервый аккаунт и его организация
--dir DIRКаталог установки, по умолчанию /opt/buglapse
--version XКонкретная версия вместо последней
--set KEY=VALUEСтрока в .env, можно несколько: --set TLS=off --set HTTP_PORT=8080
--skip-checksПродолжить, даже если проверка сервера нашла проблемы
--skip-organizationНе создавать первый аккаунт — потом ./buglapse admin
--registry HOSTСвой зеркальный registry образов
--no-loginОбразы уже загружены на сервер — не входить в registry (изолированная сеть)

Проверка сервера ​

Перед установкой скрипт проверяет машину и пишет по пункту на строку: ✓ — в порядке, ! — предупреждение, ✗ — установка не продолжится.

  • Docker и Docker Compose, архитектура, память, CPU, свободное место под Docker.
  • Порты 80 и 443 не заняты другой программой.
  • Домен указывает на этот сервер: его A-запись сравнивается с адресом, с которого сервер виден в интернете. Если они различаются — это предупреждение (за NAT или CDN это нормально), но Let's Encrypt должен достучаться до сервера по порту 80.
  • Ключ выдан на этот домен и не истёк.
  • app.buglapse.com доступен — оттуда берутся версии и продлённые ключи.

Запустить проверку отдельно можно в любой момент:

bash
cd /opt/buglapse && sudo ./buglapse check

Свой прокси перед Buglapse ​

Если TLS уже терминирует ваш балансировщик или nginx, выключите сертификаты Caddy и отдайте ему порт для обычного HTTP:

bash
curl -fsSL https://app.buglapse.com/api/self-hosted/install.sh | sudo bash -s -- \
    --set TLS=off --set HTTP_PORT=8080

Ваш прокси принимает HTTPS на домене инстанса и передаёт всё — без разделения путей — на http://сервер:8080, сохраняя заголовок Host и передавая X-Forwarded-Proto / X-Forwarded-For. Адрес для пользователей и SDK остаётся https://{домен}.

Локальная установка ​

Чтобы попробовать Buglapse на своей машине, укажите домен localhost (или 127.0.0.1): он работает по обычному http://localhost без сертификата, и для него подходит ключ любого домена — например, пробный ключ инстанса, который вы потом поставите на сервер.

bash
curl -fsSL https://app.buglapse.com/api/self-hosted/install.sh | sudo bash -s -- \
    --domain localhost --set HTTP_PORT=8080

Панель — http://localhost:8080.

Если установка остановилась ​

  • Проверка не прошла — исправьте то, что отмечено ✗, и запустите sudo ./buglapse install из каталога установки ещё раз: всё, что уже введено, сохранено в .env.
  • Registry отклонил ключ — ключ истёк, отменён или скопирован не полностью (он длинный и начинается с bgl1.). Ключи — в аккаунте на app.buglapse.com, страница Self-hosted.
  • Первый аккаунт не создался — sudo ./buglapse admin покажет форму ещё раз.
  • Сервер не поднялся — скрипт выводит последние строки его лога; полный — docker compose logs app-blue в каталоге установки.

Управление ​

Все команды — из каталога установки, от root (или пользователя из группы docker):

КомандаЧто делает
./buglapse statusДомен, активный слот и его версия, версия базы, режим обновления
./buglapse upgradeОбновить до последней версии — см. Обновления
./buglapse restartПрименить изменённый .env и настройки «применяется при перезапуске» — без потери запросов
./buglapse restore backups/….dumpВосстановить базу из дампа
./buglapse checkПроверить сервер
./buglapse adminСоздать первый аккаунт, если установка его не создала

Остальное — обычный Docker Compose: docker compose ps, docker compose logs -f app-blue (или app-green — какой активен, покажет status).