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ón | IP/Rango |
|---|---|
| Oficina trabajo | 37.34.68.35/32 |
| Casa | 93.176.0.0/16 |
| Nueva sede | 212.230.190.240/32 |
| Localhost | 127.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
- Producción: https://crearack.com/admin/
- Local: http://localhost:8000/admin/
2. Panel Principal — Secciones
Al entrar en /admin/ verás las siguientes secciones:
CORE (Gestión principal)
| Sección | Descripción | Acciones |
|---|---|---|
| Organizations | Tenants SaaS (clientes) | Crear, editar plan, módulos, límites |
| Users | Usuarios de todas las organizaciones | Crear, resetear password, asignar org/rol |
| Plans | Planes de suscripción (Starter, Pro, Custom) | Editar módulos incluidos |
| Modules | Registro de módulos disponibles | Ver, NO modificar slugs |
| Stored credentials | Credenciales encriptadas | Ver (sin secrets), eliminar |
| Login logs | Historial de logins | Solo lectura, auditoría |
| System logs | Logs de auditoría del sistema | Solo lectura |
| Script templates | Templates de configuración de red | CRUD |
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:
| Color | Acciones |
|---|---|
| Rojo | Delete, Soft-delete |
| Naranja | Disable, Pause |
| Verde | Enable, Restore |
| Azul | Resend email, Send |
| Gris | Otras 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)
- Ir a Organizations → Add Organization
- Rellenar:
- Name: Nombre de la empresa
- Address: Dirección (opcional)
- 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”
- Plan: Seleccionar el plan contratado:
- Settings:
- Max racks: Límite de racks permitidos
- Is active: Desmarcar para suspender la cuenta
- Save
Cambiar el plan de una organización
- Ir a Organizations → Click en la organización
- Cambiar Plan en la sección “Subscription”
- Ajustar Extra modules si es necesario
- 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)
- Abrir la organización
- En Extra modules, mover el módulo deseado de “Available” a “Chosen”
- 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):
- Seleccionar la(s) organización(es) con el checkbox
- En el dropdown de acciones, elegir “Disable selected organizations (pause)”
- Click Go
Método detallado (desde la ficha):
- Abrir la organización
- En la sección Account Status, desmarcar Is active
- Escribir un motivo en Disable reason (el usuario lo verá)
- 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
- Seleccionar la(s) organización(es) en el listado
- Acción “Enable selected organizations” → Go
- O abrir la ficha, marcar Is active, borrar el motivo, Save
Eliminar una organización (soft-delete / papelera)
- Seleccionar la(s) organización(es) en el listado
- Acción “Soft-delete selected organizations (recycle bin)” → Go
- 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
- Filtrar en el listado por Deleted at → “Has date” para ver las eliminadas
- Seleccionar la(s) organización(es)
- Acción “Restore selected organizations from recycle bin” → Go
- 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_backupsgenera 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_daysen 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)
- Ir a Organizations → Click en la organización
- Bajar a la sección Users (inline al final de la ficha)
- Rellenar la fila vacía: Username, Email, Role, Is active
- 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)
- Ir a Users → Add User
- Rellenar username y password
- 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
- 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
- Ir a Users → Click en el usuario
- Click en el enlace “this form” junto a “Raw passwords are not stored…”
- Introducir nueva contraseña
- Save
Desactivar un usuario
- Abrir el usuario
- En la sección Permissions, desmarcar Active
- 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
| Plan | Slug | Módulos incluidos |
|---|---|---|
| Starter | starter | Rack Editor |
| Pro | pro | Rack Editor, Network Maps, Network Mgmt, Network Observatory |
| Custom | custom | Rack Editor (core) — módulos se añaden via Extra modules de la org |
Editar módulos de un plan
- Ir a Plans → Click en el plan
- En Modules, usar las flechas para mover módulos entre “Available” y “Chosen”
- Save
Precaución: Cambiar los módulos de un plan afecta a TODAS las organizaciones que usen ese plan.
6. Módulos Disponibles
| Módulo | Slug | Core | Descripción |
|---|---|---|---|
| Rack Editor | racks | Si | Diseño de racks, dispositivos, conexiones |
| Network Maps | network-maps | No | Planos de planta, topología |
| Network Management | network-management | No | Terminal SSH, Auto-Provision, Port Config |
| Network Observatory | network-observatory | No | Monitoreo SNMP, gráficas, alertas |
| Wireless Monitor | wireless-monitor | No | Monitoreo de Access Points WiFi |
| UPS Monitor | ups-monitor | No | Monitoreo de SAIs/UPS |
| Digital Signage | digital-signage | No | Gestió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)
- Core modules (Rack Editor): Siempre activos
- Plan modules: Los definidos en el plan asignado a la organización
- 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ú”
- Ir a Organizations → Buscar la organización
- Verificar que el Plan incluya “Wireless Monitor” O que esté en Extra modules
- Si no está, añadirlo y guardar
“Quiero dar acceso temporal a un módulo”
- Abrir la organización
- Añadir el módulo a Extra modules
- Cuando ya no sea necesario, quitarlo
“Necesito crear un cliente nuevo desde cero” (Onboarding)
- Crear Organization con plan y módulos
- En la misma ficha, bajar a la sección Users y crear el primer usuario con rol Admin (rellenar username + email)
- Save — el usuario recibe automáticamente un email de bienvenida con un link para establecer su contraseña
- El cliente hace click en el link, elige su contraseña y ya puede acceder
- Una vez dentro, el cliente puede crear sus propios usuarios para su equipo
Nota: Si el email no llega, verificar que
RESEND_API_KEYestá 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”
- Verificar que el usuario tiene email asignado (Users → click en usuario)
- Ir a Users, seleccionar el usuario con el checkbox
- En el dropdown de acciones, elegir “Resend welcome email to selected users” → Go
- Si sigue sin llegar, verificar en el dashboard de Resend el estado del envío
“Un cliente quiere upgrade de Starter a Pro”
- Abrir la organización
- Cambiar Plan de Starter a Pro
- Los módulos de Pro se activan inmediatamente
- Si tenía Extra modules que ya están en Pro, se pueden dejar (no molestan)
9. Sistema de Email (Resend)
Configuración
| Componente | Valor |
|---|---|
| Proveedor | Resend via django-anymail |
| Dominio verificado | crearack.com (SPF + DKIM + DMARC) |
| Remitente | CreaRack Pro <noreply@crearack.com> |
| Variable de entorno | RESEND_API_KEY (configurada en Dokploy) |
| Free tier | 3,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)
- Ir a Users (listado)
- Seleccionar usuario(s) con checkbox
- 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ón | Ruta en Admin |
|---|---|
| Crear organización | Organizations → Add |
| Cambiar plan | Organizations → (org) → Plan |
| Añadir módulo extra | Organizations → (org) → Extra modules |
| Crear usuario (en org) | Organizations → (org) → Users inline |
| Crear usuario (global) | Users → Add User |
| Ver usuarios de una org | Organizations → click número en columna Users |
| Reset password | Users → (user) → Change password |
| Ver logins | Login Logs |
| Ver auditoría | System Logs |
| Editar plan | Plans → (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