
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.