pez-infra/docs/hosts/nuremberg-a.md
Rasmus "Pez" Wejlgaard 83f023aedd
Some checks are pending
Deploy (on merge) / Discover hosts (push) Waiting to run
Deploy (on merge) / Deploy → (push) Blocked by required conditions
Terraform / Plan (push) Waiting to run
Terraform / Apply (push) Blocked by required conditions
Migration to Grafana Cloud, nuremberg-a reinstalled, london-a reinsta… (#93)
* Migration to Grafana Cloud, nuremberg-a reinstalled, london-a reinstalled

* dns config for cockpit
2026-05-03 14:00:22 +01:00

1.2 KiB

nuremberg-a

Dedicated mail server. One job, does it well.

Overview

Location Hetzner Cloud (Nuremberg)
OS Debian
Tailscale IP 100.70.180.24
Role Mail server (poste.io)
Provider Hetzner Cloud VPS

Services

Service Ports Deployment
poste.io 25, 587, 993, 443 Docker

poste.io is a batteries-included mail server that bundles postfix, dovecot, rspamd, and webmail into a single Docker container. No juggling separate containers for each mail component.

Why a separate server

Mail lives on its own VPS to isolate its IP reputation. If the IP gets flagged for any reason, it doesn't affect the rest of the infrastructure. And if something else gets flagged, it doesn't affect mail deliverability.

DNS

Mail-related DNS records are managed via Cloudflare (Terraform):

  • MX record for inbound mail routing
  • SPF for sender verification
  • DKIM for message signing
  • DMARC for policy enforcement

Firewall

Managed by Hetzner Cloud firewall rules (Terraform). Mail ports are exposed via Docker port mappings in ansible/services/poste-io/docker-compose.yml.