Spin up a fully configured mail server in minutes — Hetzner Cloud infra, Cloudflare DNS, all from one CLI command.
Project description
ign8mail
Ignite a production-grade mail server in minutes.
What it does in one command:
- Generates an SSH keypair
- Provisions a Hetzner Cloud VPS via Pulumi
- Creates all required Cloudflare DNS records (A, MX, SPF, DKIM, DMARC, autoconfig)
- SSHs into the server and installs + configures Postfix, Dovecot, rspamd, and Let's Encrypt TLS
Install
pip install ign8mail
Quickstart
cp .env.example .env
# Fill in .env with your tokens and domain
ign8mail up \
--domain mail.example.com \
--admin-email admin@example.com \
--hetzner-token $HETZNER_TOKEN \
--cloudflare-token $CF_TOKEN \
--cloudflare-zone-id $CF_ZONE_ID
Or use environment variables (all flags have IGN8_ prefixed env var equivalents):
export IGN8_DOMAIN=mail.example.com
export IGN8_ADMIN_EMAIL=admin@example.com
export IGN8_HETZNER_TOKEN=...
export IGN8_CLOUDFLARE_TOKEN=...
export IGN8_CLOUDFLARE_ZONE_ID=...
ign8mail up
Teardown
ign8mail destroy
This removes the Hetzner server. DNS records are left intact.
Requirements
- Python 3.11+
- A Hetzner Cloud account and API token
- A domain managed by Cloudflare (API token + Zone ID)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ign8mail-2.0.0.tar.gz.
File metadata
- Download URL: ign8mail-2.0.0.tar.gz
- Upload date:
- Size: 77.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
41a693a423af7da80c639d4f1b2e03abfa107f1dd052492ed745003cecd4a6d3
|
|
| MD5 |
a965b62546e4fa8d8c47c2a451930cd5
|
|
| BLAKE2b-256 |
c292bdaf5d8e3f68481a99b785837735e09105853bab30f630e539dabe86649e
|
File details
Details for the file ign8mail-2.0.0-py3-none-any.whl.
File metadata
- Download URL: ign8mail-2.0.0-py3-none-any.whl
- Upload date:
- Size: 54.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
38971941c7791dc6d6122a7278ffb4293a28433ca5583d8fcadcd14d5ae9b117
|
|
| MD5 |
01476e2efe20ac182a1eb8d9cf449107
|
|
| BLAKE2b-256 |
2a5711b8ac867f8fe0141acd363b0c802e68448fe1bc9f423fb1a22e54d35a69
|