Roles y Permisos
Roles y Permisos
Dokploy incluye un sistema de roles y permisos que permite controlar quien puede acceder y modificar cada proyecto. Esto es fundamental cuando trabajas en equipo o gestionas infraestructura para multiples clientes.
Sistema de roles en Dokploy
Dokploy maneja tres niveles de acceso:
| Rol | Descripcion |
|---|---|
| Admin | Acceso total al panel. Puede crear proyectos, gestionar servidores, usuarios y configuracion global |
| User | Acceso limitado a los proyectos que le fueron asignados. No puede modificar configuracion del servidor |
| Viewer | Solo lectura sobre los proyectos asignados. No puede desplegar ni modificar configuracion |
El primer usuario creado durante la instalacion siempre tiene rol Admin.
Permisos por rol
Admin:
- Crear/eliminar proyectos
- Gestionar usuarios
- Configurar servidores
- Acceder a todas las aplicaciones
- Modificar configuracion global
- Ver logs y monitoring de todo
User:
- Ver proyectos asignados
- Desplegar aplicaciones asignadas
- Modificar variables de entorno
- Ver logs de sus aplicaciones
- Usar terminal en sus contenedores
Viewer:
- Ver proyectos asignados (solo lectura)
- Ver logs
- Ver estado de aplicaciones
Crear usuarios adicionales
Para agregar un nuevo usuario al panel de Dokploy:
- Ve a Settings en el menu lateral
- Selecciona la seccion Users
- Haz clic en Create User
Completa los campos requeridos:
Email: [email protected]
Password: (genera una contrasena segura)
Role: User
El nuevo usuario puede iniciar sesion inmediatamente con esas credenciales.
Desde la API
Dokploy expone una API interna que puedes usar para automatizar la creacion de usuarios:
curl -X POST https://tu-dokploy.com/api/auth/register \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <admin-token>" \
-d '{
"email": "[email protected]",
"password": "password-seguro-123"
}'
Asignar permisos por proyecto
Una vez creado el usuario, necesitas asignarle acceso a proyectos especificos.
Desde la configuracion del proyecto
- Abre el proyecto al que quieres dar acceso
- Ve a Settings del proyecto
- En la seccion Members, agrega el usuario
- Selecciona el nivel de acceso: User o Viewer
Permisos granulares
Dentro de un proyecto, puedes controlar el acceso a nivel de servicio individual:
Proyecto: "mi-saas"
|- api (acceso: [email protected] - User)
|- frontend (acceso: [email protected] - User)
|- database (acceso: solo Admin)
|- redis (acceso: solo Admin)
Esto permite que un desarrollador frontend tenga acceso solo a los servicios que le competen sin poder modificar la base de datos.
Invitaciones por email
Dokploy soporta invitar usuarios por correo electronico. El flujo es:
- El admin crea una invitacion desde Settings > Users > Invite
- Ingresa el email del invitado y el rol
- El sistema envia un correo con un enlace de registro
- El invitado crea su contrasena y accede al panel
Configurar SMTP para invitaciones
Para que las invitaciones por email funcionen, configura un servidor SMTP en Settings > Notifications:
SMTP Host: smtp.gmail.com
SMTP Port: 587
SMTP User: [email protected]
SMTP Password: app-password-de-google
From Email: [email protected]
Si no tienes SMTP configurado, puedes crear usuarios directamente con contrasena como se explico arriba.
Organizaciones (v0.19+)
A partir de la version 0.19, Dokploy introduce el concepto de organizaciones para gestionar multiples equipos o clientes.
Que es una organizacion
Una organizacion es un contenedor logico que agrupa:
- Proyectos
- Usuarios
- Configuracion compartida
Esto permite aislar completamente los recursos entre equipos o clientes.
Crear una organizacion
- Ve a Settings > Organizations
- Haz clic en Create Organization
- Asigna un nombre descriptivo
Nombre: "Cliente ACME"
Descripcion: "Infraestructura del cliente ACME"
Asignar usuarios a organizaciones
Cada usuario puede pertenecer a una o varias organizaciones con roles diferentes:
Usuario: [email protected]
|- Organizacion "Interno": Admin
|- Organizacion "Cliente ACME": User
|- Organizacion "Cliente Beta": Viewer
Proyectos por organizacion
Los proyectos creados dentro de una organizacion solo son visibles para los miembros de esa organizacion:
Organizacion: "Cliente ACME"
|- Proyecto: acme-frontend
|- Proyecto: acme-api
|- Proyecto: acme-databases
Organizacion: "Interno"
|- Proyecto: herramientas-internas
|- Proyecto: monitoring
Buenas practicas de acceso
Principio de minimo privilegio
Asigna siempre el rol mas restrictivo que permita al usuario hacer su trabajo:
- DevOps lead -> Admin
- Desarrollador -> User (solo sus proyectos)
- QA -> Viewer (solo proyectos de staging)
- Cliente -> Viewer (solo su proyecto)
- CI/CD pipeline -> User (solo deploy via API)
Separar ambientes por proyecto
Crea proyectos separados para cada ambiente y controla el acceso:
Proyecto: "app-desarrollo"
Acceso: todo el equipo (User)
Proyecto: "app-staging"
Acceso: devs senior + QA (User)
Proyecto: "app-produccion"
Acceso: solo DevOps (Admin)
Auditar accesos periodicamente
Revisa la lista de usuarios cada cierto tiempo:
- Ve a Settings > Users
- Verifica que cada usuario aun necesita acceso
- Elimina usuarios que ya no son parte del equipo
- Revisa que los roles sean apropiados
Usar cuentas individuales
Evita compartir credenciales. Cada persona debe tener su propia cuenta:
# MAL
Email: [email protected] (compartido por 5 personas)
# BIEN
Email: [email protected] (Admin)
Email: [email protected] (User)
Email: [email protected] (Viewer)
Proteger la cuenta admin
La cuenta admin principal debe tener:
- Contrasena fuerte (minimo 16 caracteres)
- 2FA activado (ver capitulo 18)
- Email verificable y accesible
- No usarla para tareas diarias (crear una cuenta User para eso)
Anterior: Capitulo 16: Variables de Entorno | Siguiente: Capitulo 18: 2FA, SSO y Hardening —>