Initial Source code version

This commit is contained in:
Frank Agerholm 2025-12-11 12:07:17 +01:00
commit d979374cbc
23 changed files with 2628 additions and 0 deletions

53
README.md Normal file
View file

@ -0,0 +1,53 @@
# Task Queue System v0.3.0
**FastAPI + PostgreSQL + RabbitMQ** mit produktionsreifen Mail-Prüfungen:
- MXValidation, SPFValidation, **TLSCheck**, **CertValidity**, **MTASTSCheck**, **TLSRPTCheck**
- **Task-Abhängigkeiten**: z.B. TLS & CertValidity warten auf MXValidation
- TLS-Checks mit STARTTLS (Port 25), TLS-Version/Cipher, Zertifikatsdaten & Gültigkeit
- MTA-STS (Policy-Datei + TXT-Id) und TLS-RPT (rua)
## Quickstart
```bash
docker-compose up -d
export DATABASE_URL="postgresql+asyncpg://postgres:postgres@localhost:5432/tasks"
export RABBITMQ_URL="amqp://guest:guest@localhost/"
export RABBITMQ_EXCHANGE="tasks"
export MAX_RETRIES=3
export DNS_TIMEOUT=3.0; export DNS_LIFETIME=5.0; export SMTP_TIMEOUT=10.0
# API
uvicorn app.api:app --host 0.0.0.0 --port 8000 --reload
# Worker
python -m app.workers.mail_mx_worker
python -m app.workers.mail_spf_worker
python -m app.workers.mail_tls_worker
python -m app.workers.mail_cert_worker
python -m app.workers.mail_mtasts_worker
python -m app.workers.mail_tlsrpt_worker
# CLI
python -m app.cli create-job MailCheck --domain example.com
```
## Tasks & Dependencies
```
MailCheck
├─ MXValidation (no deps)
├─ SPFValidation (no deps)
├─ TLSCheck (depends on: MXValidation)
├─ CertValidity (depends on: MXValidation)
├─ MTASTSCheck (no deps)
└─ TLSRPTCheck (no deps)
```
## API
- `POST /jobs``{ job_type: "MailCheck", domain: "example.com" }`
- `GET /jobs/{job_id}`
## Hinweise
- Für Produktion: Migrationen mit Alembic.
- MTA-STS-Datei: `https://mta-sts.<domain>/.well-known/mta-sts.txt`
- TLS nur Port 25 (STARTTLS). 465/587 nicht erforderlich laut Anforderung.