Skip to content

Устранение неполадок

Лицензия недействительна или истекла

Лицензии истекают через 30 дней. Симптомы: бэкенд отклоняет лицензию или LLM-вызовы не проходят аутентификацию.

  1. Откройте кабинет по адресу https://app.copul4.com.

  2. Продлите или перегенерируйте лицензию.

  3. Обновите LICENSE_TOKEN в .env бэкенда (/root/copula/.env для автоматических установок; при ручной установке — .env рядом с вашим docker-compose.yml) и перезапустите бэкенд:

    bash
    docker compose up -d

Квота исчерпана — HTTP 429 copula_quota_exceeded

LLM-роутер кабинета применяет пятичасовое и недельное (начало — понедельник 00:00 UTC) фиксированные окна UTC. Когда окно исчерпано, запросы возвращают 429 с кодом copula_quota_exceeded.

  • Дождитесь сброса окна, или
  • повысьте тариф (base_x1base_x5base_x10pro) в кабинете.

Ошибка миграций

Init-задача copula-migrate применяет миграции до запуска бэкенда. Если она завершается ошибкой, бэкенд не стартует.

bash
docker logs copula-migrate

Исправьте указанную проблему (обычно это подключение к базе данных или учётные данные в .env) и повторите docker compose up -d.

Бэкенд нездоров

bash
docker logs copula-back

Сверьте значения .env со справочником переменных окружения — большинство ошибок запуска вызваны отсутствующим или некорректным JWT_SECRET (ровно 128 hex-символов), ENCRYPTION_KEY (32 символа) или LICENSE_TOKEN.

Ошибка сертификата Caddy (автоматические установки)

Если copula-caddy не может получить сертификат:

  1. Проверьте, что DNS домена распространился и резолвится в публичный IP сервера.
  2. Проверьте, что порты 80 и 443 свободны и доступны из интернета — Caddy должен быть единственным сервисом, публикующим их, а HTTP-01 challenge Let's Encrypt требует порт 80.

Финальная health-проверка падает на работоспособной установке

Если шаг деплоя await_health завершается ошибкой, но стек фактически работает, вероятная причина — hairpin NAT: сервер не может обратиться к собственному публичному домену изнутри. Проверьте бэкенд напрямую:

bash
docker logs copula-back
curl http://127.0.0.1:8901

Установка работоспособна; обращайтесь к ней через домен снаружи.

Неудачный self-update

Автоматического отката нет. Неудачная замена контейнера оставляет предыдущий контейнер остановленным под переименованным именем-предшественником.

  1. Выведите список контейнеров, чтобы найти переименованного предшественника:

    bash
    docker ps -a
  2. Переименуйте его обратно и запустите:

    bash
    docker rename <renamed-predecessor> copula-back
    docker start copula-back
  3. Повторите обновление позже или обновите вручную командой docker compose pull && docker compose up -d (см. Обновление).

Self-update или поиск по коду ничего не делают

В контейнер бэкенда должен быть примонтирован /var/run/docker.sock. От него зависят и self-update, и интеграция с cocoindex. Проверьте список томов copula-back в docker-compose.yml и пересоздайте стек, если монтирование отсутствует.