LibrePortal
Sponsor
Install

LibrePost

Your mail's own post office

Sends and receives for you from a public box, so your mail server stays hidden at home and spam stops at the door

On this page
  1. At a glance
  2. What the install asks
  3. Addresses and ports
  4. Settings
  5. In its config file
  6. Tools
  7. Works with
  8. Privacy and security
  9. What leaves this server
  10. What LibrePortal turns off
  11. Sources
  12. Under the hood

Good to know before you install

Your provider must allow port 25, and the reverse DNS of this server's address must be set to its mail name.

At a glance#

What it is
Your mail's own post office Communication ยท made by the LibrePortal project
Where it opens
No web page It works in the background
Updates
When you choose New versions wait for you to press Update
Backups
Left out Not in the scheduled backups unless you switch it on
Copies
One per server
Needs
A domain for the relay's name (it becomes post.<your domain>)

There's no step-by-step guide for LibrePost here yet. Everything below comes straight from the app catalogue, so it's what LibrePortal really does when you install it. For using LibrePost itself, its own documentation is the place to go: github.com/stalwartlabs/stalwart.

What the install asks#

When you install LibrePost, LibrePortal asks for a little more than usual before it starts:

  • Quick settings

Addresses and ports#

LibrePost has 2 ports. LibrePortal picks a free port number for each when you install, so yours will differ from anyone else's. The Config tab's Network section shows them, and the app's Open button uses the right one. "Anyone" means it's reachable from wherever your server is reachable; you can make it private later.

What it isWho can reach itWith a domain
Mail from the world (SMTP) TCP Anyone Port only
The tunnel to your home server (WireGuard) UDP Anyone Port only

Settings#

These are LibrePost's own settings on its Config tab. The settings every app shares, like backups, updates and where its data lives, are explained in App pages and settings.

SettingWhat it doesStarts as
Mail Name The name the world reaches this box by. It is the relay's mail name, and the reverse DNS of this server's address must say the same. Leave empty for post.<your first domain>. Empty
Junk Mail How firmly spam is turned away while the sender is still connected. Mail it refuses is bounced to its sender at once, so nothing disappears silently.
Choices: Normal, Firm, Gentle
normal

In its config file#

A few more aren't on the Config tab yet. They live in the app's config file, described here so you know they exist. How to change them.

SettingWhat it doesStarts as
Name
CFG_LIBREPOST_DISPLAY_NAME
What this app is called on your dashboards. Leave empty to use its usual name Empty
Show on the LibrePortal Dashboard
CFG_LIBREPOST_SHOW_ON_DASHBOARD
Whether this app gets a shortcut on the front page of the LibrePortal WebUI; it has no web page of its own
Choices: true, false
false

Tools#

LibrePost's Tools tab has 3 buttons for jobs you'd otherwise need a terminal for. Each one runs as a task, so you can watch it on the Tasks page and read what it did. More about Tools.

Check NowTested on 0.16.27

Look at the tunnel, the queue and the DNS records again, and refresh this page.

Make a New Pairing CodeTested on 0.16.27

Replace the pairing. The tunnel to the current home server stops until it uses the new code, which then shows on this page.

UnpairTested on 0.16.27

Take the home server's end of the tunnel away. The relay then accepts mail for no domain.

Works with#

These are the other apps LibrePost knows how to work with. Once it's installed, its page shows the same list with whether each one is connected. How this works.

  • Grafana: Shows dashboards for the apps that have one. works with every app
  • Prometheus: Collects metrics from the apps that can export them. works with every app
  • Uptime Kuma: Watches your apps and shows when one goes down. works with every app

Privacy and security#

Worth knowing LibrePost reads your mail while it passes through the public box, to filter spam, and keeps none once it is delivered. It sends no reports, downloads spam rules from GitHub and does normal mail lookups.

What leaves this server#

  • Spam-filter rules and the web admin are downloaded from GitHub, which sees this server's address
  • Normal mail traffic: DNS blocklists, SPF and DMARC lookups, and the mail itself to wherever it is addressed

What LibrePortal turns off#

  • Open relaying: mail is accepted only for the domains your home server registered
  • Every mail service but port 25 for the world: no IMAP, POP, web admin or JMAP is published

Licence: AGPL-3.0 (community); optional paid Enterprise licence. Audited: 22 October 2026. See the privacy of every app and the Promise.

Sources#

Under the hood#

  • It runs these images: stalwartlabs/stalwart:v0.16.27@sha256:c429b311c93db5606598abc1c68225a85a6953183848ae01bee9c6a98885836c, ghcr.io/wg-easy/wg-easy:15.4.0@sha256:0e7bc9d34e86ddcaa92bc700d4d7dc9b33291dbc07ac8d13382f7c2095f949ec. The version is pinned, and moves only when you update it.
  • It can sit behind Authelia's sign-in once Authelia is installed.
  • Its own project and documentation: github.com/stalwartlabs/stalwart

Ports, settings, tools and connections on this page are read from LibrePortal v0.10.97's app catalogue each time the guide is built.

Next steps