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.
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.
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.
wget https://go.emailengine.app -O install.sh
# or
curl -L https://go.emailengine.app -o install.sh
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.
The steps below show a minimal binary installation on Ubuntu. Adapt paths and package commands for your distribution.
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
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/
emailengine --dbs.redis="redis://127.0.0.1:6379/0"
Use flags or a .env
file to override any defaults (see the configuration guide).
Re‑download the latest emailengine.tar.gz
, replace the existing binary, and restart the service/process.
EmailEngine ships as a signed PKG installer for both Intel and Apple Silicon Macs.
Install Redis with Homebrew:
brew update
brew install redis
brew services start redis
Alternatively, connect EmailEngine to a remote Redis server.
Download the latest installer:
The installer places the emailengine
binary in /usr/local/bin
and adds it to $PATH
.
emailengine --dbs.redis="redis://127.0.0.1:6379/0"
Provide additional flags or a .env
file as required.
Download the newest PKG for your CPU architecture and run it. The installer replaces the existing binary and preserves configuration.
Remove the executable:
sudo rm /usr/local/bin/emailengine
EmailEngine ships as a standalone Windows executable.
Redis is not officially maintained for Windows. Install a compatible fork such as Memurai or point EmailEngine to a remote Redis server.
Grab the latest emailengine.exe from the releases page and place it in a convenient directory.
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.
Download the newest emailengine.exe, replace the existing file, and restart the process.
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.
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.
Click Deploy to Render and follow the prompts. Leave default values unless you need custom environment variables.
For a step‑by‑step walkthrough or customised setup, see the Render installation guide.
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.
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.
Click Deploy to Heroku, enter the App Name, and leave all other fields unchanged.
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.
EmailEngine runs on any device that supports Node.js, including ARM‑based single‑board computers such as Raspberry Pi.
Download a current LTS build for your platform from https://nodejs.org/en/download/ and follow the installer.
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/.
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.