
Quien ya montó un servidor de correo con Postfix + Dovecot conoce el ritual: el PostfixAdmin clásico en PHP, un servidor web configurado solo para él y una interfaz que se quedó en el tiempo. El go-postfixadmin es mi respuesta moderna a eso: un único binario en Go con todo el frontend Vue 3 incrustado — panel web, API REST y herramientas de línea de comandos para administrar dominios, buzones, alias y transports de tu servidor Postfix. Sin PHP, sin servidor web extra, sin carpeta de assets: descárgalo, ejecútalo, adminístralo.
Qué hace
- Gestión completa de correo — dominios, buzones (con cuota), alias, alias de dominios y transports de Postfix
- Portal de autoservicio — el usuario final cambia su propia contraseña, configura reenvío y respuesta automática de vacaciones (mediante Dovecot Sieve) sin abrir un ticket
- API REST de producción — versionada (
/api/v1), JWT con refresh httpOnly, claves de API persistentes y Swagger interactivo para explorar - RBAC — separación entre superadmin y admin de dominio, con permisos granulares
- CLI y automatización — importación/exportación CSV, creación de buzones en lote, copia de seguridad, informes de cuota y lectores de registro
- Observabilidad — registro de acciones administrativas e ingesta del registro de correo (
readlog) - Interfaz en portugués — UI y mensajes totalmente traducidos (pt_BR, inglés y español)
- Dos bases de datos — MariaDB/MySQL y PostgreSQL, mediante GORM
Instalación en minutos
Cada release publica binario, .deb y .rpm — elige el tuyo en Releases. En 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
En la familia 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
Genera la configuración, ejecuta las migraciones de la base de datos y levanta el servidor:
postfixadmin --generate-config
postfixadmin migrate
postfixadmin migrate rbac
postfixadmin server
El panel se abre en http://localhost:8080 — y con server.swagger_enable = true en la configuración, la documentación viva de la API está en /swagger/.
¿Prefieres Docker?
docker run -p 8080:8080
-e DB_URL="postfix:senha@tcp(seu-db:3306)/postfix?charset=utf8mb4&parseTime=True"
jniltinho/go-postfixadmin:latest
El repositorio incluye un docker-compose.yml listo con MariaDB y creación automática del admin — toda la pila se levanta con un solo comando.
Integración con Postfix y Dovecot
go-postfixadmin utiliza el mismo modelo de datos consolidado por PostfixAdmin: Postfix y Dovecot leen las tablas de dominios, buzones y alias directamente desde la base de datos. Las guías paso a paso del servidor completo están en el repositorio — MariaDB e PostgreSQL. Incluso incluye un servidor TCP de transport integrado para servir transport_maps a Postfix en tiempo real.
Bajo el capó
Backend en Go 1.26 (Echo v5, GORM, Cobra, Zerolog, OpenAPI mediante Swaggo); frontend Vue 3 + TypeScript + Tailwind v4 compilado dentro del binario. El ejecutable sale comprimido con UPX y los paquetes .deb/.rpm se generan mediante GitHub Actions en cada release. Licencia MIT.
Pruebe
Si administras Postfix — desde un dominio personal hasta cientos de clientes — go-postfixadmin fue hecho para eliminar la fricción del camino: un binario, una base de datos, un panel bonito y una API de verdad. Instala, levanta el docker-compose de prueba y cuéntame qué te parece: las estrellas y las issues en GitHub son bienvenidas, y la página de contacto está abierta a casos de uso y dudas.