Blue Folder

INSTALL GUIDE · HETZNER / LINODE / VULTR

Blue Folder Mail on a cloud VM

Hetzner, Linode (Akamai) and Vultr are all plain Linux VMs. The flow is identical — spin one up, install Docker, run one command.

Great fit
These are great-value boxes for an always-on app. Hetzner and some Linode/Vultr regions even allow port 25 on request — but the webhook is still the reliable inbound path.

Prerequisites

Install

  1. Create the VM and open the firewall Hetzner Cloud, Linode or Vultr — any region. Allow 80/443/22 in the cloud firewall; keep 8080 internal.
  2. Install Docker, then the app
    curl -fsSL https://get.docker.com | sh
    curl -fsSL https://raw.githubusercontent.com/gordonvividtone/bluefolder-mail/main/install.sh | bash

    Set INBOUND_SECRET and RESEND_API_KEY. Data persists in the bfm-data volume.

  3. Create your mailbox

    Finish HTTPS below, then open your domain, generate your key and save the backup password.

This is the Docker guide on a cloud VM — see it for S3 storage and update commands.

Storage & sending

Receiving mail — the honest part

Recommended — webhook

Point a provider (Mailgun, SendGrid, Postal, Resend inbound) at https://your-host/_inbound with the secret as the x-inbound-secret header or ?secret=…, forwarding full raw MIME.

Built-in SMTP — only if your IP is clean

Some of these providers allow port 25 (Hetzner on request; Linode/Vultr vary), but you still need a static IP with matching rDNS, correct MX and SPF/DKIM/DMARC, and a non-blocklisted IP. Unless all of that is true, use the webhook.

HTTPS & the front door

Terminate TLS with Caddy (automatic Let's Encrypt) and keep the app on localhost:

mail.example.com {
    reverse_proxy localhost:8080
}

Add a login with BASIC_AUTH_USER / BASIC_AUTH_PASS, or keep the port on a Tailscale / VPN network.

Blue Folder Mail on a cloud VM — the same Docker flow on whichever host is cheapest for you. Full reference: DEPLOY.md. Other platforms →