Caddy пишет access log под UID 0; контейнер с USER nobody (65534) не может открыть файл → ни один auth event не пересылался (GlitchTip issue #71). Удалён USER nobody из Dockerfile — форвардер запускается под root. Security: caddy_logs mount read-only, нет network listener, нет shell. auth_forwarder_state — write-only форвардера, не shared с другими сервисами. Добавлен throttle на capture_exception: не более 1 Sentry event в 5 минут при persistent ошибке (деque-паттерн как у basic_auth_storm).
15 lines
640 B
Docker
15 lines
640 B
Docker
FROM python:3.12-slim
|
|
|
|
WORKDIR /app
|
|
|
|
# Устанавливаем только sentry-sdk без лишних extras
|
|
RUN pip install --no-cache-dir "sentry-sdk==2.18.0"
|
|
|
|
COPY forwarder.py .
|
|
|
|
# Запускается под root — необходимо для чтения /var/log/caddy/gendsgn.ru.log
|
|
# (Caddy пишет лог под UID 0). Mounts: caddy_logs:ro + auth_forwarder_state (write).
|
|
# Attack surface минимален: нет network listener, нет shell, образ python:3.12-slim.
|
|
|
|
# -u для unbuffered stdout — docker logs виден сразу без буферизации
|
|
CMD ["python", "-u", "forwarder.py"]
|