Устранение неполадок
Команды на сервере выполняются из папки установки.
Сайт не открывается
docker compose ps— все ли сервисы запущены. Если нет:docker compose up -d.docker compose logs --tail=100 caddy— ошибки сертификата или соединения с API.- DNS: домен указывает на IP сервера (или на Cloudflare с прокси).
- Firewall пропускает 80 и 443:
sudo ufw status.
Ошибка 502
Caddy работает, а API нет. docker compose logs --tail=200 api — частая причина: API не подключился к базе. docker compose restart api.
Сертификат не выпускается
- В Cloudflare выключите «Always Use HTTPS», режим SSL — Full (strict). См. Cloudflare.
- Запись DNS для поддомена (
admin,docs) должна существовать до запуска. - Порт 80 должен быть открыт: через него проверяется домен.
Админка отвечает отказом
Ваш IP не в списке. Если вы владелец — впишите его в ADMIN_ALLOWED_IPS в .env и docker compose up -d caddy. Если оператор — попросите владельца добавить IP в «Сотрудники → Вход в систему». За Cloudflare движок видит ваш настоящий IP; если IP меняется (мобильный интернет), используйте VPN с постоянным адресом.
Не приходит код 2FA / код не подходит
Проверьте время на телефоне (автоматически) и на сервере (timedatectl). Код зависит от точного времени.
Курсы не обновляются
Состояние системы → «Курсы». docker compose logs --tail=200 worker. Воркер мог упасть: docker compose up -d worker.
Не уходят письма
Почта → «Проверить». Частые причины: неверный порт (465 — TLS, 587 — STARTTLS), пароль, отправитель не на подтверждённом домене.
Не приходят уведомления в Telegram
TELEGRAM_BOT_TOKENзадан в.env, после правки перезапущеныapiиworker.- Бот добавлен в чат, номер чата верный (группа начинается с
-100). - Уведомления → Логи — ответ Telegram на отправку.
Бэкап не снялся
Состояние системы → «Резервные копии» и событие «Ошибка бэкапа». Частые причины: мало места (df -h), не задан BACKUP_PASSWORD. docker compose logs --tail=200 worker.
Мало места на диске
docker image prune -f — удалить старые образы. Уменьшить срок хранения копий в Бэкапах. Тома Docker не удалять.
Ничего не помогло
Соберите docker compose ps, последние 200 строк логов api, worker, caddy и ответ /api/health и напишите в поддержку OneSwaper. Не присылайте файл .env, пароли и ключи. В логах API бывают ссылки с одноразовыми токенами (приглашения сотрудников, вход) и номера заявок — замажьте их перед отправкой.