CreaRack-SL

Django Admin Console Guide - CreaRack Pro

Django Admin Console Guide - CreaRack Pro

Audiencia: Administrativo de la organización principal (operador de la consola Django) URL: https://crearack.com/admin/ Restricción de acceso: Solo accesible desde IPs autorizadas + usuario superuser Última actualización: 03-04-2026 Versión: v1.0.50


1. Acceso a la Consola

Requisitos

  • Usuario con permisos de superuser (is_superuser = True)
  • Conectarse desde una IP autorizada (configurada en core/middleware/admin_paths.py)

IPs autorizadas actuales

UbicaciónIP/Rango
Oficina trabajo37.34.68.35/32
Casa93.176.0.0/16
Nueva sede212.230.190.240/32
Localhost127.0.0.0/8

Importante: Si accedes desde una nueva ubicación y recibes “Not Found”, hay que añadir la IP al middleware y al firewall Hetzner.

URL de acceso


2. Panel Principal — Secciones

Al entrar en /admin/ verás las siguientes secciones:

CORE (Gestión principal)

SecciónDescripciónAcciones
OrganizationsTenants SaaS (clientes)Crear, editar plan, módulos, límites
UsersUsuarios de todas las organizacionesCrear, resetear password, asignar org/rol
PlansPlanes de suscripción (Starter, Pro, Custom)Editar módulos incluidos
ModulesRegistro de módulos disponiblesVer, NO modificar slugs
Stored credentialsCredenciales encriptadasVer (sin secrets), eliminar
Login logsHistorial de loginsSolo lectura, auditoría
System logsLogs de auditoría del sistemaSolo lectura
Script templatesTemplates de configuración de redCRUD

MONITORING / SIGNAGE / NETWORK

Secciones de los módulos específicos (solo visibles si están registrados en admin).

Acciones rápidas (botones en línea)

En los listados de Organizations y Users, las acciones de Django (antes ocultas en un dropdown) se muestran como botones coloreados directamente visibles:

ColorAcciones
RojoDelete, Soft-delete
NaranjaDisable, Pause
VerdeEnable, Restore
AzulResend email, Send
GrisOtras acciones

Uso: Seleccionar uno o más items con los checkboxes → click en el botón de la acción deseada.


3. Gestión de Organizaciones (Clientes)

Crear una nueva organización (onboarding de cliente)

  1. Ir a Organizations → Add Organization
  2. Rellenar:
    • Name: Nombre de la empresa
    • Address: Dirección (opcional)
  3. Subscription:
    • Plan: Seleccionar el plan contratado:
      • Starter: Solo Rack Editor
      • Pro: Racks + Network Maps + Network Mgmt + Observatory
      • Custom: Solo módulos core (Racks) + los extras seleccionados
    • Extra modules: Seleccionar módulos adicionales (solo aplica si el plan no los incluye). Usar las flechas para mover módulos de “Available” a “Chosen”
  4. Settings:
    • Max racks: Límite de racks permitidos
    • Is active: Desmarcar para suspender la cuenta
  5. Save

Cambiar el plan de una organización

  1. Ir a Organizations → Click en la organización
  2. Cambiar Plan en la sección “Subscription”
  3. Ajustar Extra modules si es necesario
  4. Save

Nota: Los cambios de plan son inmediatos. El usuario verá/dejará de ver los módulos en la navegación en su próxima carga de página.

Añadir un módulo extra (à la carte)

  1. Abrir la organización
  2. En Extra modules, mover el módulo deseado de “Available” a “Chosen”
  3. Save

Ejemplo: Un cliente con plan PRO quiere añadir Wireless Monitor → mover “Wireless Monitor” a Chosen en Extra modules.

Pausar una organización (Disable)

Método rápido (desde el listado):

  1. Seleccionar la(s) organización(es) con el checkbox
  2. En el dropdown de acciones, elegir “Disable selected organizations (pause)”
  3. Click Go

Método detallado (desde la ficha):

  1. Abrir la organización
  2. En la sección Account Status, desmarcar Is active
  3. Escribir un motivo en Disable reason (el usuario lo verá)
  4. Save

Los usuarios de la organización verán una página “Account Paused” con el motivo y un enlace de contacto.

Reactivar una organización

  1. Seleccionar la(s) organización(es) en el listado
  2. Acción “Enable selected organizations” → Go
  3. O abrir la ficha, marcar Is active, borrar el motivo, Save

Eliminar una organización (soft-delete / papelera)

  1. Seleccionar la(s) organización(es) en el listado
  2. Acción “Soft-delete selected organizations (recycle bin)” → Go
  3. La org se marca como eliminada (status “DELETED”) pero los datos se conservan

No se pierden datos. La organización se puede restaurar en cualquier momento.

Restaurar una organización desde la papelera

  1. Filtrar en el listado por Deleted at → “Has date” para ver las eliminadas
  2. Seleccionar la(s) organización(es)
  3. Acción “Restore selected organizations from recycle bin” → Go
  4. La org vuelve a estado Active con todos sus datos intactos

Onboarding automático via API (v1.0.50)

Además de crear organizaciones desde el Admin, existe un endpoint público de self-service:

POST /api/signup
{
    "organization_name": "Mi Empresa",
    "email": "admin@miempresa.com",
    "username": "admin_miempresa"
}
  • Crea Organization con plan Starter + módulos core auto-sync
  • Crea User admin sin password (se establece via welcome email)
  • Validación: email, org name y username únicos
  • El welcome email se dispara automáticamente

Purge automático de organizaciones eliminadas (v1.0.50)

Las organizaciones en soft-delete se eliminan permanentemente tras 90 días mediante el Huey task purge_deleted_organizations (diario, 4:00 AM). Esto incluye:

  • Todos los datos relacionados (CASCADE: racks, devices, configs, monitoring, signage, etc.)
  • Archivos de backup en MEDIA_ROOT/backups/{org_id}/

Backups automáticos per-tenant (v1.0.50)

  • Huey task run_org_backups genera backup diario (3:30 AM) para cada org activa
  • ZIP con 14 tipos de entidades + media files
  • Storage: MEDIA_ROOT/backups/{org_id}/backup_YYYY-MM-DD.zip
  • Retención: campo backup_retention_days en Organization (0=default plan: Starter 7d, Pro 30d)
  • Descarga manual: GET /api/backup/latest (admin only)

Integridad cross-tenant (v1.0.50)

Huey task check_tenant_integrity (diario, 4:30 AM) verifica que no existan datos cruzados entre organizaciones. Si detecta anomalías, las registra en SystemLog.


4. Gestión de Usuarios

Crear un usuario nuevo (desde la ficha de Organization — recomendado)

  1. Ir a Organizations → Click en la organización
  2. Bajar a la sección Users (inline al final de la ficha)
  3. Rellenar la fila vacía: Username, Email, Role, Is active
  4. Save — el usuario se crea automáticamente asignado a esa organización

Nota: Tras guardar, hacer click en el icono de edición (📝) del usuario para establecer su contraseña.

Crear un usuario nuevo (desde Users global)

  1. Ir a Users → Add User
  2. Rellenar username y password
  3. En la sección Organization & Role:
    • Organization: Seleccionar la organización del cliente
    • Role: Seleccionar el nivel de acceso:
      • Admin: Control total dentro de su organización
      • Operator: Operaciones normales (sin gestión de usuarios)
      • Read Only: Solo visualización
  4. Save

Ver usuarios de una organización

  • Desde el listado de Organizations: La columna Users muestra el conteo de usuarios. Click en el número para ir directamente al listado de Users filtrado por esa organización.
  • Desde la ficha de Organization: La sección Users al final muestra todos los usuarios con su rol, estado y último login. Click en el enlace de edición para abrir el detalle completo del usuario.

Resetear password de un usuario

  1. Ir a Users → Click en el usuario
  2. Click en el enlace “this form” junto a “Raw passwords are not stored…”
  3. Introducir nueva contraseña
  4. Save

Desactivar un usuario

  1. Abrir el usuario
  2. En la sección Permissions, desmarcar Active
  3. Save

Eliminar MFA de un usuario (recuperación)

Si un usuario pierde su dispositivo MFA:

# Via Django CLI (SSH al servidor)
docker exec -it crearack-pro-zcmvsl-web-1 python manage.py shell -c "
from allauth.mfa.models import Authenticator
Authenticator.objects.filter(user__username='nombre_usuario').delete()
print('MFA eliminado')
"

5. Gestión de Planes

Planes predefinidos

PlanSlugMódulos incluidos
StarterstarterRack Editor
ProproRack Editor, Network Maps, Network Mgmt, Network Observatory
CustomcustomRack Editor (core) — módulos se añaden via Extra modules de la org

Editar módulos de un plan

  1. Ir a Plans → Click en el plan
  2. En Modules, usar las flechas para mover módulos entre “Available” y “Chosen”
  3. Save

Precaución: Cambiar los módulos de un plan afecta a TODAS las organizaciones que usen ese plan.


6. Módulos Disponibles

MóduloSlugCoreDescripción
Rack EditorracksSiDiseño de racks, dispositivos, conexiones
Network Mapsnetwork-mapsNoPlanos de planta, topología
Network Managementnetwork-managementNoTerminal SSH, Auto-Provision, Port Config
Network Observatorynetwork-observatoryNoMonitoreo SNMP, gráficas, alertas
Wireless Monitorwireless-monitorNoMonitoreo de Access Points WiFi
UPS Monitorups-monitorNoMonitoreo de SAIs/UPS
Digital Signagedigital-signageNoGestión de señalización digital

Módulos core (is_core = True) están siempre activos para todas las organizaciones, independientemente del plan.

No modificar los slugs — se usan internamente para el control de acceso.


7. Cómo funciona el control de acceso por módulos

Lógica de módulos activos

Módulos activos = Core modules + Plan modules + Extra modules (à la carte)
  1. Core modules (Rack Editor): Siempre activos
  2. Plan modules: Los definidos en el plan asignado a la organización
  3. Extra modules: Los seleccionados individualmente en la organización

Qué ocurre cuando un módulo no está activo

  • Navegación: El enlace desaparece de la barra de navegación
  • URL directa: El usuario recibe una página “Module Not Available” (403)
  • API: Las peticiones API devuelven {"error": "Module X is not available on your current plan"} (403)

Superusers

Los superusers (como el administrador de la consola) ignoran el gating — tienen acceso a todos los módulos siempre.


8. Escenarios comunes de soporte

“El cliente no ve Wireless en el menú”

  1. Ir a Organizations → Buscar la organización
  2. Verificar que el Plan incluya “Wireless Monitor” O que esté en Extra modules
  3. Si no está, añadirlo y guardar

“Quiero dar acceso temporal a un módulo”

  1. Abrir la organización
  2. Añadir el módulo a Extra modules
  3. Cuando ya no sea necesario, quitarlo

“Necesito crear un cliente nuevo desde cero” (Onboarding)

  1. Crear Organization con plan y módulos
  2. En la misma ficha, bajar a la sección Users y crear el primer usuario con rol Admin (rellenar username + email)
  3. Save — el usuario recibe automáticamente un email de bienvenida con un link para establecer su contraseña
  4. El cliente hace click en el link, elige su contraseña y ya puede acceder
  5. Una vez dentro, el cliente puede crear sus propios usuarios para su equipo

Nota: Si el email no llega, verificar que RESEND_API_KEY está configurada en Dokploy. También se puede reenviar manualmente: Users → seleccionar usuario → acción “Resend welcome email”.

“El usuario no ha recibido el email de bienvenida”

  1. Verificar que el usuario tiene email asignado (Users → click en usuario)
  2. Ir a Users, seleccionar el usuario con el checkbox
  3. En el dropdown de acciones, elegir “Resend welcome email to selected users” → Go
  4. Si sigue sin llegar, verificar en el dashboard de Resend el estado del envío

“Un cliente quiere upgrade de Starter a Pro”

  1. Abrir la organización
  2. Cambiar Plan de Starter a Pro
  3. Los módulos de Pro se activan inmediatamente
  4. Si tenía Extra modules que ya están en Pro, se pueden dejar (no molestan)

9. Sistema de Email (Resend)

Configuración

ComponenteValor
ProveedorResend via django-anymail
Dominio verificadocrearack.com (SPF + DKIM + DMARC)
RemitenteCreaRack Pro <noreply@crearack.com>
Variable de entornoRESEND_API_KEY (configurada en Dokploy)
Free tier3,000 emails/mes, 100/día

Email de bienvenida (automático)

Se envía automáticamente al crear un usuario con email. Contiene:

  • Nombre de la organización y rol asignado
  • Username
  • Link para establecer contraseña (token de un solo uso, expira según config de allauth)
  • URL de acceso a la plataforma

Reenviar email de bienvenida (manual)

  1. Ir a Users (listado)
  2. Seleccionar usuario(s) con checkbox
  3. Dropdown de acciones → “Resend welcome email to selected users” → Go

Dashboard de Resend

Para verificar entregas, bounces o problemas: https://resend.com/emails


10. Auditoría y Seguridad

Login Logs

  • Ubicación: Admin → Login Logs
  • Registra cada intento de login (éxito/fallo)
  • Filtros por método (password, passkey), resultado, fecha
  • Solo lectura

System Logs

  • Ubicación: Admin → System Logs
  • Registra acciones del sistema (CRUD de racks, blueprints, etc.)
  • Filtros por nivel (INFO/WARNING/ERROR), categoría, organización

Impersonation Logs

  • Registra cuando un superuser “impersona” a otro usuario
  • Incluye motivo, IP, timestamps

11. Comandos de Emergencia (CLI)

Ejecutar via SSH al servidor de producción:

# Conectar al servidor
ssh root@crearack.com

# Crear superuser
docker exec -it crearack-pro-zcmvsl-web-1 python manage.py createsuperuser

# Resetear password
docker exec -it crearack-pro-zcmvsl-web-1 python manage.py shell -c "
from core.models import User
u = User.objects.get(username='nombre')
u.set_password('nueva_password')
u.save()
"

# Ver organizaciones y sus planes
docker exec -it crearack-pro-zcmvsl-web-1 python manage.py shell -c "
from core.models import Organization
for o in Organization.objects.select_related('plan').all():
    print(f'{o.name}: plan={o.plan}, modules={o.get_active_modules()}')
"

# Backup de base de datos
docker exec crearack-pro-zcmvsl-db-1 pg_dump -U crearack_user crearack_pro > backup.sql

12. Referencia Rápida

AcciónRuta en Admin
Crear organizaciónOrganizations → Add
Cambiar planOrganizations → (org) → Plan
Añadir módulo extraOrganizations → (org) → Extra modules
Crear usuario (en org)Organizations → (org) → Users inline
Crear usuario (global)Users → Add User
Ver usuarios de una orgOrganizations → click número en columna Users
Reset passwordUsers → (user) → Change password
Ver loginsLogin Logs
Ver auditoríaSystem Logs
Editar planPlans → (plan) → Modules

Mantenido por: Equipo CreaRack

Véase también

  • [[crearack-tech—admin—django-admin]] — consola Django admin
  • [[crearack-tech—guides—superuser-admin-guide]] — admin de superusuarios SaaS
  • [[crearack-tech—agents—dev-core]] — perfil de subagente dev-core
  • [[entity—core—model—user]] — modelo de usuario multi-organización
  • [[entity—core—model—organization]] — modelo tenant principal del core
  • [[crearack-tech—backend—passkeys-authentication]] — autenticación con passkeys