Installation
Installation
Section titled “Installation”Mailify ships four install paths. Pick the one that matches your target.
1. Docker (recommended)
Section titled “1. Docker (recommended)”The Docker image bundles the binary + compiled templates + distroless runtime (~20 MB, non-root).
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:latestSee Docker deployment guide for a full docker-compose.yml with Postgres attached.
Available tags
Section titled “Available tags”| Tag | Meaning |
|---|---|
latest | Latest release from the default branch |
0.1, 0.1.2 | Semver-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.
2. Universal install script
Section titled “2. Universal install script”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:
curl -fsSL https://mailify.donilite.me/install.sh | shWindows (PowerShell):
irm https://mailify.donilite.me/install.ps1 | iexScript options
Section titled “Script options”| Flag / env | Effect |
|---|---|
--version v0.2.0 / MAILIFY_VERSION | Pin a specific tag (default: latest) |
--dir ~/bin / MAILIFY_INSTALL_DIR | Change install directory |
MAILIFY_NO_VERIFY=1 | Skip checksum (not recommended) |
After install, point Mailify at its templates:
export MAILIFY_TEMPLATES__PATH="$HOME/.local/share/mailify/templates"mailify3. cargo install (Rust toolchain)
Section titled “3. cargo install (Rust toolchain)”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:
cargo install mailify-api --lockedThis 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.
4. Build from source
Section titled “4. Build from source”git clone https://github.com/donilite/mailify.gitcd 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