go-postfixadmin: painel moderno para seu servidor Postfix

go-postfixadmin

Quem já montou servidor de e-mail com Postfix + Dovecot conhece o ritual: o PostfixAdmin clássico em PHP, um web server configurado só para ele, e uma interface que parou no tempo. O go-postfixadmin é a minha resposta moderna para isso: um único binário em Go com todo o frontend Vue 3 embutido — painel web, API REST e ferramentas de linha de comando para administrar domínios, caixas, aliases e transports do seu servidor Postfix. Sem PHP, sem servidor web extra, sem pasta de assets: baixa, roda, administra.

O que ele faz

  • Gestão completa de e-mail — domínios, caixas postais (com quota), aliases, alias de domínios e transports do Postfix
  • Portal de autoatendimento — o usuário final troca a própria senha, configura encaminhamento e resposta automática de férias (via Dovecot Sieve) sem abrir chamado
  • API REST de produção — versionada (/api/v1), JWT com refresh httpOnly, chaves de API persistentes e Swagger interativo para explorar
  • RBAC — separação entre superadmin e admin de domínio, com permissões finas
  • CLI e automação — importação/exportação CSV, criação de caixas em lote, backup, relatórios de quota e leitores de log
  • Observabilidade — log de ações administrativas e ingestão do log de mail (readlog)
  • Interface em português — UI e mensagens totalmente traduzidas (pt_BR, inglês e espanhol)
  • Dois bancos — MariaDB/MySQL e PostgreSQL, via GORM

Instalação em minutos

Cada release publica binário, .deb e .rpm — escolha o seu em Releases. No 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

Na família Red Hat:

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

Gere a configuração, rode as migrações do banco e suba o servidor:

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

O painel abre em http://localhost:8080 — e com server.swagger_enable = true na config, a documentação viva da API fica em /swagger/.

Prefere Docker?

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

O repositório inclui um docker-compose.yml pronto com MariaDB e criação automática do admin — a stack inteira sobe com um comando.

Integração com Postfix e Dovecot

O go-postfixadmin usa o mesmo modelo de dados consagrado pelo PostfixAdmin: o Postfix e o Dovecot leem as tabelas de domínios, caixas e aliases direto do banco. Os guias passo a passo de servidor completo estão no repositório — MariaDB e PostgreSQL. Tem até um servidor TCP de transport embutido para servir transport_maps ao Postfix em tempo real.

Por baixo do capô

Backend em Go 1.26 (Echo v5, GORM, Cobra, Zerolog, OpenAPI via Swaggo); frontend Vue 3 + TypeScript + Tailwind v4 compilado para dentro do binário. O executável sai comprimido com UPX e os pacotes .deb/.rpm são gerados por GitHub Actions a cada release. Licença MIT.

Experimente

Se você administra Postfix — de um domínio pessoal a centenas de clientes — o go-postfixadmin foi feito para tirar o atrito do caminho: um binário, um banco, um painel bonito e uma API de verdade. Instale, suba o docker-compose de teste e me conte o que achou: estrela e issues no GitHub são muito bem-vindas, e a página de contato está aberta para casos de uso e dúvidas.