go-postfixadmin: a modern dashboard for your Postfix server

Mascote do LinuxPro administrando as contas de e-mail no painel, com o gopher do Go segurando um envelope

Anyone who has set up an email server with Postfix + Dovecot knows the ritual: the classic PostfixAdmin in PHP, a web server configured just for it, and an interface frozen in time. go-postfixadmin is my modern answer to that: a single Go binary with the entire Vue 3 frontend embedded — web dashboard, REST API and command-line tools to manage domains, mailboxes, aliases and transports on your Postfix server. No PHP, no extra web server, no assets folder: download, run, manage.

What it does

  • Complete email management — domains, mailboxes (with quotas), aliases, domain aliases and Postfix transports
  • Self-service portal — end users change their own passwords, configure forwarding and automatic vacation replies (via Dovecot Sieve) without opening a ticket
  • Production REST API — versioned (/api/v1), JWT with httpOnly refresh, persistent API keys and interactive Swagger to explore
  • RBAC — separation between superadmin and domain admin, with fine-grained permissions
  • CLI and automation — CSV import/export, bulk mailbox creation, backups, quota reports and log readers
  • Observability — administrative action logging and mail log ingestion (readlog)
  • Interface in Portuguese — fully translated UI and messages (pt_BR, English and Spanish)
  • Two databases — MariaDB/MySQL and PostgreSQL, via GORM

Installation in minutes

Each release publishes binary, .deb and .rpm — choose yours at Releases. On Debian/Ubuntu:

wget https://github.com/jniltinho/go-postfixadmin/releases/download/v1.0.86/go-postfixadmin_1.0.86_amd64.deb
sudo apt install ./go-postfixadmin_1.0.86_amd64.deb

In the Red Hat family:

sudo dnf install https://github.com/jniltinho/go-postfixadmin/releases/download/v1.0.86/go-postfixadmin-1.0.86-1.x86_64.rpm

Generate the configuration, run database migrations and start the server:

postfixadmin --generate-config
postfixadmin migrate
postfixadmin migrate rbac
postfixadmin server

The dashboard opens at http://localhost:8080 — and with server.swagger_enable = true in the config, live API documentation is at /swagger/.

Prefer Docker?

docker run -p 8080:8080 
  -e DB_URL="postfix:senha@tcp(seu-db:3306)/postfix?charset=utf8mb4&parseTime=True" 
  jniltinho/go-postfixadmin:latest

The repository includes a docker-compose.yml ready to use with MariaDB and automatic admin creation — the entire stack starts with one command.

Integration with Postfix and Dovecot

go-postfixadmin uses the same proven data model as PostfixAdmin: Postfix and Dovecot read domain, mailbox and alias tables directly from the database. Step-by-step guides for a complete server are in the repository — MariaDB and PostgreSQL. There is even a TCP transport server built in to serve transport_maps to Postfix in real time.

Under the hood

Backend in Go 1.26 (Echo v5, GORM, Cobra, Zerolog, OpenAPI via Swaggo); frontend Vue 3 + TypeScript + Tailwind v4 compiled into the binary. The executable is compressed with UPX and .deb/.rpm packages are generated by GitHub Actions for each release. MIT license.

Try it

If you administer Postfix — from a personal domain to hundreds of clients — go-postfixadmin was built to remove friction: one binary, one database, a beautiful dashboard and a real API. Install it, start the test docker-compose and tell me what you think: stars and issues on GitHub are very welcome, and the contact page is open for use cases and questions.