Skip to content

Installation

Mailify ships four install paths. Pick the one that matches your target.

The Docker image bundles the binary + compiled templates + distroless runtime (~20 MB, non-root).

Terminal window
docker run -d \
--name mailify \
-p 8080:8080 \
-e MAILIFY_DATABASE__URL=postgres://user:pass@host:5432/mailify \
-e MAILIFY_SMTP__HOST=smtp.example.com \
-e MAILIFY_SMTP__PORT=587 \
-e MAILIFY_SMTP__USERNAME=postmaster@example.com \
-e MAILIFY_SMTP__PASSWORD=secret \
-e MAILIFY_SMTP__TLS=starttls \
donighost/mailify:latest

See Docker deployment guide for a full docker-compose.yml with Postgres attached.

TagMeaning
latestLatest release from the default branch
0.1, 0.1.2Semver-pinned (major.minor or major.minor.patch)
sha-<short>Exact commit SHA

Multi-arch: linux/amd64 and linux/arm64 published side-by-side — pull the same tag everywhere, Docker picks the right one.

One-liner that downloads the right prebuilt archive for your OS + arch from the latest GitHub Release, verifies the SHA256, installs the binary to ~/.local/bin and the template bundle to ~/.local/share/mailify/templates.

Linux / macOS:

Terminal window
curl -fsSL https://mailify.donilite.me/install.sh | sh

Windows (PowerShell):

Terminal window
irm https://mailify.donilite.me/install.ps1 | iex
Flag / envEffect
--version v0.2.0 / MAILIFY_VERSIONPin a specific tag (default: latest)
--dir ~/bin / MAILIFY_INSTALL_DIRChange install directory
MAILIFY_NO_VERIFY=1Skip checksum (not recommended)

After install, point Mailify at its templates:

Terminal window
export MAILIFY_TEMPLATES__PATH="$HOME/.local/share/mailify/templates"
mailify

Status: planned. Publishing to crates.io is gated on the lib crates being deemed API-stable. Track progress in TODO.md §4.1.

When ready:

Terminal window
cargo install mailify-api --locked

This installs the mailify binary into $CARGO_HOME/bin. Note that cargo install does not ship the compiled template bundle — you will need to either build them from source (see Template contract) or point MAILIFY_TEMPLATES__PATH at a pre-built bundle extracted from a GitHub Release archive.

Terminal window
git clone https://github.com/donilite/mailify.git
cd mailify
# 1. Build React Email templates (requires Bun ≥ 1.3)
cd templates-parser && bun install && bun run build && cd ..
# 2. Build the binary (requires Rust ≥ 1.88)
cargo build --release --bin mailify
# 3. Run it
./target/release/mailify