Roles y Permisos

Por: Artiko
dokployrolespermisosusuarios

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:

RolDescripcion
AdminAcceso total al panel. Puede crear proyectos, gestionar servidores, usuarios y configuracion global
UserAcceso limitado a los proyectos que le fueron asignados. No puede modificar configuracion del servidor
ViewerSolo 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:

  1. Ve a Settings en el menu lateral
  2. Selecciona la seccion Users
  3. 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

  1. Abre el proyecto al que quieres dar acceso
  2. Ve a Settings del proyecto
  3. En la seccion Members, agrega el usuario
  4. 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:

  1. El admin crea una invitacion desde Settings > Users > Invite
  2. Ingresa el email del invitado y el rol
  3. El sistema envia un correo con un enlace de registro
  4. 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:

Esto permite aislar completamente los recursos entre equipos o clientes.

Crear una organizacion

  1. Ve a Settings > Organizations
  2. Haz clic en Create Organization
  3. 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:

  1. Ve a Settings > Users
  2. Verifica que cada usuario aun necesita acceso
  3. Elimina usuarios que ya no son parte del equipo
  4. 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:


Anterior: Capitulo 16: Variables de Entorno | Siguiente: Capitulo 18: 2FA, SSO y Hardening —>