Документ пополняется по мере тестирования и исследований.
Каждая проблема: описание → причина → решение → статус.
### [ID] Название
**Компоненты:** A + B
**Severity:** critical | warning | info
**Статус:** open | fixed | wontfix | bypassed
**Проблема:** что происходит
**Причина:** почему
**Решение:** как исправить (с кодом)
**Источник:** ссылка
Компоненты: Vaultwarden + Authelia + Traefik
Severity: critical
Статус: bypassed
Проблема: Bitwarden на Android/iOS, десктоп-клиент и расширение браузера
не могут пройти через Authelia forward-auth. Получают 302 redirect →
показывают "неверный пароль" или "не удаётся подключиться к серверу".
Причина: Нативные клиенты используют свой HTTP-стек, не умеют
следовать cookie-based redirect как браузер.
Решение: Bypass в Authelia для API-путей Vaultwarden:
# authelia/configuration.yml → access_control.rules
- domain: vault.aipd.ru
resources:
- "^/api([/?].*)?$"
- "^/identity([/?].*)?$"
- "^/notifications([/?].*)?$"
- "^/icons([/?].*)?$"
policy: bypass # Vaultwarden сам авторизует клиентов
- domain: vault.aipd.ru
resources:
- "^/admin([/?].*)?$"
policy: two_factor # admin-панель защищаем через Authelia
- domain: vault.aipd.ru
policy: bypass # остальное тоже Vaultwarden
Источник: github.com/dani-garcia/vaultwarden/discussions/3970
Компоненты: WireGuard + Docker
Severity: warning
Статус: open
Проблема: VPN-клиенты подключаются к WireGuard, но не могут достучаться
до Docker-сервисов. Трафик молча дропается.
Причина: Docker выставляет default DROP на цепочку FORWARD в iptables.
Трафик из wg0 попадает в FORWARD и не имеет разрешающего правила.
Решение: В /etc/wireguard/wg0.conf:
PostUp = iptables -I DOCKER-USER -i wg0 -j ACCEPT; \
iptables -I DOCKER-USER -o wg0 -j ACCEPT
PreDown = iptables -D DOCKER-USER -i wg0 -j ACCEPT; \
iptables -D DOCKER-USER -o wg0 -j ACCEPT
Примечание: Требует iptables-legacy (см. I-003).
Компоненты: Ubuntu 22.04 + Docker + WireGuard
Severity: warning
Статус: open
Проблема: Ubuntu 22.04 использует nftables по умолчанию. Docker и WireGuard
пишут iptables-правила в разные бэкенды → правила не видят друг друга.
Цепочка DOCKER-USER отсутствует в nftables-режиме.
Причина: Системный iptables указывает на iptables-nft, но Docker
ожидает iptables-legacy.
Решение: Переключить до первого запуска Docker:
update-alternatives --set iptables /usr/sbin/iptables-legacy
update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
reboot # или: systemctl restart docker
Важно: Делать ДО docker compose up, иначе правила перемешаются.
Компоненты: Gitea 1.21 + Authelia 4.38
Severity: warning
Статус: open
Проблема: Authelia 4.38 включает require_pkce: true по умолчанию.
Gitea не отправляет code_challenge → вход через SSO падает с ошибкой.
Решение: В authelia/configuration.yml:
identity_providers:
oidc:
clients:
- client_id: gitea
require_pkce: false # ← обязательно
# ... остальные параметры
Источник: github.com/go-gitea/gitea/issues/34747
Компоненты: Gitea 1.21 + Authelia OIDC
Severity: warning
Статус: open
Проблема: При первом входе через OIDC Gitea создаёт пользователя как
обычного (не admin), даже если в claims передан admin-флаг.
При повторном входе — ошибка 500 "cannot delete last admin".
Решение: После первого OIDC-входа вручную через Gitea admin-панель
(/admin/users) назначить пользователю роль администратора до того,
как локальный admin-аккаунт будет удалён.
Источник: github.com/go-gitea/gitea/issues/34358
Компоненты: Portainer CE + Authelia
Severity: warning
Статус: open
Проблема: Portainer отправляет большие auth-заголовки. Дефолтный буфер
Authelia (4096 bytes) может быть мал → периодические 502.
Решение: В authelia/configuration.yml:
server:
buffers:
read: 16384
write: 16384
Источник: github.com/authelia/authelia/discussions/4959
Компоненты: Traefik v3 + Authelia + несколько docker-compose стеков
Severity: warning
Статус: open
Проблема: authelia@docker middleware не виден из других compose-стеков.
Сервисы получают "middleware not found" и падают в 500.
Причина: Traefik видит middleware только если контейнер в той же Docker-сети.
Решение:
1. Все стеки используют общую внешнюю сеть proxy-net
2. На контейнере Authelia явно указать сеть:
labels:
- "traefik.docker.network=proxy-net"
proxy-net (не к нескольким сетям).Компоненты: Traefik v3 + Authelia 4.38
Severity: warning
Статус: open
Проблема: Старый endpoint /api/verify?rd= более не рекомендуется
в Authelia 4.38. Конфиги скопированные из старых гайдов используют его.
Решение: Использовать актуальный endpoint:
# В labels на контейнере Authelia:
- "traefik.http.middlewares.authelia.forwardAuth.address=\
http://authelia:9091/api/authz/forward-auth"
Источник: authelia.com/blog/4.38-release-notes
Компоненты: Restic + Gitea (SQLite) + Vaultwarden (SQLite)
Severity: warning
Статус: open
Проблема: Прямой бэкап файла *.db пока контейнер работает может
захватить базу в середине транзакции → файл повреждён.
При WAL-режиме дополнительно есть -wal и -shm файлы — бэкап только
основного файла без них тоже повреждён.
Решение — вариант А (рекомендуется, downtime ~5 сек):
docker stop gitea
restic backup /opt/platform/data/gitea/gitea.db
docker start gitea
Решение — вариант Б (без downtime):
docker exec gitea sqlite3 /data/gitea.db ".backup '/tmp/gitea-backup.db'"
restic backup /tmp/gitea-backup.db
rm /tmp/gitea-backup.db
Компоненты: Gitea + SQLite
Severity: warning
Статус: open
Проблема: SQLite — single-writer. Один тяжёлый запрос (поиск, большой
список репозиториев) блокирует всё: и web UI, и git push по SSH.
Решение: Включить WAL mode в gitea/app.ini:
[database]
DB_TYPE = sqlite3
SQLITE_JOURNAL_MODE = WAL
SQLITE_TIMEOUT = 500
Источник: github.com/go-gitea/gitea/issues/28933
Компоненты: Uptime Kuma + Authelia + Traefik
Severity: info
Статус: open
Проблема: При первом открытии страницы Socket.IO пытается подключиться
до того как Authelia установил cookie → мигает "cannot connect to socket".
Исчезает само после загрузки страницы.
Причина: WebSocket upgrade происходит параллельно с установкой сессии.
Решение: Не требует действий — cosmetic issue.
Убедиться что Traefik v3 стабильный релиз (не RC).
Компоненты: Docker + Claude Code (Node.js)
Severity: info
Статус: open
Проблема: Один активный Claude Code контейнер может потребить 500MB+.
При 3-5 одновременных — возможен OOM, который убьёт Traefik и весь стек.
Решение: В docker-compose для каждого проектора:
deploy:
resources:
limits:
memory: 2g
cpus: "2.0"
Компоненты: Traefik v3 + Let's Encrypt
Severity: info
Статус: open
Проблема: Файл acme.json (хранилище SSL-сертификатов) может быть
повреждён при параллельных обновлениях сертификатов.
Решение:
1. Бэкапить acme.json регулярно через restic
2. Права доступа: chmod 600 acme.json
3. При повреждении: удалить файл → Traefik перевыпустит сертификаты автоматически
(но будет downtime ~1 минута)