{"id":697,"date":"2026-09-06T14:52:29","date_gmt":"2026-09-06T17:52:29","guid":{"rendered":"https:\/\/www.linuxpro.com.br\/2026\/09\/go-postfixadmin\/"},"modified":"2026-09-08T10:15:50","modified_gmt":"2026-09-08T13:15:50","slug":"go-postfixadmin","status":"publish","type":"post","link":"https:\/\/www.linuxpro.com.br\/es\/2026\/09\/go-postfixadmin\/","title":{"rendered":"go-postfixadmin: painel moderno para seu servidor Postfix"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" alt=\"Mascote do LinuxPro administrando as contas de e-mail no painel, com o gopher do Go segurando um envelope\" src=\"\/wp-content\/uploads\/2026\/09\/go-postfixadmin-v2.webp\" width=\"1486\" height=\"856\" \/><\/p>\n<p>Quem j\u00e1 montou servidor de e-mail com Postfix + Dovecot conhece o ritual: o <a href=\"\/es\/2026\/09\/a-historia-do-postfixadmin\/\">PostfixAdmin cl\u00e1ssico<\/a> em PHP, um web server configurado s\u00f3 para ele, e uma interface que parou no tempo. O <strong><a href=\"https:\/\/github.com\/jniltinho\/go-postfixadmin\" rel=\"noopener\" target=\"_blank\">go-postfixadmin<\/a><\/strong> \u00e9 a minha resposta moderna para isso: um <strong>\u00fanico bin\u00e1rio em Go<\/strong> com todo o frontend Vue 3 embutido \u2014 painel web, API REST e ferramentas de linha de comando para administrar dom\u00ednios, caixas, aliases e transports do seu servidor Postfix. Sem PHP, sem servidor web extra, sem pasta de assets: baixa, roda, administra.<\/p>\n<h2>O que ele faz<\/h2>\n<ul>\n<li><strong>Gest\u00e3o completa de e-mail<\/strong> \u2014 dom\u00ednios, caixas postais (com quota), aliases, alias de dom\u00ednios e transports do Postfix<\/li>\n<li><strong>Portal de autoatendimento<\/strong> \u2014 o usu\u00e1rio final troca a pr\u00f3pria senha, configura encaminhamento e resposta autom\u00e1tica de f\u00e9rias (via Dovecot Sieve) sem abrir chamado<\/li>\n<li><strong>API REST de produ\u00e7\u00e3o<\/strong> \u2014 versionada (<code data-no-translation=\"\">\/api\/v1<\/code>), JWT com refresh httpOnly, chaves de API persistentes e Swagger interativo para explorar<\/li>\n<li><strong>RBAC<\/strong> \u2014 separa\u00e7\u00e3o entre superadmin e admin de dom\u00ednio, com permiss\u00f5es finas<\/li>\n<li><strong>CLI e automa\u00e7\u00e3o<\/strong> \u2014 importa\u00e7\u00e3o\/exporta\u00e7\u00e3o CSV, cria\u00e7\u00e3o de caixas em lote, backup, relat\u00f3rios de quota e leitores de log<\/li>\n<li><strong>Observabilidade<\/strong> \u2014 log de a\u00e7\u00f5es administrativas e ingest\u00e3o do log de mail (<code data-no-translation=\"\">readlog<\/code>)<\/li>\n<li><strong>Interface em portugu\u00eas<\/strong> \u2014 UI e mensagens totalmente traduzidas (pt_BR, ingl\u00eas e espanhol)<\/li>\n<li><strong>Dois bancos<\/strong> \u2014 MariaDB\/MySQL e PostgreSQL, via GORM<\/li>\n<\/ul>\n<h2>Instala\u00e7\u00e3o em minutos<\/h2>\n<p>Cada release publica <strong>bin\u00e1rio, .deb e .rpm<\/strong> \u2014 escolha o seu em <a href=\"https:\/\/github.com\/jniltinho\/go-postfixadmin\/releases\" rel=\"noopener\" target=\"_blank\">Releases<\/a>. No Debian\/Ubuntu:<\/p>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\">wget https:\/\/github.com\/jniltinho\/go-postfixadmin\/releases\/download\/v1.0.86\/go-postfixadmin_1.0.86_amd64.deb\nsudo apt install .\/go-postfixadmin_1.0.86_amd64.deb<\/code><\/pre>\n<p>Na fam\u00edlia Red Hat:<\/p>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\">sudo dnf install https:\/\/github.com\/jniltinho\/go-postfixadmin\/releases\/download\/v1.0.86\/go-postfixadmin-1.0.86-1.x86_64.rpm<\/code><\/pre>\n<p>Gere a configura\u00e7\u00e3o, rode as migra\u00e7\u00f5es do banco e suba o servidor:<\/p>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\">postfixadmin --generate-config\npostfixadmin migrate\npostfixadmin migrate rbac\npostfixadmin server<\/code><\/pre>\n<p>O painel abre em <code data-no-translation=\"\">http:\/\/localhost:8080<\/code> \u2014 e com <code data-no-translation=\"\">server.swagger_enable = true<\/code> na config, a documenta\u00e7\u00e3o viva da API fica em <code data-no-translation=\"\">\/swagger\/<\/code>.<\/p>\n<h2>Prefere Docker?<\/h2>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\">docker run -p 8080:8080 \n  -e DB_URL=\"postfix:senha@tcp(seu-db:3306)\/postfix?charset=utf8mb4&parseTime=True\" \n  jniltinho\/go-postfixadmin:latest<\/code><\/pre>\n<p>O reposit\u00f3rio inclui um <code data-no-translation=\"\">docker-compose.yml<\/code> pronto com MariaDB e cria\u00e7\u00e3o autom\u00e1tica do admin \u2014 a stack inteira sobe com um comando.<\/p>\n<h2>Integra\u00e7\u00e3o com Postfix e Dovecot<\/h2>\n<p>O go-postfixadmin usa o mesmo modelo de dados consagrado pelo PostfixAdmin: o Postfix e o Dovecot leem as tabelas de dom\u00ednios, caixas e aliases direto do banco. Os guias passo a passo de servidor completo est\u00e3o no reposit\u00f3rio \u2014 <a href=\"https:\/\/github.com\/jniltinho\/go-postfixadmin\/blob\/main\/DOCUMENTS\/setup\/SETUP_MAILSERVER_MARIADB.md\" rel=\"noopener\" target=\"_blank\">MariaDB<\/a> e <a href=\"https:\/\/github.com\/jniltinho\/go-postfixadmin\/blob\/main\/DOCUMENTS\/setup\/SETUP_MAILSERVER_POSTGRESQL.md\" rel=\"noopener\" target=\"_blank\">PostgreSQL<\/a>. Tem at\u00e9 um <strong>servidor TCP de transport<\/strong> embutido para servir <code data-no-translation=\"\">transport_maps<\/code> ao Postfix em tempo real.<\/p>\n<h2>Por baixo do cap\u00f4<\/h2>\n<p>Backend em <strong>Go 1.26<\/strong> (Echo v5, GORM, Cobra, Zerolog, OpenAPI via Swaggo); frontend <strong>Vue 3 + TypeScript + Tailwind v4<\/strong> compilado para dentro do bin\u00e1rio. O execut\u00e1vel sai comprimido com UPX e os pacotes .deb\/.rpm s\u00e3o gerados por GitHub Actions a cada release. Licen\u00e7a MIT.<\/p>\n<h2>Experimente<\/h2>\n<p>Se voc\u00ea administra Postfix \u2014 de um dom\u00ednio pessoal a centenas de clientes \u2014 o go-postfixadmin foi feito para tirar o atrito do caminho: um bin\u00e1rio, um banco, um painel bonito e uma API de verdade. Instale, suba o <code data-no-translation=\"\">docker-compose<\/code> de teste e me conte o que achou: estrela e issues no <a href=\"https:\/\/github.com\/jniltinho\/go-postfixadmin\" rel=\"noopener\" target=\"_blank\">GitHub<\/a> s\u00e3o muito bem-vindas, e a <a href=\"\/es\/contato\/\">p\u00e1gina de contato<\/a> est\u00e1 aberta para casos de uso e d\u00favidas.<\/p>","protected":false},"excerpt":{"rendered":"<p>Quem j\u00e1 montou servidor de e-mail com Postfix + Dovecot conhece o ritual: o PostfixAdmin cl\u00e1ssico em PHP, um web server configurado s\u00f3 para ele, e uma interface que parou no tempo. O go-postfixadmin \u00e9 a minha resposta moderna para isso: um \u00fanico bin\u00e1rio em Go com todo o frontend Vue 3 embutido \u2014 painel &#8230; <a title=\"go-postfixadmin: painel moderno para seu servidor Postfix\" class=\"read-more\" href=\"https:\/\/www.linuxpro.com.br\/es\/2026\/09\/go-postfixadmin\/\" aria-label=\"Read more about go-postfixadmin: painel moderno para seu servidor Postfix\">Read more<\/a><\/p>","protected":false},"author":0,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[78,2,111,120],"tags":[241,79,31,233,256,72],"class_list":["post-697","post","type-post","status-publish","format-standard","hentry","category-email","category-linux","category-opensource","category-servidores","tag-dovecot","tag-email","tag-golang","tag-postfix","tag-postfixadmin","tag-servidores"],"_links":{"self":[{"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/posts\/697","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/comments?post=697"}],"version-history":[{"count":3,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/posts\/697\/revisions"}],"predecessor-version":[{"id":1340,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/posts\/697\/revisions\/1340"}],"wp:attachment":[{"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/media?parent=697"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/categories?post=697"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/tags?post=697"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}