Set up EmailEngine

Installation instructions

All the following examples run EmailEngine with the default configuration. In most cases, you probably want to use specific settings—for example, change the Redis connection string. See the configuration page for every available option.

Ubuntu / Debian

Installing EmailEngine on Ubuntu

Use the automated install script to set up EmailEngine together with Redis, a Caddy reverse proxy, a Systemd service, and the upgrade helper /opt/upgrade-emailengine.sh.

Important: Run the script only on a fresh Ubuntu 20.04 LTS or Debian 11 server. It rewrites networking and service settings and can conflict with existing workloads. If the host already runs other applications, follow the generic Linux procedure in the next section instead.

A VPS with at least 2 GB of RAM is recommended; smaller instances often stall during package compilation.

  1. Fetch the installer:
wget https://go.emailengine.app -O install.sh
# or
curl -L https://go.emailengine.app -o install.sh
  1. Make it executable, become root, and run it. Replace example.com with your domain or leave it empty to let the script choose one:
chmod +x install.sh
sudo su
./install.sh example.com

The script installs all components, obtains a TLS certificate, and starts EmailEngine. When it finishes, open https://example.com (or the generated hostname) to create the initial admin account.

Linux

Installing EmailEngine on Linux

The steps below show a minimal binary installation on Ubuntu. Adapt paths and package commands for your distribution.

1. Redis

Add the RedisLabs PPA and install Redis:

sudo add-apt-repository -y ppa:redislabs/redis
sudo apt-get update
sudo apt-get -q -y install redis-server
sudo systemctl enable redis-server
sudo systemctl start redis-server

2. Download EmailEngine

Get the compressed binary, extract it, and move it somewhere in $PATH:

wget https://github.com/postalsys/emailengine/releases/latest/download/emailengine.tar.gz
tar xzf emailengine.tar.gz
rm emailengine.tar.gz
sudo mv emailengine /usr/local/bin/

3. Run

emailengine --dbs.redis="redis://127.0.0.1:6379/0"

Use flags or a .env file to override any defaults (see the configuration guide).

Upgrading on Linux

Re‑download the latest emailengine.tar.gz, replace the existing binary, and restart the service/process.

MacOS

Installing EmailEngine on macOS

EmailEngine ships as a signed PKG installer for both Intel and Apple Silicon Macs.

1. Redis

Install Redis with Homebrew:

brew update
brew install redis
brew services start redis

Alternatively, connect EmailEngine to a remote Redis server.

2. Download EmailEngine

Download the latest installer:

The installer places the emailengine binary in /usr/local/bin and adds it to $PATH.

3. Run

emailengine --dbs.redis="redis://127.0.0.1:6379/0"

Provide additional flags or a .env file as required.

Upgrading on macOS

Download the newest PKG for your CPU architecture and run it. The installer replaces the existing binary and preserves configuration.

Uninstalling on macOS

Remove the executable:

sudo rm /usr/local/bin/emailengine

Windows

Installing EmailEngine on Windows

EmailEngine ships as a standalone Windows executable.

1. Redis

Redis is not officially maintained for Windows. Install a compatible fork such as Memurai or point EmailEngine to a remote Redis server.

2. Download EmailEngine

Grab the latest emailengine.exe from the releases page and place it in a convenient directory.

3. Run

Open PowerShell and start EmailEngine:

PS C:\EmailEngine> .\emailengine.exe --dbs.redis="redis://127.0.0.1:6379/0"

Configuration flags can also be provided through environment variables or a .env file in the same folder.

Upgrading on Windows

Download the newest emailengine.exe, replace the existing file, and restart the process.

DigitalOcean

Installing EmailEngine on DigitalOcean

Important: DigitalOcean blocks outbound SMTP ports 587 and 465 by default. If you need EmailEngine to send email, open a support ticket with DigitalOcean and request that these ports be unblocked for your droplet.

EmailEngine is published in the DigitalOcean Marketplace as a one‑click application. During creation you can either keep the built‑in Redis server or switch to DigitalOcean’s managed database service. If you keep the built‑in Redis, you are fully responsible for its availability and backups.

Use a droplet with at least 2 GB of RAM.

Upgrading to the latest version

SSH into the droplet and run:

sudo /opt/upgrade-emailengine.sh

The script stops EmailEngine, downloads the latest release, applies migrations, and restarts the service.

Render

Installing EmailEngine on Render

Click Deploy to Render and follow the prompts. Leave default values unless you need custom environment variables.

Deploy to Render

For a step‑by‑step walkthrough or customised setup, see the Render installation guide.

CapRover

Installing EmailEngine on CapRover

CapRover provides a one‑click EmailEngine template. Open One‑Click Apps in your CapRover dashboard, search for EmailEngine, set the App Name (for example emailengine), and deploy.

After the container starts, enable HTTPS for the app and tick Force HTTPS (redirect HTTP → HTTPS). Then open the application URL to access EmailEngine.

Upgrading an existing CapRover installation

Open the CapRover admin panel, select the EmailEngine app, and go to the Deployment tab. In Method 6 – Deploy via Image Name enter:

postalsys/emailengine:v2

Click Deploy now. CapRover pulls the latest image, recreates the container, and restarts EmailEngine without data loss.

Heroku

Installing EmailEngine on Heroku

Click Deploy to Heroku, enter the App Name, and leave all other fields unchanged.

Deploy

Heroku regularly closes long‑running network connections. Because EmailEngine keeps persistent IMAP, SMTP, or API channels open, these disconnects can interrupt message processing. Deploy on Heroku only if the rest of your stack already runs there and allocate extra resources. If 2 GB RAM is ordinarily sufficient, provision a 4 GB dyno on Heroku to offset its stricter limits.

Heroku’s free and low‑tier Redis plans cap the number of concurrent connections. Every EmailEngine worker thread opens several Redis connections, so a small plan exhausts the limit quickly. Choose a Redis tier that allows at least 200 concurrent connections or host Redis elsewhere.

Other platforms

Installing EmailEngine on Other Platforms

EmailEngine runs on any device that supports Node.js, including ARM‑based single‑board computers such as Raspberry Pi.

1. Install Node.js

Download a current LTS build for your platform from https://nodejs.org/en/download/ and follow the installer.

2. Install Redis

Install and start a local Redis server. Official instructions for each platform are at https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/.

3. Download and start EmailEngine

Create a working directory, fetch the latest release archive, and unpack it:

mkdir emailengine
cd emailengine
wget https://github.com/postalsys/emailengine/releases/latest/download/source-dist.tar.gz
tar xzf source-dist.tar.gz
rm source-dist.tar.gz

Create a minimal configuration file .env:

echo 'EENGINE_WORKERS=2
EENGINE_REDIS=redis://127.0.0.1:6379/8' > .env

Launch EmailEngine:

node server.js

The application reads configuration from .env. Browse to http://localhost:3000 (or the port set in EENGINE_PORT) to open the UI.