Ошибки установки и их устранение
Сообщения установщика и мастера первого запуска: что означает каждое и что сделать, чтобы установка продолжилась.
Установщик и мастер первого запуска останавливаются с коротким сообщением. Найдите его текст на этой странице, устраните причину и повторите прежнюю команду установки или действие в мастере. Повторный запуск продолжает начатую установку: сохранённые настройки и данные остаются.
Где смотреть состояние установки
Установщик печатает сообщение в терминал, мастер показывает его на своей странице. Состояние установки смотрите на сервере:
sudo trackerctl status
sudo trackerctl check
sudo systemctl status tracker-setup.service
sudo journalctl -u tracker-setup.service -n 50
sudo docker ps -atrackerctl statusпечатает версию и этап. Этапы при установке через мастер:awaiting_setup— мастер ждёт настройки,starting— запуск трекера начат,ready— трекер готов.trackerctl checkодин раз проверяет готовность. Успех — «Сервисы и HTTPS отвечают.» Пока в мастере не нажата кнопка Запустить трекер, команда отвечает «Операция не завершена: FileNotFoundError»: настройки ещё не сохранены.journalctlпоказывает причину, если служба мастера не запустилась.docker ps -aпоказывает контейнеры и их состояние. Журнал контейнера:sudo docker logs --tail 50 ИМЯ, имя берите из колонкиNAMES.
Команда trackerctl появляется после подготовки сервера, при установке в терминале — после успешного запуска трекера. В примерах каталог установки — /opt/tracker. Если установка шла с --path, подставьте свой каталог.
Расположение файлов и служб — на странице Файлы установки, порты, службы и журналы.
Ошибки запуска: права, система, ресурсы
Что установщик проверяет на сервере, описано на странице Требования к серверу и подготовка.
| Сообщение | Причина | Что сделать |
|---|---|---|
| «Установку запускать через sudo.» | Команда запущена не от root | Запустите sudo bash install.sh |
| «Поддерживается Ubuntu 24.04.» | Другая система или версия | Установите Ubuntu 24.04 |
| «Для установки нужен работающий systemd.» | На сервере не запущен systemd | Используйте сервер, где Ubuntu 24.04 работает с systemd |
| «Архитектура выпуска не совпадает с сервером.» | Выпуск собран под другую архитектуру процессора | Используйте сервер Linux amd64: опубликованный установщик рассчитан на него |
| «Нужно не менее 4 ГБ RAM и двух CPU.» | Меньше 2 ядер или 4 ГБ памяти | Увеличьте ресурсы сервера |
| «Нужно не менее 20 ГБ свободного места.» | На разделе с каталогом установки свободно меньше 20 ГБ. В терминале сообщение заканчивается словами «для образов и данных» | Освободите место или увеличьте диск |
| «Нужен Docker Compose 2.33.1 или новее; проверьте установленные CLI-плагины.» | Docker Compose старше 2.33.1, и установщик не смог его обновить | Обновите плагин Docker Compose и повторите команду |
| «Путь установки должен иметь вид /opt/имя.» | В --path указан каталог другого вида | Укажите путь вида /opt/tracker: латинские буквы, цифры, _ и - |
| «Неизвестный параметр: …» и «Нет значения для …» | Опечатка в параметре или параметр без значения | Сверьте команду со справочником параметров |
«Команда … завершилась ошибкой (N).»
Не сработала системная команда: apt-get, curl, docker, systemctl. В сообщении только имя команды и код. Подробности не печатаются: в них могут оказаться пароли. В мастере так же выглядит ошибка команды при запуске трекера.
- Для
apt-getвыполнитеsudo apt-get update: команда покажет причину. - Для
curlпроверьте, что сервер открываетhttps://download.docker.com. - Для
dockerпроверьте службу Docker:sudo systemctl status docker. - Повторите прежнюю команду установки.
«Операция не завершена: …» и «Не удалось завершить настройку. Данные сохранены; повторите попытку.»
Непредвиденная ошибка. В терминале после двоеточия стоит её тип, например TimeoutExpired — команда не уложилась в отведённое время. Второе сообщение показывает мастер.
- Повторите команду установки или действие в мастере.
- Если сообщение повторилось, посмотрите состояние командами из раздела Где смотреть состояние установки.
Подпись и состав выпуска
Установщик скачивает архив выпуска, проверяет подпись и только потом распаковывает. Затем сверяет каждый файл с подписанным списком.
| Сообщение | Причина |
|---|---|
| «Подпись выпуска не прошла проверку. Установка остановлена.» | Архив скачан не полностью, изменён или подписан другим ключом |
| «Контрольная сумма файла выпуска не совпала.» | Файл внутри выпуска повреждён |
| «В выпуске обнаружены лишние файлы.» | В распакованном выпуске есть файлы вне подписанного списка |
| «Выпуск неполный.», «Неподдерживаемый формат выпуска.» | Архив повреждён или не подходит установщику |
| «Образ не совпал с подписанным выпуском.» | Загруженный образ отличается от записанного в выпуске. В терминале: «Образ не соответствует подписанному выпуску.» |
| «Загрузка разрешена только по HTTPS.» | В --bundle или --signature указан адрес не на https:// |
Что сделать:
- Повторите команду установки: архив скачивается заново при каждом запуске.
- Если сообщение повторилось, скачайте установщик заново:
curl -fsSLo install.sh https://install.micator.com/install.sh. - Проверьте выпуск без установки:
bash install.sh --verify-only. Успех — строка «Состав выпуска проверен: …». - Запустите
sudo bash install.sh.
Если подпись не проходит и на заново скачанном установщике, не устанавливайте этот архив.
Занятые порты, непустой каталог, прежняя установка
«Порт 80 занят.» и «Порт 443 занят.»
Порт на сервере уже слушает другая программа. При установке в терминале текст другой: «Порт 80 занят другим веб-сервером.»
- Найдите программу:
sudo ss -ltnp | grep -E ':(80|443) '. - Остановите её.
- Отключите её автозапуск.
- Повторите команду установки.
«Каталог не пуст; установка поверх существующих данных запрещена.»
В каталоге установки (по умолчанию /opt/tracker) уже есть файлы, а начатой установки в нём нет. При установке в терминале: «Каталог не пуст. Установка поверх Git, данных или неизвестной системы запрещена.»
Возьмите чистый сервер или укажите другой каталог: sudo bash install.sh --path /opt/micator. При следующих запусках установщика указывайте тот же --path.
«На сервере уже есть ресурсы tracker.»
Docker на сервере уже содержит контейнеры, тома или сети проекта tracker. При установке в терминале: «На сервере уже есть ресурсы проекта tracker. Автоматический захват запрещён.» Близкие сообщения:
- «На сервере уже есть тома tracker; автоматическое присвоение запрещено.» — найдены тома с именем
tracker_…. - «Имя службы первого запуска уже занято.» — существует контейнер
tracker-setup-edge.
Установщик не занимает и не удаляет чужие ресурсы и ставит трекер только на сервер без них. Посмотреть, что найдено:
sudo docker ps -a --filter label=com.docker.compose.project=tracker
sudo docker volume lsВ томах tracker_… лежат базы, локальные страницы и сертификаты прежней установки. Удаление томов стирает эти данные без возможности возврата. Если данные нужны, ставьте трекер на другой сервер и переносите их через восстановление из копии.
«Установлен другой выпуск. Мастер не обновляет работающий трекер.»
Установка в этом каталоге начата или выполнена другим выпуском, не тем, что скачал установщик. При установке в терминале: «Установлен другой выпуск. Установщик не обновляет и не откатывает существующие базы.»
- Трекер уже работает — обновляйте его в панели: Настройки → Обновления. Подробности — на странице Обновление трекера из панели.
- Установка не завершена — продолжайте её тем же файлом
install.sh, которым начинали. Каждый файл установщика скачивает свой выпуск.
Не определился публичный IP
Сообщение: «Не удалось определить публичный IPv4. Передайте --setup-ip IP сервера.»
Мастер открывается по публичному IPv4 сервера. Установщик ищет такой адрес на сетевых интерфейсах. Если на интерфейсах только частные адреса, автоопределение не срабатывает.
- Узнайте публичный IPv4 сервера в панели хостинга.
- Запустите установщик с этим адресом:
sudo bash install.sh --setup-ip 203.0.113.10. Адрес в примере замените своим.
Адрес должен быть публичным IPv4. Частный адрес вида 10.0.0.5 или 192.168.1.10 и адрес IPv6 не принимаются.
Мастер не открывается
«Мастер ещё недоступен. Проверьте tracker-setup.service и повторите установщик.»
Служба мастера не ответила на 30 проверок подряд с паузой в секунду.
- Посмотрите состояние службы:
sudo systemctl status tracker-setup.service. - Посмотрите её журнал:
sudo journalctl -u tracker-setup.service -n 50. - Убедитесь, что Docker работает:
sudo systemctl status docker. - Повторите команду установки. Код доступа останется прежним.
Терминал показал ссылку, но страница в браузере не открывается
Установщик не открывает порты во внешнем firewall.
- Откройте входящие TCP-порты 80 и 443 в firewall сервера и в панели хостинга.
- Откройте ссылку именно с
http://: по IP мастер работает без HTTPS.
«Введите код доступа из установщика.» и «Код доступа не подходит.»
Код не введён или введён с ошибкой. Ссылка с кодом и сам код записаны в файл на сервере:
sudo cat /opt/tracker/setup-access.txt«Неверный адрес мастера.»
Мастер отвечает только по IP сервера и по домену панели. Откройте ссылку из терминала или https://panel.example.com/setup/ со своим доменом панели.
«Логин и пароль задаются только по HTTPS на домене панели.»
Шаг 2 открыт по IP или без HTTPS. Откройте https://panel.example.com/setup/ со своим доменом панели и введите код доступа.
Ошибки доменов и DNS в мастере
После ошибки мастер остаётся на шаге «Подключите домены». Исправьте поля или DNS и нажмите Проверить и продолжить ещё раз.
| Сообщение | Причина | Что сделать |
|---|---|---|
| «Нужен домен без протокола, порта и пути; международные имена — в punycode.» | В поле введено https://, порт, путь или кириллица | Введите только имя: panel.example.com |
| «Нужен домен, а не IP-адрес.» | Вместо домена введён IP | Укажите домен |
| «Укажите два разных домена и email для сертификатов.» | Домен панели и домен трекинга совпали, или email записан с ошибкой | Укажите два разных домена и адрес вида [email protected] |
| «Недопустимое значение: email.» | В адресе есть символы кроме латинских букв, цифр и знаков _ . + @ - | Исправьте адрес |
| «Домен … не найден в DNS. Добавьте A-запись и повторите проверку.» | У домена нет записи, или она ещё не разошлась по DNS | Создайте A-запись на IP сервера, подождите и повторите |
| «Для домена нужен публичный адрес сервера.» | Одна из записей домена ведёт на частный или локальный адрес | Исправьте A- и AAAA-записи: все адреса домена должны быть публичными |
| «Домен … пока не ведёт на этот сервер. Проверьте A/AAAA-записи, порт 80 и редиректы прокси, затем повторите.» | Мастер запросил домен по HTTP на порту 80 и не получил ответ от этого сервера | См. шаги ниже |
| «Домены уже закреплены за установкой.» | Настройки уже сохранены, сменить домены в мастере нельзя | Продолжите запуск с прежними доменами |
Если домен «пока не ведёт на этот сервер»:
- Проверьте, что A-запись указывает на IP сервера из ссылки мастера.
- Проверьте AAAA-запись: если она есть, она тоже должна вести на этот сервер.
- Откройте входящий TCP-порт 80.
- Отключите на прокси редирект с HTTP на HTTPS на время настройки: мастер проверяет домен по HTTP и по редиректам не переходит.
При установке в терминале проверяется только наличие доменов в DNS. Сообщение: «Домен ещё не разрешается в DNS: …».
HTTPS не готов
Сообщение: «HTTPS пока не готов. Проверьте DNS, порты 80/443 и режим Full (strict) в Cloudflare, затем повторите.»
Домены прошли проверку, но не ответили по HTTPS за 60 проверок с паузой 3 секунды. Мастер переходит к шагу 2 и открывает https://panel.example.com/setup/. Сообщение показано на этой странице. Пока сертификат не выпущен, страница не открывается.
- Убедитесь, что входящие TCP-порты 80 и 443 открыты из интернета, а не только с вашего адреса.
- Проверьте, что оба домена по-прежнему указывают на этот сервер.
- Если домены идут через Cloudflare, включите режим шифрования Full (strict).
- Обновите страницу
https://panel.example.com/setup/со своим доменом панели. - Когда страница открылась, продолжайте с шага 2. Сменить домены на этом шаге нельзя.
Сообщения «Соединение переключается. Подождите несколько секунд.» и «Ожидаем соединение с трекером…» — не ошибка. В эти секунды мастер переключает веб-сервер, страница продолжит работу сама.
Сервисы не готовы: «Не готовы: …»
Сообщение: «Не готовы: …. Исправьте причину и повторите команду; данные сохранены.»
После запуска установщик проверяет готовность до 60 раз с паузой 3 секунды. На месте многоточия названо то, на чём проверка остановилась.
| Текст после «Не готовы:» | Что это значит | Что проверить |
|---|---|---|
| базы данных и миграции | Один из контейнеров не запущен или не прошёл проверку состояния, либо подготовка баз не завершилась | В выводе sudo docker ps -a контейнеры pg-migrate и ch-migrate должны быть завершены с кодом 0, остальные — запущены |
| admin | Не отвечает служба API панели | Журнал контейнера admin |
| redirect | Не отвечает служба обработки трафика | Журнал контейнера redirect |
| backup | Не отвечает служба резервных копий | Журнал контейнера backup |
| HTTPS панели и трафика (DNS/80/443) | Службы работают, но домен панели или домен трекинга не отвечает по HTTPS | DNS обоих доменов, порты 80 и 443, сертификаты |
Команды для просмотра контейнеров и журналов — в разделе Где смотреть состояние установки.
Что сделать:
- Устраните причину на сервере.
- В мастере на экране «Нужно повторить запуск» нажмите Повторить запуск. Настройки и пароль владельца сохранены, вводить их заново не нужно.
- При установке в терминале повторите прежнюю команду с теми же параметрами.
Страница мастера не открывается после ошибки запуска
Если после ошибки не отвечает и сам домен панели, перезапустите службу мастера на сервере:
sudo systemctl restart tracker-setup.serviceСлужба продолжит запуск с сохранёнными настройками. Когда запуск завершится, sudo trackerctl status покажет этап ready.
Не скачалась база GeoIP
Сообщение: «Не удалось загрузить GeoIP. Положите city.mmdb в data/geoip и повторите установку.»
Установщик скачивает базу DB-IP City Lite с download.db-ip.com: сначала за текущий месяц, затем за предыдущий. Сообщение появляется, когда обе загрузки не удались. Положите базу вручную:
- Скачайте на своём компьютере файл
https://download.db-ip.com/free/dbip-city-lite-ГГГГ-ММ.mmdb.gz. ВместоГГГГ-ММподставьте текущие год и месяц, например2026-10. - Распакуйте архив.
- Переименуйте файл в
city.mmdb. - Положите его на сервер:
/opt/tracker/data/geoip/city.mmdb. - Разрешите чтение файла:
sudo chmod 644 /opt/tracker/data/geoip/city.mmdb. - Нажмите Повторить запуск в мастере или повторите команду установки в терминале.
Если файл больше 1 КБ уже лежит на месте, установщик его не скачивает.
Перезагрузка сервера во время настройки
Вкладку мастера можно закрыть: настройка идёт на сервере. Перезагрузка сервера её тоже не сбрасывает.
- Служба
tracker-setup.serviceзапускается вместе с сервером и продолжает с сохранённого шага. - Если перезагрузка пришлась на проверку доменов, проверка запускается заново с теми же доменами.
- Если на шаге 2 уже нажата кнопка Запустить трекер, запуск продолжается без участия пользователя.
- Сообщение «Запуск прервался до сохранения настроек. Повторите восстановление проверенной копии.» появляется, если перезагрузка прервала начало восстановления из копии. Откройте блок Восстановить из резервной копии и запустите восстановление ещё раз.
Чтобы вернуться в мастер, откройте ту же ссылку. Пока мастер не завершён, она записана в /opt/tracker/setup-access.txt. Экраны мастера и ошибки полей шага 2 описаны на странице Мастер первого запуска.
Параллельный и повторный запуск
| Сообщение | Причина | Что сделать |
|---|---|---|
| «Другая операция уже выполняется.» | Установщик или мастер уже работает с этим каталогом | Дождитесь окончания и повторите |
| «Настройка уже выполняется.» | Форма мастера отправлена повторно, пока идёт прошлая операция | Подождите, страница обновится сама |
| «Этот шаг сейчас недоступен.» | Действие не подходит к текущему этапу мастера | Обновите страницу мастера |
| «Трекер уже настроен. Повторный мастер закрыт.» | Установщик запущен на готовом трекере. Это не ошибка. В терминале: «Этот выпуск уже установлен и отвечает. Секреты и данные сохранены.» | Входите в панель по её домену |
| «Начата установка через терминал. Продолжите прежнюю команду.» | Установка начата с параметрами терминального режима, а повтор запущен без них | Повторите команду с прежними параметрами |
| «Параметры повторного запуска отличаются от начатой установки.» | При повторе в терминале изменены домены, email или логин | Повторите с прежними значениями |
| «Установка уже запущена; повторное создание владельца запрещено.» | Форма владельца отправлена второй раз | Дождитесь окончания запуска |
Повторный запуск sudo bash install.sh до завершения мастера печатает ту же ссылку с тем же кодом. После завершения мастер закрыт: адрес /setup/ на домене панели переводит на страницу входа.
Если в панели показано «Сначала обновите службу установки на сервере», это не ошибка установки. Порядок действий — на странице Обновление службы установки.