Files
0012/HOSTING.md
T
Frank Schwenk 01de7ed4fb feat: SMTP mail stack and separate server.env deploy
Add mail.php with STARTTLS sending, test scripts, server.env split from
local .env, admin@ postbox docs, DKIM DNS support-ticket notes, and todo 11
for boka relay.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-11 23:19:03 +02:00

172 lines
6.0 KiB
Markdown

# Hosting — wint.global Classic 1.0
Stand: Willkommens-Mail vom 11.06.2026. Credentials **nicht** in diesem Repo — nur in `.env`.
## Produkt
| | |
|---|---|
| Paket | Classic 1.0 / 100% CO2-neutral |
| Speicher | 15 GB |
| Traffic | unlimitiert |
| Domain inkl. | `0012.de` |
| Abrechnung | jährlich, nächste Zahlung 11.06.2027 |
| Kundennummer | 26064 |
| Anbieter | [wint.global GmbH](https://wint.global) |
## Zugang
| Zweck | URL / Host |
|-------|------------|
| Plesk (direkt) | `https://ha01s019.org-dns.com:8443/` |
| Plesk (bequem) | Kundenbereich → Aktive Services → Produkt → „Weiter zur Plesk Administration“ |
| FTP | Host `ha01s019.org-dns.com`, gleicher User/Passwort wie Plesk |
**Hinweis:** Port 8443 kann in Firmennetzwerken blockiert sein — alternativen Anschluss testen.
## Server
| | |
|---|---|
| Servername | `ha01s019.org-dns.com` |
| Server-IP | `62.108.32.139` |
## DNS (Nameserver bei wint.global)
| NS | IP |
|----|-----|
| `ns1.org-ns.com` | `62.108.32.9` |
| `ns2.org-ns.com` | `89.107.70.9` |
DNS-Einträge nur für Domains mit Bezug zum Paket oder über wint.global bestellt.
Domain-Delegation kann nach Registration bis zu **24 Stunden** dauern. Bis dahin ggf. temporäre URL aus dem Kundenbereich nutzen.
### DNS-Zugang (Classic 1.0)
Bei wint.global liegt die **DNS-Zone oft beim Hoster** (`ns1.org-ns.com`), nicht beim Kunden in Plesk. SPF und DMARC sind gesetzt; **DKIM-TXT-Records fehlen öffentlich**, obwohl DKIM in Plesk aktiviert ist — typisch, wenn der Hoster DNS pflegt und die Mail-Records nicht synchronisiert hat.
**Du musst DNS nicht selbst pflegen.** Optionen:
1. **Support-Ticket** an support@wint.global — DKIM-DNS für `0012.de` hinterlegen (siehe unten)
2. **Workaround:** `ALERT_EMAIL` auf Gmail o. ä. setzen, solange Tuta/strenge Empfänger blockieren
#### Support-Ticket (DKIM)
In Plesk (ohne DNS-Rechte geht das trotzdem):
**Mail → Mail-Einstellungen → „Externe DNS konfigurieren“** — zwei TXT-Records kopieren und an den Support schicken, z. B.:
> Bitte folgende TXT-Records für 0012.de in der DNS-Zone ergänzen (DKIM ist in Plesk aktiv, Records fehlen in DNS):
>
> - `default._domainkey.0012.de` → *(Wert aus Plesk)*
> - `_domainkey.0012.de` → *(Wert aus Plesk)*
Prüfung danach:
```bash
dig +short TXT default._domainkey.0012.de @ns1.org-ns.com
```
Kundennummer **26064** angeben.
## TLS / HTTPS
Konfiguration in Plesk (Stand 2026-06-11):
| | |
|---|---|
| Zertifikat | Let's Encrypt (`CN=0012.de`) |
| Gültig | 2026-06-11 — 2026-09-09 (Auto-Renewal in Plesk) |
| HTTP → HTTPS | 301 Permanent Redirect |
| HSTS | `Strict-Transport-Security: max-age=15768000; includeSubDomains` (~182 Tage) |
Prüfung:
```bash
curl -sI http://0012.de/ # → 301 Location: https://0012.de/
curl -sI https://0012.de/ # → 200, HSTS-Header
```
**PHP (Web):** 8.3.31 (laut Response-Header). Cron-Aufgaben können abweichende Version wählen (z. B. 8.5.x).
## E-Mail (Plesk)
| | |
|---|---|
| POP3/IMAP | `ha01s019.org-dns.com` |
| SMTP | `ha01s019.org-dns.com` |
| Benutzername | vollständige E-Mail-Adresse |
| Passwort | bei Einrichtung des Postfachs gesetzt |
**Sicherheit:** Nach 5 fehlgeschlagenen Login-Versuchen wird die Client-IP für 10 Minuten gesperrt (FTP, Webmail, E-Mail).
### Postfächer 0012.de (Stand 2026-06-11)
| Adresse | Rolle |
|---------|--------|
| `admin@0012.de` | Hauptpostfach, **SMTP-Login** für Skripte |
| `monitor@0012.de` | Alias — Absender Monitoring (`SMTP_FROM`) |
| `alert@0012.de` | Alias — optional alternativer Absender |
Webmail / SMTP-Auth: immer die **Hauptadresse** + Postfach-Passwort, nicht den Alias-Namen allein.
### Authentifizierung (SPF / DKIM / DMARC)
| | Status |
|---|--------|
| **SPF** | ✅ gesetzt (Hoster) — nichts tun |
| **DKIM** | ⚠️ in Plesk an, **DNS-Record fehlt** — Support-Ticket (kein DNS-Zugang) |
| **DMARC** | ✅ `v=DMARC1;p=none;` (Hoster) — nichts tun |
DMARC ist optional zum Start (`p=none` = nur Reports, keine Ablehnung). Erst nach SPF/DKIM-Stabilisierung auf `quarantine`/`reject` erhöhen. Optional `rua=mailto:admin@0012.de` für Aggregate-Reports ergänzen.
Prüfung: [mail-tester.com](https://www.mail-tester.com) oder Test mit `php scripts/test-mail.php`.
### Geplante Nutzung
1. **Monitoring-Alerts** — `monitor@0012.de` → `ALERT_EMAIL` via `sendAlert()` in `config/mail.php`
2. **SMTP von boka** — siehe [`todo/11-boka-smtp-relay.md`](todo/11-boka-smtp-relay.md)
3. **Mail-Hosting** — Postfächer für Domains ohne eigenen Mailserver (MX auf 0012.de bzw. wint-NS)
## Geplante Aufgaben (Cron)
Plesk: **Websites & Domains → Geplante Aufgaben → Aufgabe planen**
| Einstellung | Empfehlung |
|-------------|------------|
| Aufgabentyp | PHP-Skript ausführen |
| Skriptpfad | `httpdocs/monitor.php` (nach Deployment) |
| PHP-Version | aktuelle verfügbare (z. B. 8.5.x) |
| Ausführen | Cron-Stil |
| Schedule Pull-Checks | `*/10 * * * *` (alle 10 Min) |
| Schedule Heartbeat-Check | `*/5 * * * *` (Push-Stale-Prüfung, ggf. in monitor.php) |
| Benachrichtigen | „Nur Fehler“ für Cron-PHP-Fehler; App-Alerts über eigenes SMTP |
Screenshot-Referenz: Plesk „Aufgabe planen“ (PHP-Skript, Cron-Stil, PHP-Version).
Weitere Plesk-Funktionen (Git, Composer, Hosting-Einstellungen): [`PLESK.md`](PLESK.md)
## Beziehung zu boka
```
Internet
│
┌──────────────┼──────────────┐
│ │ │
0012.de schwenk.online andere Sites
(wint/Plesk) (boka/VPS) (boka/VPS)
│ ▲ ▲
│ │ │
└── Pull HTTPS checks ───────┘
└── Push POST ingest.php ◄── boka Cron
└── SMTP alerts ──────────► du
```
Der Webspace ist **physisch und administrativ getrennt** — fällt boka komplett aus, kann 0012.de noch alarmieren (sofern der Hoster läuft).
## Support
- E-Mail: support@wint.global
- Tel: +49 211 972660-30