Ctrl K
ComunidadGuías…
GITHUB · ANALIZADO

castellum

Castellum es un WAF autoalojado de binario único para proteger aplicaciones web detrás de Nginx. Ofrece autenticación centralizada, detección de amenazas SQLi/XSS y gestión de bots sin dependencias de nube.

Ficha actualizada 28 sept 2026, 1:12 · upstream 28 sept 2026, 1:00 · release v1.0.0

Ver códigoProblemas y ayudaRepositorio ↗Sitio oficial
00

Qué es castellum

Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.

Castellum actúa como una puerta de entrada de seguridad ligera que se integra con Nginx mediante el módulo auth_request. Su arquitectura permite validar solicitudes antes de que lleguen a las aplicaciones internas, proporcionando control de acceso unificado y detección inteligente de amenazas sin requerir agentes ni suscripciones en la nube.

El sistema incluye un firewall de aplicación web (WAF) basado en expresiones regulares para filtrar ataques comunes como inyecciones SQL, XSS y traversal de rutas. Además, cuenta con capacidades avanzadas de gestión de amenazas, incluyendo detección de fuerza bruta, escaneo de directorios y bloqueo automático de IPs maliciosas mediante puntuación de riesgo dinámica.

La plataforma soporta múltiples métodos de autenticación (JWT, cookies, tokens Git) y ofrece un panel de administración para gestionar usuarios, dominios autorizados y reglas WAF. Es ideal para proteger servicios internos como GitLab o Jenkins expuestos a redes públicas.

CASOS DE USO
  • Proteger instancias autoalojadas de software (GitLab, Jenkins, Prometheus) frente a ataques externos sin modificar su código.
  • Implementar un punto único de autenticación y control de acceso para múltiples aplicaciones web detrás de Nginx.
  • Gestionar bots y tráfico malicioso mediante desafíos JavaScript (Proof-of-Work) y bloqueo automático de IPs.
  • Centralizar la auditoría de seguridad y eventos de acceso en un dashboard unificado con retención de logs.
PUNTOS DESTACADOS
  • Arquitectura binaria única: despliegue simplificado sin dependencias externas ni suscripciones a la nube.
  • Integración nativa con Nginx mediante auth_request para inspección de tráfico antes del proxy.
  • Soporte multi-database: SQLite (por defecto), PostgreSQL y MySQL para persistencia de datos.
  • WAF con 9 reglas integradas contra SQLi, XSS y traversal de rutas, extensible vía dashboard.
  • Gestión de dominios autorizados para implementar control de acceso multi-inquilino en una sola instancia.
PRECAUCIONES
  • Requiere Nginx con el módulo auth_request habilitado para funcionar como proxy inverso de autenticación.
  • El binario principal depende de Go 1.25+ y Node.js 20+ para la compilación del frontend embebido.
  • La interfaz de administración utiliza un tema 'hacker' que puede no ser adecuado para entornos corporativos formales sin personalización.
  • La gestión de licencias requiere generación manual de tokens SHA-256 en el panel de administración.
VISUAL

Capturas del proyecto

Imágenes reales detectadas en la documentación del repositorio.

Castellum DashboardAdmin DashboardGuard Page
01

Perfil de infraestructura

Estimación inicial derivada del repositorio y de los servicios detectados.

CPU2 vCPUrecomendación inicial
MEMORIA2 GBRAM estimada
DISCO30 GBalmacenamiento base
COMPLEJIDADmediumnivel de operación
02

Despliegue detectado

Qué señales reales de instalación hemos encontrado.

Listo para automatizar

Despliegue recomendado: Construir el binario con ./scripts/build.sh y ejecutar ./app. Configurar Nginx para pasar X-Forwarded-Host al endpoint /auth. Asegurar permisos 0600 en ./data/bootstrap-admin-credentials antes de rotar credenciales. Para producción, considerar migrar a PostgreSQL/MySQL si se requiere persistencia avanzada.

✓Dockerfile
✓Compose
✓One-click
03

Stack y dependencias

Componentes inferidos a partir de manifests, configuración y documentación.

FRAMEWORKS
Node.jsGo
SERVICIOS
PostgreSQLMySQL
BASES DE DATOS
PostgreSQLMySQL
PUERTOS
999954323306
05

Puede sustituir a

Relaciones detectadas por el análisis del repositorio y su categoría.

06

Experiencia real de la comunidad

Ayuda a contrastar la estimación automática con instalaciones reales.

Todavía no hay datos comunitarios para este proyecto.