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

Почти всё настраивается в панели: Администрирование → Настройки инстанса. Туда собраны переменные окружения, которые иначе пришлось бы писать в .env, — с проверкой значений, кнопками «Отправить тестовое письмо» и «Проверить хранилище» и без перезапуска для большинства из них.

Панель или .env ​

  • Значение, заданное (непустым) в .env, важнее панели: там оно показано как «задано в окружении» и только для чтения. Чтобы управлять им из панели, удалите строку из .env и выполните ./buglapse restart (ниже).

  • Настройки с пометкой «применяется при перезапуске» (воркеры, php-fpm, очередь приёма) вступают в силу после перезапуска — до этого панель показывает «ждёт перезапуска». Перезапуск — та же команда ./buglapse restart.

  • Ключ шифрования, база, Redis и домен в панели не меняются — только в .env. APP_KEY и POSTGRES_PASSWORD после установки не трогайте: без первого не расшифровать секреты в базе, а с вторым база уже создана — новое значение в .env её пароль не поменяет.

После правки .env примените его:

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

Та же версия поднимается во втором слоте уже с новыми настройками, прокси переключается на неё, а старый слот останавливается, дождавшись своих запросов — события и запросы панели не теряются. Если с новыми настройками сервер не запустился, работать продолжает прежний слот, а команда покажет лог. Прокси пересоздаётся, только если изменились DOMAIN, TLS или порты.

Почта ​

Нужна для приглашений, сброса пароля, подтверждения адреса, алертов и еженедельных отчётов. Настройки инстанса → Почта: способ отправки — SMTP, Resend или Postmark, — его параметры и адрес отправителя. Отправить тестовое письмо шлёт письмо на ваш адрес с сохранёнными настройками.

То же в .env:

ini
MAIL_MAILER=smtp
MAIL_HOST=smtp.example.com
MAIL_PORT=587
MAIL_USERNAME=buglapse@example.com
MAIL_PASSWORD=…
MAIL_FROM_ADDRESS=buglapse@example.com

Порт 465 — неявный TLS, на остальных включается STARTTLS, если сервер его предлагает.

Ещё два адреса необязательны:

НастройкаПеременнаяЧто делает
Адрес отправителя алертов и отчётовMAIL_REPORTS_ADDRESSС него уходят алерты и еженедельные отчёты, остальные письма — с MAIL_FROM_ADDRESS. Пусто — всё с MAIL_FROM_ADDRESS
Адрес для ответовMAIL_REPLY_TO_ADDRESSReply-To каждого письма: ответ получателя попадёт сюда, например в поддержку. Пусто — на адрес отправителя

Совет

В .env после установки уже стоят MAIL_MAILER=smtp, MAIL_PORT=587 и MAIL_FROM_ADDRESS — поэтому в панели они только для чтения. Хотите настраивать почту целиком из панели — удалите эти строки.

Доступ ​

Настройки инстанса → Доступ:

НастройкаПо умолчаниюВарианты
Кто регистрируетсяТолько по приглашениюЛюбой — страница регистрации открыта всем, кто доберётся до домена
Кто создаёт организацииНикто (только установщик)Любой пользователь

Приглашения отправляет владелец организации: Организация → Участники. Пригласить можно и администратора инстанса — администратором делает Администрирование → Пользователи.

Забытый пароль восстанавливается по почте. Если почты нет, задайте пароль из консоли:

bash
cd /opt/buglapse && docker compose exec app-blue php artisan user:change-password you@example.com

(app-blue или app-green — какой слот активен, покажет ./buglapse status.)

Хранилище ​

По умолчанию всё лежит на диске сервера, в томе Docker buglapse_storage. Настройки инстанса → Хранилище переносит в S3 или совместимое хранилище (MinIO, Cloudflare R2…):

ЧтоНастройка
Записи сессийДиск реплеев
npm-пакеты SDKДиск npm-реестра — при переключении опубликованные версии копируются сами
Загрузки sentry-cliДиск чанков sentry-cli

Там же — ключи, регион, бакет и endpoint S3 (для MinIO обычно нужна path-style адресация). Проверить хранилище записывает, читает и удаляет файл на каждом используемом диске.

Внимание

Переключение диска реплеев ничего не переносит: уже записанные сессии остаются на старом диске и не воспроизводятся, пока не истекут.

События, логи и трейсы хранятся в PostgreSQL — ему нужно место на диске сервера. Сколько оно занимает и на сколько хватит, видно в Администрирование → Система.

GitHub ​

Ссылки из стектрейса на код, «Что изменилось» и Autofix работают через GitHub App. В облаке она общая; на своём инстансе создайте свою:

  1. GitHub → Settings → Developer settings → GitHub Apps → New GitHub App (для организации — в её настройках).
  2. Callback URL: https://errors.example.com/api/0/integrations/github/callback, и включите Request user authorization (OAuth) during installation.
  3. Webhook: снимите Active — Buglapse сам опрашивает GitHub.
  4. Permissions → Repository: Contents — Read and write, Pull requests — Read and write, Checks — Read, Commit statuses — Read, Actions — Read, Metadata — Read. Organization: Members — Read.
  5. Создайте приложение, затем Generate a private key и Generate a new client secret.

В Настройки инстанса → GitHub App впишите App ID, slug приложения (из его адреса github.com/apps/{slug}), Client ID, Client secret и содержимое .pem-файла. После этого владелец организации подключает GitHub в Организация → Интеграции, а репозиторий привязывается в Настройки → Репозиторий проекта.

GitLab (облачный и свой) подключается без приложения — токеном доступа в Организация → Интеграции. Если GitLab в вашей внутренней сети, включите Настройки инстанса → Сеть → GitLab: разрешить инстанс в приватной сети.

ИИ для Autofix ​

Ключ ИИ-провайдера — OpenAI, Anthropic или любой OpenAI-совместимый сервер (OpenRouter, Ollama, vLLM…) — подключает владелец в Организация → Интеграции, а модель выбирается в Организация → ИИ. Для модели, запущенной в вашей сети, включите Настройки инстанса → Сеть → AI: разрешить приватный OpenAI-совместимый endpoint. Подробнее — в Autofix.

Мессенджеры ​

Алерты в Telegram и MAX идут через бота инстанса. Создайте бота (Telegram — у @BotFather, MAX — на платформе MAX для бизнеса, «Чат-боты → Настройки») и вставьте токен в Настройки инстанса → Мессенджеры. При сохранении бот направляет вебхук на ваш инстанс — нужен HTTPS на порту 443, доступный из интернета. Если сервер не достаёт до api.telegram.org, там же задаётся свой сервер Bot API или прокси.

Дальше пользователи подключают бота в своих уведомлениях, а владелец — в группу организации, как описано в алертах.

Сеть ​

По умолчанию Buglapse не обращается к приватным адресам (localhost, 10.x, 192.168.x…) — так мониторы и интеграции нельзя использовать, чтобы заглянуть во внутреннюю сеть. Настройки инстанса → Сеть снимает это ограничение по отдельности:

  • Uptime: разрешить приватные адреса — мониторы внутренних сервисов;
  • GitLab: разрешить инстанс в приватной сети;
  • AI: разрешить приватный OpenAI-совместимый endpoint.

Uptime: URL проверки сети запрашивается, когда проверки падают, чтобы отличить сбой вашей сети от сбоя сайта. Без доступа в интернет оставьте его пустым.

Ресурсы и производительность ​

Администрирование → Система показывает, что происходит с инстансом: CPU и память контейнера и машины, диск с прогнозом, PostgreSQL, Redis, очереди и php-fpm — снимок раз в минуту, история за 14 дней. Если что-то упирается в предел, там же появится предупреждение со ссылкой на настройку, которая поможет.

Настройки инстанса → Процессы (применяются при перезапуске):

НастройкаКогда менять
Воркеры приёмаОчередь приёма растёт, а CPU есть
Воркеры uptimeМного мониторов с коротким интервалом
Процессы php-fpmПанель и API медленно отвечают под нагрузкой; каждый процесс может занять до memory_limit PHP

Остальное — лимит очереди приёма, пределы подсчёта в списках, кэш CDN-скрипта — в Тюнинг; значения по умолчанию подходят большинству инстансов.