Capturas
Estas capturas son de una cuenta de demostración con datos ficticios ("Estudio Demo") armada especialmente para este caso de estudio — nunca se muestran dominios ni casillas de clientes reales.
Por qué existe
Tengo hosting compartido en cPanel para mis propios sitios y para algunos clientes (cada uno con su dominio apuntado a una subcarpeta de la misma cuenta) — pero sin cuenta de revendedor/WHM, la vía "oficial" para darle a un cliente su propio acceso administrable no existe. Lo que sí está disponible en cualquier cuenta individual, sin WHM, es la UAPI de cPanel autenticada con un token de cuenta — así que esta es la capa de autoservicio que faltaba entre esa API y mis clientes.
Nació de una charla ("¿esto se puede hacer?") y se construyó módulo por módulo, verificando cada función de la API contra la cuenta real antes de confiar en ella — la documentación de terceros resultó inconsistente varias veces (nombres de función y de parámetro que no existen o no coinciden entre funciones "hermanas").
Funcionalidades
- Casillas: crear, cambiar clave, cambiar cuota, borrar
- Borrado en cascada con confirmación: si una casilla tiene autorespondedor/filtros/redireccionadores asociados, avisa antes de borrarla sola y huérfanos
- Redireccionadores individuales y catch-all del dominio
- Autorespondedores con fechas de inicio/fin opcionales
- Filtros de correo por casilla (rechazar o reenviar copia según remitente/destinatario/asunto)
- Dominios compartidos entre varios clientes (co-administración real, con acceso total dentro del dominio)
- Registro de actividad completo, visible para cualquier co-administrador del dominio
- Recuperación de clave self-service (token de un solo uso) para clientes y para mí como admin
- Email alternativo opcional por cliente — la recuperación llega a los dos si está cargado
- Link directo al webmail (Roundcube) de cada casilla
- Aislamiento por dominio revalidado del lado servidor en cada acción, nunca solo confiado a la UI
Decisiones de seguridad
Deliberadamente afuera de la UI, aunque la API de cPanel lo permite: la opción "pipe" en redireccionadores/filtros (mandar el correo a un script — sería ejecución de comandos en un panel de autoservicio) y el toggle de SpamAssassin (es una configuración de cuenta completa, no por dominio — un cliente podría afectar a todos los demás). Tampoco se guardan contraseñas de casillas para ningún tipo de acceso automático a webmail: quedó evaluado como "peligroso y pendiente", sin implementar salvo que en algún momento decida sopesar ese riesgo explícitamente.
Stack técnico