Configuración de DefectDojo¶
Resumen¶
DefectDojo está configurado principalmente con valores estándar, con algunas personalizaciones necesarias para integrar el servicio Nginx oficial.
Configuraciones ESTÁNDAR (Por Defecto)¶
Servicios Base¶
✅ Imagen oficial:
defectdojo/defectdojo-django:latest✅ Base de datos: PostgreSQL 15 (estándar de DefectDojo)
✅ Cache/Broker: Redis 7 (estándar de DefectDojo)
✅ Celery Worker: Para tareas asíncronas (estándar)
✅ Celery Beat: Para tareas programadas (estándar)
Variables de Entorno Estándar¶
✅ Variables de entorno de DefectDojo (
DD_*) con valores estándar✅ Configuración de base de datos estándar
✅ Configuración de Celery estándar
✅
DD_DEBUG: "True"(estándar para desarrollo)✅
DD_ALLOWED_HOSTS: "*"(estándar para desarrollo)
Configuración de Django¶
✅ Configuraciones de Django por defecto de DefectDojo
✅ Sistema de auditoría (django-auditlog) estándar
✅ API habilitada por defecto
✅ Sin modificaciones en el código fuente de DefectDojo
Configuraciones PERSONALIZADAS (Modificadas)¶
1. Servicio Nginx Oficial¶
Razón: Servir archivos estáticos de forma eficiente y hacer proxy a uwsgi
defectdojo-nginx:
image: defectdojo/defectdojo-nginx:latest
ports:
- "8080:8080"
Estado: ✅ Estándar de DefectDojo - Es el servicio Nginx oficial recomendado
2. Deshabilitación de WhiteNoise¶
Razón: Nginx sirve los archivos estáticos, no es necesario WhiteNoise
DD_WHITENOISE: "False"
Estado: ⚠️ Personalizado - Necesario cuando se usa Nginx oficial
3. Puerto Interno 8081¶
Razón: Nginx expone el puerto 8080, Django corre internamente en 8081
expose:
- "8081" # No se expone directamente
Estado: ⚠️ Personalizado - Arquitectura con Nginx como proxy
4. Alias de Red ‘uwsgi’¶
Razón: El Nginx oficial busca el servicio Django por el nombre ‘uwsgi’
networks:
defectdojo-network:
aliases:
- uwsgi
Estado: ⚠️ Personalizado - Requerido por la configuración del Nginx oficial
5. Volumen Compartido para Estáticos¶
Razón: Nginx y Django necesitan acceso a los archivos estáticos
volumes:
- defectdojo_static:/app/static
Estado: ⚠️ Personalizado - Necesario para la integración con Nginx
6. Healthchecks Personalizados¶
Razón: Verificar que los servicios funcionen correctamente
healthcheck:
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8081/')"]
Estado: ⚠️ Personalizado - Adaptado a nuestra arquitectura
Configuraciones de Desarrollo (No para Producción)¶
⚠️ IMPORTANTE: Estas configuraciones son para desarrollo y deben cambiarse en producción:
DD_DEBUG: "True"→ Cambiar a"False"en producciónDD_ALLOWED_HOSTS: "*"→ Restringir a dominios específicos en producciónDD_SECRET_KEY→ Cambiar por una clave segura en producciónContraseñas de base de datos → Cambiar todas las contraseñas en producción
Conclusión¶
DefectDojo está configurado principalmente con valores estándar, con las siguientes personalizaciones necesarias para la integración del servicio Nginx oficial:
✅ Uso del servicio Nginx oficial de DefectDojo (recomendado)
✅ Configuración adaptada para que Nginx sirva estáticos
✅ Arquitectura con proxy reverso (Nginx → Django)
✅ Healthchecks adaptados a la arquitectura
No hay modificaciones inusuales o problemáticas. Todas las personalizaciones son estándar cuando se usa el servicio Nginx oficial de DefectDojo.