Устранение неполадок
Лицензия недействительна или истекла
Лицензии истекают через 30 дней. Симптомы: бэкенд отклоняет лицензию или LLM-вызовы не проходят аутентификацию.
Откройте кабинет по адресу https://app.copul4.com.
Продлите или перегенерируйте лицензию.
Обновите
LICENSE_TOKENв.envбэкенда (/root/copula/.envдля автоматических установок; при ручной установке —.envрядом с вашимdocker-compose.yml) и перезапустите бэкенд:bashdocker compose up -d
Квота исчерпана — HTTP 429 copula_quota_exceeded
LLM-роутер кабинета применяет пятичасовое и недельное (начало — понедельник 00:00 UTC) фиксированные окна UTC. Когда окно исчерпано, запросы возвращают 429 с кодом copula_quota_exceeded.
- Дождитесь сброса окна, или
- повысьте тариф (
base_x1→base_x5→base_x10→pro) в кабинете.
Ошибка миграций
Init-задача copula-migrate применяет миграции до запуска бэкенда. Если она завершается ошибкой, бэкенд не стартует.
docker logs copula-migrateИсправьте указанную проблему (обычно это подключение к базе данных или учётные данные в .env) и повторите docker compose up -d.
Бэкенд нездоров
docker logs copula-backСверьте значения .env со справочником переменных окружения — большинство ошибок запуска вызваны отсутствующим или некорректным JWT_SECRET (ровно 128 hex-символов), ENCRYPTION_KEY (32 символа) или LICENSE_TOKEN.
Ошибка сертификата Caddy (автоматические установки)
Если copula-caddy не может получить сертификат:
- Проверьте, что DNS домена распространился и резолвится в публичный IP сервера.
- Проверьте, что порты
80и443свободны и доступны из интернета — Caddy должен быть единственным сервисом, публикующим их, а HTTP-01 challenge Let's Encrypt требует порт80.
Финальная health-проверка падает на работоспособной установке
Если шаг деплоя await_health завершается ошибкой, но стек фактически работает, вероятная причина — hairpin NAT: сервер не может обратиться к собственному публичному домену изнутри. Проверьте бэкенд напрямую:
docker logs copula-back
curl http://127.0.0.1:8901Установка работоспособна; обращайтесь к ней через домен снаружи.
Неудачный self-update
Автоматического отката нет. Неудачная замена контейнера оставляет предыдущий контейнер остановленным под переименованным именем-предшественником.
Выведите список контейнеров, чтобы найти переименованного предшественника:
bashdocker ps -aПереименуйте его обратно и запустите:
bashdocker rename <renamed-predecessor> copula-back docker start copula-backПовторите обновление позже или обновите вручную командой
docker compose pull && docker compose up -d(см. Обновление).
Self-update или поиск по коду ничего не делают
В контейнер бэкенда должен быть примонтирован /var/run/docker.sock. От него зависят и self-update, и интеграция с cocoindex. Проверьте список томов copula-back в docker-compose.yml и пересоздайте стек, если монтирование отсутствует.