Skip to content

Panel de administración web para MailAD, escrito en Node.js, Express y EJS.

License

Notifications You must be signed in to change notification settings

cz9dev/mailad-admin

Repository files navigation

Social-Repo

MailAD Admin Panel

GitHub License

Panel de administración web para MailAD, escrito en Node.js, Express y EJS.

Descripción

Este proyecto proporciona una interfaz web para administrar configuraciones y usuarios de MailAD, un sistema de correo conectado a Active Directory mediante Postfix. Está construido utilizando tecnologías modernas de JavaScript:

  • Node.js: Entorno de ejecución del servidor
  • Express: Framework web para Node.js
  • EJS: Motor de plantillas para renderizar vistas
  • Express EJS Layouts: Soporte para layouts y templates

Características principales

  • Interfaz web intuitiva para gestión de usuarios y grupos
  • Configuración de Postfix mediante interfaz gráfica
  • Integración con LDAP/Active Directory
  • Panel de administración seguro con autenticación
  • Logs detallados y sistema de notificaciones

Requisitos del sistema

  • Node.js 18 o superior
  • npm 9 o superior
  • MailAD instalado y configurado

Screenshot

Login
Login

Panel de control
Login

Instalación

  1. Clona el repositorio dentro de la carpeta en la deceas instalar ej: ```/opt:

    cd /opt
    git clone https://github.com/cz9dev/mailad-admin.git
    cd /mailad-admin
  2. Instala dependencias:

    npm install

2.1. Si mailad-admin se conectará a su servidor Active Directory a traves de LDAPS y desplegaras en un entorno de trabajo de desarrollo, debes generar sertificados auto firmados, de lo contrarío no es necesario. Para ello ejecuta el siguiente comando:

# Variable de entorno
export NODE_TLS_REJECT_UNAUTHORIZED=0

# 1. Exportar el certificado del servidor
openssl s_client -connect servidor-ldap:636 -showcerts </dev/null 2>/dev/null | openssl x509 -outform PEM > certificado.pem

# 2. Agregar a los certificados del sistema
sudo cp certificado.pem /usr/local/share/ca-certificates/
sudo update-ca-certificates
  1. Configura las variables de entorno:

    Crea un archivo .env basado en .env.example para un entorno de desarrrollo o prueba y configura los valores necesarios. Si es para un entorno de producción entonces, cree el archivo .env basado en .env.production, complete con sus datos.

    cp .env.production .env
  2. Inicia el servidor si desplegará con npm, si deplegará con pm2 seguir la guía:

    npm start

Actualización

Suponiendo que tienes el servidor mondato en pm2

  1. Detener el servidor
    pm2 stop 0 # Si el id del la aplicacion node es 0, para ver el id de la aplicación debe anteriormente hacer un pm2 status
  2. Acceder al directorio del mailad-admin:
    cd /opt/mailad-admin
  3. Actualizar desde github:
    git pull --rebase
  4. Actualizar dependencias:
    npm update
  5. Inicia el servidor:
    pm2 start 0 #id de la aplicacion node

Estructura del proyecto

mailad-admin/
├── config/
├── controllers/          # Controladores de la aplicación
├── docs/                 # Documentación
├── middleware/           # Middleware de la aplicación
├── models/               # Modelos de la aplicación
├── public/               # Recursos estáticos (CSS, JS, imágenes)
├── routes/               # Rutas de la aplicación
├── scripts/              # Scripts de utilidad
├── tests/                # Pruebas unitarias e integración
├── utils/                # Utilidades y helpers
├── views/                # Plantillas EJS
├── .env.example          # Ejemplo de variable de entorno para entorno de desarrollo
├── .env.production       # Ejemplo de variable de entorno para entorno de producción
├── .gitignore            # Archivos ignorados por Git
├── app.js                # Punto de entrada de la aplicación
├── FAQ.md                # Archivo contribuido con preguntas y respuestas de la comunidad
├── LICENSE               # Licencia de la aplicación
├── package.json          # Dependencias y scripts del proyecto
└── README.md             # Este archivo

Credenciales para entorno de desarrollo

En un entorno de desarrollo las credenciales por defecto son las siguientes:

  • usuario: admin
  • password: admin123

Si usted decea pasar a un entorno en producción cambie en su archivo .env lo siguiente o copie el archivo .env.production por .env:

# NODE_ENV=development
NODE_ENV=production

Una ves cambiado a un entorno de producción solo podrá autenticar contra AD, con los usuarios que tenga dentro del grupo LDAP_ADMIN_GROUP que esta declarado en el archivo .env

Sistema de logs

├── logger.js (winston) → logs/app.log
│ ├── Errores técnicos
│ ├── Debug de aplicación
│ └── Info del servidor
│
└── Log.js (SQLite) → database.sqlite
├── Acciones de usuarios
├── Auditoría de cambios
└── Logs de negocio (interfaz web)

Licencia

Este proyecto está licenciado bajo MIT License - ver el archivo LICENSE para más detalles.

About

Panel de administración web para MailAD, escrito en Node.js, Express y EJS.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published