Решение проблем#
В этом разделе собраны типовые проблемы, способы их решения и подсказки, где посмотреть логи. Выберите нужную категорию и откройте выпадающий блок с инструкцией.
Окружение#
Ошибки при установке Python-библиотек
Если при установке библиотек появляется ошибка:
error: externally-managed-environment
Причина: в системе включен режим защиты Python-пакетов (externally managed environment).
Решение:
Вариант 1 (сервер только под Compass):
Вариант 2 (использовать виртуальное окружение):
Запускайте установочные скрипты из виртуального окружения:
Ошибка отсутствия Python-библиотеки
Если при запуске любого Python-скрипта появляется ошибка отсутствующей библиотеки, например:
ModuleNotFoundError: No module named 'docker'
Вместо docker может быть указана другая библиотека.
Причина: библиотека не установлена в том окружении Python, из которого запускается скрипт (системный Python на сервере или виртуальное окружение).
Что проверить / Решение:
Если запускаете скрипт на хосте (без venv):
Проверьте, что зависимости установлены:
Если каких-то пакетов нет — установите зависимости:
Если при установке появляется
error: externally-managed-environment— используйте инструкции из блока Ошибки при установке Python-библиотек.Повторите запуск скрипта:
Если запускаете скрипт в виртуальном окружении (venv):
Убедитесь, что окружение активировано.
Обычно после активации в начале строки терминала появляется префикс вида
(<имя_окружения>). Также можно проверить через переменную окружения:Интерпретация:
если вывело путь (например /home/user/venv) — окружение активировано;
если пусто — не активировано.
Активируйте виртуальное окружение (путь зависит от имени директории окружения). Если окружение создавали командой
python3 -m venv venv:Если окружение создавали с другим именем (например
my-venv) — подставьте его вместоvenvв команде выше.Проверьте зависимости в venv:
Если каких-то пакетов нет — установите зависимости в venv:
Запускайте скрипт из активированного venv:
Развертывание#
Ошибка при развертывании приложения
Если при развертывании появляется:
php_monolith не может подняться
php_monolith не поднялся
Что проверить:
Соответствие минимальным требованиям.
Минимальные требования:
CPU: 12 cores
RAM: 20 GB
SSD: 200 GB
IOPS: ≈ 1200 суммарно (read + write)
Команды:
CPU:
lscpuRAM:
free -hДиск (объем):
df -h
IOPS диска (fio).
Установить fio:
Запустить тест:
Ориентир: сумма
avgдляread iopsиwrite iopsдолжна быть ≈ 1200.Готовность сервисов после запуска установки (обычно 3–15 минут).
Проверьте состояние сервисов:
В колонке REPLICAS значения должны совпадать (например,
1/1). Если у сервиса не сходятся реплики — посмотрите детали:И логи сервиса:
Решение:
Если ресурсы/IOPS ниже требований — приведите сервер к минимальным значениям и повторите установку.
Если ресурсы/IOPS в норме — найдите сервис, который не выходит в нужные реплики (
REPLICAS), и проверьтеservice psиservice logs.Если по логам не ясно — выполните переустановку.
Удаление (с подтверждением удаления данных — два раза):
Конфигурационные файлы не удалятся — повторно заполнять их не потребуется.
Перезапустите Docker:
Запустите установку повторно:
Ошибка при активации сервера
Если при активации появляется сообщение:
Не удалось активировать сервер. Сервер недоступен по адресу <your-domain.com>.
Причина: домен недоступен извне или DNS настроен неверно.
Что проверить:
A-запись домена указывает на публичный IP сервера;
По домену доступен
HTTPS (443/tcp);Если сеть закрытая — вход на
443/tcpразрешен для сервера лицензии45.92.177.63.
Проверить A-запись домена:
Проверить доступность домена по HTTPS (с любого внешнего хоста):
Если запрос не проходит, проверьте:
входящие правила firewall (UFW/iptables/Security Group) для порта
443/tcp;настройки обратного прокси (если используется).
Если сеть закрытая (доступ ограничен по IP):
Убедитесь, что firewall разрешает входящие подключения на 443/tcp для 45.92.177.63.
Команды зависят от фаервола, ниже пример для iptables.
Проверить правила для 443:
Если правила не выводятся — проверьте политику INPUT:
policy ACCEPT— входящие подключения разрешены.policy DROPилиREJECT— нужен явныйallowна443(или на IP45.92.177.63).
Решение: исправьте DNS/доступность домена и убедитесь, что вход на 443 разрешен, затем повторите активацию.
Диагностика#
Логи с ошибками приложения
Проверить ошибки приложения можно в следующих логах контейнера php_monolith:
Авторизация#
Не приходит код на почту
Причина: SMTP недоступен / неверные параметры или соединение блокируется.
Что проверить:
Лог отправки писем:
Проверьте параметры SMTP в
configs/auth.yaml(host/port/username/password/from и протокол). В конфигурации используется один из протоколов:sslилиtls. Попробуйте типовые варианты:ssl+ порт465tls+ порт587
Для применения изменений в конфигурации выполните:
Если после смены порта/протокола проблема не ушла — проверьте SMTP-подключение с сервера вручную через swaks.
Установка swaks:
Пример для ssl (обычно порт 465):
Пример для tls (обычно порт 587):
Что подставлять в параметры:
--to— почта, на которую будет отправлено письмо.--from— адрес изsmtp.fromвauth.yaml.--server— хост изsmtp.hostвauth.yaml.--auth-user— значениеsmtp.usernameвauth.yaml.--auth-password— пароль приложения/SMTP изsmtp.passwordвauth.yaml.
Решение:
Попробуйте стандартные сочетания
ssl:465иtls:587.Если не помогло — используйте swaks для диагностики.
Ошибка авторизации LDAP
Причина: LDAP недоступен или неверные параметры в configs/auth.yaml.
Что проверить:
Лог авторизации LDAP:
Подключение к LDAP можно проверить с помощью утилиты ldapsearch:
Установка ldapsearch:
Пример проверки подключения:
Значения в <> замените на параметры из configs/auth.yaml.
Ошибка авторизации через OIDC
Причина: ошибка настройки OIDC / недоступен провайдер / неверные параметры в configs/auth.yaml.
Что проверить:
Лог авторизации OIDC:
Решение: исправьте настройки OIDC в configs/auth.yaml по логам и примените изменения:
Ошибка авторизации на Android
Причина: неполная цепочка SSL-сертификатов.
Что проверить:
Проверьте корректность цепочки SSL-сертификатов (домен + промежуточный).
Замените your-domain.com на ваш реальный домен:
Если в ответе есть verify error num: 20 или 21 — цепочка неполная.
Решение:
Разместите полную цепочку сертификатов в /etc/nginx/ssl/ и перезапустите nginx:
Если используется внешний прокси, измените сертификат и на нем.
Звонки и конференции#
Ошибка соединения при звонках и в конференциях
Причина: домен недоступен из контейнеров (NAT/DNS/маршрутизация).
Проверьте, доступен ли ваш домен из контейнера Compass.
Замените your-domain.com на ваш реальный домен:
Если запрос не проходит — контейнер не может обратиться к вашему домену. Из-за этого могут не работать звонки и конференции.
Решение:
Рекомендуемый вариант — решить на уровне DNS: настройте внутренний DNS так, чтобы домен
your-domain.comрезолвился во внутренний IP сервера Compass. Конкретные шаги зависят от вашего DNS.Альтернативный вариант — завернуть трафик обратно на сервер через NAT (iptables):
Чтобы сохранить правила после перезагрузки (Debian/Ubuntu), установите iptables-persistent:
Сохраните текущие правила:
Либо настройте постоянное правило NAT на внешнем фаерволе/маршрутизаторе.
Не завершается конференция или звонок
Причина: неполная цепочка SSL-сертификатов.
Что проверить:
Проверьте корректность цепочки SSL-сертификатов (домен + промежуточный).
Замените your-domain.com на ваш реальный домен:
Если в ответе есть verify error num: 20 или 21 — цепочка неполная.
Решение:
Разместите полную цепочку сертификатов в /etc/nginx/ssl/ и перезапустите nginx:
Если используется внешний прокси, измените сертификат и на нем.
После исправления:
Зайдите в приложение и завершите текущий звонок/конференцию, который(ая) не завершился(лась) из-за проблемы с сертификатом. Для этого создайте новую конференцию и перейдите в нее — при подключении появится диалоговое окно о наличии активной конференции. Нажмите «Завершить». После этого завершение конференций и звонков будет работать корректно.
Не работает видео/аудио в звонках (конференциях)
Причина: медиатрафик (UDP) не доходит до сервера Compass или не указан advertise IP.
Что проверить:
Убедитесь, что
10000/UDPразрешен во входящих правилах на пограничном уровне (Security Group / внешний firewall / панель провайдера / маршрутизатор) и проброшен до сервера Compass, если сервер находится за NAT.Проверьте, доходят ли пакеты до сервера Compass.
На сервере с Compass запустите прослушивание
10000/UDP:Затем с внешнего хоста отправьте тестовые UDP-пакеты:
Если в
tcpdumpпоявились пакеты — трафик до сервера доходит.Если пакетов нет — порт
10000/UDPблокируется или не проброшен на одном из узлов по пути.
Если трафик доходит — проверьте advertise IP.
В
configs/global.yamlполеjitsi.service.jvb.media_advertise_ipsдолжно содержать внешний и локальный IP сервера через запятую.
Решение:
Откройте/пробросьте
10000/UDPдо сервера Compass и убедитесь, что пакеты доходят (поtcpdump).Проверьте
jitsi.service.jvb.media_advertise_ipsи примените изменения:
Напишите нам в пространстве поддержки On-premise, Telegram или на почту support@getcompass.ru, чтобы получить индивидуальную демонстрацию функционала и помощь по вопросам интеграции мессенджера в вашей компании.

