Skip to main content

ign8mail

Ignite a production-grade mail server in minutes.

What it does in one command:

  1. Generates an SSH keypair
  2. Provisions a Hetzner Cloud VPS via Pulumi
  3. Creates all required Cloudflare DNS records (A, MX, SPF, DKIM, DMARC, autoconfig)
  4. 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)

Metadata

Release files for ign8mail 2.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ign8mail 2.6.0
File Size Uploaded Provenance Actions
ign8mail-2.6.0.tar.gz 86.2 kB Without provenance Details for ign8mail-2.6.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for ign8mail 2.6.0
File Interpreter ABI Platform Actions
ign8mail-2.6.0-py3-none-any.whl Python 3 none any Details for ign8mail-2.6.0-py3-none-any.whl

Total release size: 188.8 kB

Release files / ign8mail-2.6.0.tar.gz

Download URL ign8mail-2.6.0.tar.gz
Size 86.2 kB
Tags Source
SHA-256 checksum
How to use checksums
52187864e37e13231d0e11eb7e562ded3bc4394dd9556af2e000a2a43c17e257
BLAKE2b-256 checksum
How to use checksums
1547d84e051984675b9ade288207c618e36948c9ce1561320959ecefb77cbf46
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.2

Release files / ign8mail-2.6.0-py3-none-any.whl

Download URL ign8mail-2.6.0-py3-none-any.whl
Size 102.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e192cb538e6a0bdf68d5b7d2aebbab72f7ecb9b1e4d639e76c9d3d7757a4ffa6
BLAKE2b-256 checksum
How to use checksums
108c8d197754bc95a7641422bef19ab02be14d2a558b2d2bbdc481e5818ce635
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.2

Security for ign8mail 2.6.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page