--- # NodePort Service for direct SMTP/IMAP access # Use this if you have a public IP and can port-forward apiVersion: v1 kind: Service metadata: name: stalwart-external namespace: mail labels: app: stalwart spec: type: NodePort selector: app: stalwart ports: # SMTP - Receiving mail from other servers - name: smtp port: 25 targetPort: 25 nodePort: 30025 # Expose on node port 30025 protocol: TCP # SMTP Submission - Sending mail - name: submission port: 587 targetPort: 587 nodePort: 30587 protocol: TCP # SMTPS - Secure SMTP - name: smtps port: 465 targetPort: 465 nodePort: 30465 protocol: TCP # IMAPS - Secure IMAP - name: imaps port: 993 targetPort: 993 nodePort: 30993 protocol: TCP # IMAP - Plaintext IMAP - name: imap port: 143 targetPort: 143 nodePort: 30143 protocol: TCP --- # Instructions: # 1. Apply this service: kubectl apply -f stalwart-nodeport-service.yaml # 2. Forward ports from your router/firewall to your k3s node: # - 25 → :30025 # - 587 → :30587 # - 465 → :30465 # - 993 → :30993 # - 143 → :30143 # 3. Update DNS (turn OFF Cloudflare proxy): # mail.dvirlabs.com A (gray cloud, not orange) # 4. Add MX record: # @ MX 10 mail.dvirlabs.com