Files
jambotron α 165edf1a1e Безопасность, SMTP, очередь отправки, DKIM, деплой на Jambotron (Jambotron v0.2.3 75.1–75.3)
- SMTP-сервер переписан: разбор по строкам, AUTH PLAIN/LOGIN, нет открытого релея,
  MAIL FROM только свой после входа, 250 только после сохранения (иначе 451), лимит размера
- отправка наружу: очередь outbound_queue (V2) с повторами ~22 ч и уведомлением о недоставке;
  Jakarta Mail, режимы off / mx / smarthost, байты письма не меняются (DKIM)
- DKIM: подпись utils-mail-dkim, проверка Apache jDKIM; ключ PKCS#8, старый PKCS#1 читается
- права: письма, папки, вложения — только владельцу (было: любой по номеру); имена вложений без ../
- секреты без значений по умолчанию (DB_PASSWORD, JWT_SECRET), регистрация закрыта,
  admin123 и /api/simulate/receive — только профиль dev
- веб-клиент внутри jar (относительный /api), Dockerfile в 3 этапа, не root, health;
  docker-compose.jambotron.yml: секреты создаются при первом запуске, наружу только 8080
- gradle-wrapper.jar был в .gitignore — сборка не запускалась
- тесты: 26 (SMTP реальным клиентом и сокетом, GreenMail, DKIM подпись+проверка, очередь)

α
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 03:37:43 +01:00

56 lines
562 B
Plaintext

# Java / Gradle
*.class
*.jar
!gradle/wrapper/gradle-wrapper.jar
*.war
*.ear
*.log
.gradle/
build/
**/build/
# IDE
.idea/
*.iml
*.ipr
*.iws
out/
.vscode/
# Node / Angular
node_modules/
dist/
**/dist/
.angular/
package-lock.json
# OS
.DS_Store
Thumbs.db
desktop.ini
# Temp
*.tmp
*.swp
*.swo
*~
# Docker
docker-compose.override.yml
# Attachments (local dev)
attachments/
# DKIM keys (generate on each server)
dkim-keys/
# Environment variables
.env
.env.local
# local data of the dev server
backend/attachments/
backend/dkim-keys/
attachments/
dkim-keys/