Почти всё настраивается в панели: Администрирование → Настройки инстанса. Туда собраны переменные окружения, которые иначе пришлось бы писать в .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_ADDRESS | Reply-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. В облаке она общая; на своём инстансе создайте свою:
- GitHub → Settings → Developer settings → GitHub Apps → New GitHub App (для организации — в её настройках).
- Callback URL:
https://errors.example.com/api/0/integrations/github/callback, и включите Request user authorization (OAuth) during installation. - Webhook: снимите Active — Buglapse сам опрашивает GitHub.
- Permissions → Repository: Contents — Read and write, Pull requests — Read and write, Checks — Read, Commit statuses — Read, Actions — Read, Metadata — Read. Organization: Members — Read.
- Создайте приложение, затем 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-скрипта — в Тюнинг; значения по умолчанию подходят большинству инстансов.