Cutter 8
- vCPU
- 4 × dedicated
- RAM
- 8 GB
- Storage
- 160 GB NVMe SSD
- Transfer
- 10 TB
- IPv4 / IPv6
- 1 / /64 routed
Solution
Self-hosting mail needs three things most providers do not give you: outbound port 25 open, self-service reverse DNS, and address space with no spam history. Two cores and 4 GB run Mailcow for a small team, 8 GB if you want full-text search. Deliverability, not hardware, is the hard part — set SPF, DKIM and DMARC before you send a single message.
| Resource | What you actually need |
|---|---|
| CPU | 2 cores for a small team, 4 for 50+ mailboxes |
| RAM | 4 GB minimum for Mailcow; 8 GB with Solr search |
| Disk | 160 GB NVMe and up, sized to your archive |
| Network | Port 25 outbound, static IPv4, self-service PTR |
Location is usually the decision that matters most for this workload — either because latency dominates, or because jurisdiction does.
mail.example.com, matching what you will publish in DNS.
The PTR record must resolve back to the same hostname or most receivers will reject you.
Both ship a complete stack; Stalwart is a single Rust binary if you prefer less Docker.
Start DMARC at p=none, read the reports for a fortnight, then move to p=quarantine.
A few dozen messages a day for the first week. Volume spikes from a new IP look exactly like a spam run.
Yes, outbound port 25 is open on every instance by default. We do not require a support ticket, an account age, or a paid add-on to unblock it.
Yes, for both IPv4 and IPv6, directly from the control panel. Changes propagate within a few minutes.
Not if you configure SPF, DKIM, DMARC and a matching PTR, and warm the address up. Those four things account for the overwhelming majority of deliverability problems.