Устранение неполадок
Диагностический пакет
./deploy/scripts/support-bundle.sh --mode docker
# → dist/portal-support-YYYYMMDD-HHMMSS.tar.gz
Передайте архив в поддержку (пароли в env замаскированы).
Общие проверки
./deploy/portal-cli/portal-cli status --mode <docker|k8s|native>
curl http://localhost:8080/health
curl http://localhost:8080/api/v1/system/version
curl http://localhost:8080/api/v1/system/license-status
Docker
| Симптом | Решение |
|---|
db-init failed | docker compose logs db-init; проверьте PostgreSQL |
| Backend unhealthy | docker compose logs backend; JWT_SECRET, POSTGRES_* |
| 502 от frontend | Backend не слушает 3001: docker compose ps |
| Collabora не открывает документ | Проверьте WOPI_HOST_URL, COLLABORA_PUBLIC_URL |
docker compose -f deploy/docker/docker-compose.yml --env-file deploy/docker/.env ps
docker compose run --rm db-init
Kubernetes
| Симптом | Решение |
|---|
| Pending PVC | Нет StorageClass: kubectl get sc |
| db-init Job Failed | kubectl logs -n portal job/portal-db-init |
| Ingress 404 | Проверьте host и Ingress Controller |
| ImagePullBackOff | docker load или registry credentials |
kubectl get pods -n portal
kubectl describe pod -n portal <name>
helm status portal -n portal
Native Linux
journalctl -u portal-api -n 100
journalctl -u portal-worker -n 50
source /etc/portal/portal.env && psql -h "$POSTGRES_HOST" -U "$POSTGRES_USER" -d "$POSTGRES_DB" -c 'SELECT 1'
Лицензия
| Симптом | Решение |
|---|
402 LICENSE_EXPIRED | Активируйте LICENSE.key или продлите лицензию |
invalid license | Проверьте PORTAL_LICENSE_HMAC_SECRET у вендора и клиента |
| Trial истёк | portal-cli license activate --file LICENSE.key |
Миграции
docker compose run --rm db-init
sudo -u portal bash -c 'set -a; source /etc/portal/portal.env; set +a; \
MIGRATIONS_PATH=/opt/portal/migrations /opt/portal/bin/Portal.DbInit'
Логи
| Режим | Команда |
|---|
| Docker | docker compose logs -f backend worker |
| K8s | kubectl logs -n portal -l app.kubernetes.io/component=backend -f |
| Native | journalctl -u portal-api -f |
Сброс пробного периода (только dev)
Удалите license-state.json в PORTAL_DATA_DIR и перезапустите API.
Не используйте в production — активируйте лицензию.