Перед установкой
- Сервер с Linux, Docker и Docker Compose v2 (см. требования). Docker ставится по официальной инструкции.
- Домен, на котором будет Buglapse, например
errors.example.com, и A-запись этого домена на IP сервера. Без неё не выпустится сертификат. - Свободные порты 80 и 443 — на них Caddy получает сертификат и принимает трафик.
Лицензионный ключ заранее не нужен: установщик сам выдаст пробную лицензию на 30 дней.
Установка
bash
curl -fsSL https://app.buglapse.com/api/self-hosted/install.sh | sudo bashУстановщик спросит:
- Лицензионный ключ (
bgl1.…) — или нажмите Enter, чтобы получить пробный. Тогда он спросит домен и email, попросит принять условия использования и пришлёт на почту шестизначный код. После кода ключ выдаётся сразу; на тот же email заводится аккаунт наapp.buglapse.com, где потом видны ваши инстансы и ключи (см. Лицензия). - Домен, если ещё не спросил.
Дальше он сам:
- входит в registry образов с ключом и скачивает последнюю версию;
- раскладывает файлы в
/opt/buglapse, генерирует ключ шифрования и пароль базы; - проверяет сервер;
- запускает PostgreSQL и Redis, создаёт схему базы, устанавливает ключ;
- показывает форму первого аккаунта: email, имя, название организации и пароль (дважды). Этот пользователь — администратор инстанса и владелец организации;
- запускает сервер, панель и прокси.
В конце он пишет адрес — откройте его и войдите. Дальше:
- Настройте почту — без неё не уходят приглашения, сброс пароля и алерты.
- Создайте проект и подключите SDK, как в установке SDK: DSN и сниппет — в Настройки → Общие и Настройки → Скрипт загрузчика проекта, уже с вашим доменом.
- Пригласите команду: Организация → Участники.
Ключ уже есть
Его можно передать сразу — вместе с доменом:
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).