Schulportal-Konventionen übernommen: Dark Mode (ThemeToggle), beispieldaten.py + generated.json, kimi.md, mail-server (Postfix-Relay + API), Deploy-Workflow (pscp/plink, npm_default), Screenshots in preview/
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
FROM alpine:3.20
|
||||
|
||||
RUN apk add --no-cache postfix ca-certificates
|
||||
|
||||
COPY main.cf /etc/postfix/main.cf
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
RUN chmod +x /entrypoint.sh && \
|
||||
mkdir -p /var/spool/postfix /etc/postfix
|
||||
|
||||
# Port 25 nur intern im Docker-Netz (kein -p beim Start!)
|
||||
EXPOSE 25
|
||||
|
||||
ENTRYPOINT ["/entrypoint.sh"]
|
||||
@@ -0,0 +1,20 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
# Absender-Umschreibung auf die Nicht-Antworten-Adresse des hocks.eu-Tenants.
|
||||
# Bei Direktzustellung an den M365-Eingang vertraut der Konnektor der
|
||||
# Absender-IP – Absenderadresse wird zentral umgeschrieben, damit keine
|
||||
# fremden Absenderdomains entstehen.
|
||||
CANONICAL_ADDRESS="${CANONICAL_ADDRESS:-noreply@hocks.eu}"
|
||||
printf '/.+/ %s\n' "$CANONICAL_ADDRESS" > /etc/postfix/sender_canonical
|
||||
|
||||
# Optionalen Relayhost aus der Umgebung setzen (z. B. [mx-von-hocks.eu]:25)
|
||||
if [ -n "${RELAY_HOST:-}" ]; then
|
||||
postconf -e "relayhost = ${RELAY_HOST}"
|
||||
fi
|
||||
|
||||
# Chroot in Containern deaktivieren (sonst lokale Unix-Sockets nicht erreichbar)
|
||||
postconf -F '*/*/chroot=n'
|
||||
|
||||
echo "MP-Mail-Relay startet (Relayhost: ${RELAY_HOST:-direkt}, Absender -> $CANONICAL_ADDRESS)"
|
||||
exec postfix start-fg
|
||||
@@ -0,0 +1,32 @@
|
||||
# Hocks Mail-Relay (Mieterportal): liefert intern angenommene Mails über den
|
||||
# konfigurierten Relayhost aus (O365-MX-Direktzustellung wie im Schulportal,
|
||||
# oder smarthost mit AUTH-Erweiterung möglich).
|
||||
# KEIN SMTP AUTH noetig bei Direktzustellung – wichtig: Container ist nicht
|
||||
# oeffentlich exponiert, Relaying nur aus dem Docker-Netz (mynetworks).
|
||||
compatibility_level = 3.6
|
||||
|
||||
myhostname = mail.mieterportal.hocks.eu
|
||||
mydomain = hocks.eu
|
||||
myorigin = $myhostname
|
||||
|
||||
# relayhost wird zur Laufzeit vom Entrypoint aus $RELAY_HOST gesetzt
|
||||
# (Direktzustellung: [mx-von-hocks.eu]:25). Leer = direkte Auslieferung.
|
||||
smtp_tls_security_level = encrypt
|
||||
smtp_tls_CApath = /etc/ssl/certs
|
||||
smtp_tls_loglevel = 1
|
||||
|
||||
# Alle Absender (Envelope + Header) auf die Nicht-Antworten-Adresse umschreiben
|
||||
sender_canonical_classes = envelope_sender, header_sender
|
||||
sender_canonical_maps = regexp:/etc/postfix/sender_canonical
|
||||
|
||||
# Nur intern erreichbar – Relaying nur aus dem Docker-Netz erlaubt (kein offenes Relay!)
|
||||
inet_interfaces = all
|
||||
inet_protocols = ipv4
|
||||
mynetworks = 127.0.0.0/8 172.16.0.0/12
|
||||
smtpd_relay_restrictions = permit_mynetworks, defer
|
||||
smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination
|
||||
smtpd_client_restrictions = permit_mynetworks, reject
|
||||
|
||||
maillog_file = /dev/stdout
|
||||
biff = no
|
||||
append_dot_mydomain = no
|
||||
Reference in New Issue
Block a user