🚀 Social Bot Scheduler#
Laboratorio de integración industrial multi-lenguaje y multi-servicio. El Social Bot Scheduler actúa como una Matriz Tecnológica donde n8n orquesta la comunicación entre bots emisores y receptores políglotas.
🌐 Sitio del laboratorio: https://vladimiracunadev-create.github.io/social-bot-scheduler/ — la matriz de casos y toda esta documentación navegable como HTML (se regenera desde el repositorio en cada push a
main).
Nota
¿Qué significa "🛡️ Security: Hardened"? Este repositorio implementa una política de Aislamiento Runtime: Todos los servicios están limitados a
localhost, usan imágenes base seguras con escaneos de vulnerabilidades manuales (Trivy) y no contienen secretos hardcodeados, mitigando riesgos de cadena de suministro.
📋 Tabla de Contenidos#
- 🚀 Quickstart
- 🧩 Casos de Integración (Tech Matrix)
- 🛡️ Modelo de Seguridad Runtime
- 🏢 Superficies de Riesgo (No exponer a Internet)
- 🏗️ Arquitectura y Patrones
- ⚙️ Comandos Útiles
- 📚 Documentación Relacionada
🚀 Quickstart#
Consejo
Este repositorio está diseñado para ejecutarse exclusivamente en un entorno de desarrollo local (localhost).
1. Modo Seguro por Defecto (Default)#
cp .env.example .env
docker-compose up -dEste comando levanta el núcleo del laboratorio:
- 🌐 n8n:
http://localhost:5678 - 🖥️ Master Dashboard:
http://localhost:8080(con detección automática de casos OFFLINE/READY, contadores en vivo, modal condocker-compose --profile caseXX up -dpara levantar lo que falte y badges de RAM por caso — v4.3.0) - 🔒 Seguridad: Puertos bindeados solo a
127.0.0.1.
2. Demo Local Completa (Mode: Full)#
cp .env.demo.example .env
make upmake up activa el perfil full, activando todos los casos y servicios de observabilidad (Prometheus/Grafana).
🧩 Casos de Integración (Tech Matrix)#
El ecosistema demuestra cómo n8n puede actuar como un puente agnóstico entre cualquier tecnología.
| ID | 📤 Origen (Emisor) | 🌉 Puente | 📥 Destino (Receptor) | 📁 Persistencia | 🏷️ Perfil | 📐 Diagrama |
|---|---|---|---|---|---|---|
| 01 | Python (Pydantic) | n8n | PHP Vanilla | 🐬 MySQL | case01 | 📐 Ver |
| 02 | Python | n8n | Go (Fiber/Gin) | 🍃 MariaDB | case02 | 📐 Ver |
| 03 | Go | n8n | Node / Express | 🐘 PostgreSQL | case03 | 📐 Ver |
| 04 | Node.js | n8n | FastAPI | 📂 SQLite | case04 | 📐 Ver |
| 05 | Laravel | n8n | React / Node | 🍃 MongoDB | case05 | 📐 Ver |
| 06 | Go | n8n | Symfony | 🏎️ Redis | case06 | 📐 Ver |
| 07 | Rust | n8n | Ruby (Sinatra) | 👁️ Cassandra | case07 | 📐 Ver |
| 08 | C# (.NET) | n8n | Flask | 🏢 SQL Server | case08 | 📐 Ver |
| 09 | Python | n8n | FastAPI Gateway | 🦆 DuckDB | case09 | 📐 Ver |
| 10 | Java (Spring) | n8n | Kotlin (Ktor) | 🐘 PostgreSQL | case10 | 📐 Ver |
| 11 | Elixir | n8n | Erlang (Cowboy) | 🟣 Mnesia | case11 | 📐 Ver |
| 12 | Python (LLM) | n8n | FastAPI RAG | 🧠 pgvector | case12 | 📐 Ver |
| 13 | Node + Kafka | n8n | Go consumer | 📊 ClickHouse | case13 | 📐 Ver |
| 14 | Next.js 15 | n8n | Supabase (PostgREST) | 🟢 Postgres + RLS | case14 | 📐 Ver |
| 15 | Go (gRPC) | n8n | Python (gRPC) | 🪳 CockroachDB | case15 | 📐 Ver |
| 16 | Apollo (GraphQL) | n8n | Hasura | 📈 TimescaleDB | case16 | 📐 Ver |
| 17 | Rust (MQTT) | n8n | Node + InfluxDB | 📊 InfluxDB | case17 | 📐 Ver |
| 18 | Zig | n8n | Crystal (Kemal) | 🕸️ Neo4j | case18 | 📐 Ver |
| 20 | Swift | n8n | Dart (Shelf) | 🔥 Firestore (emu) | case20 | 📐 Ver |
Consejo
Lote 1 (
v4.5.0): 11, 16, 17. Lote 2 (v4.6.0): 10, 12, 18. Lote 3 (v4.7.0): 15, 20. Lote 4 (v4.8.0): 13, 14. Auditoría Docker (v4.9.0): los 19 casos verificados end-to-end uno a uno con Docker (persistencia real por cada motor), corrigiendo bugs reales de arranque y de healthcheck — detalle en docs/AUDIT_v4.9.0.md. 19 de 20 casos operativos víadocker-compose --profile caseNN up -d. Puertos por la regla8080 + id(ver docs/PORTS.md).
🧪 Único caso pendiente#
| ID | 📤 Origen (Emisor) | 🌉 Puente | 📥 Destino (Receptor) | 📁 Persistencia | 📌 Estado |
|---|---|---|---|---|---|
| 19 | F# (.NET) | n8n | Clojure (Ring) | ⏳ XTDB | 🧪 Código listo, verificación pendiente |
Nota
El caso 19 tiene el código completo (bug de arranque AOT ya corregido) pero queda pendiente de verificación end-to-end. Ver docs/PLANNED_CASES.md y ROADMAP.md.
🛡️ Modelo de Seguridad Runtime#
Importante
A partir de la v4.2.0, el laboratorio ha pasado por una auditoría completa de 8 capas (contenedor, red, credenciales, servidor web, herramientas, autenticación, CI/CD y cadena de suministro).
✅ Qué está protegido#
- Binding de Red: Todos los contenedores se publican únicamente en
127.0.0.1. - Secretos: Contraseñas y API Keys gestionadas vía
.env, nunca hardcodeadas. Gitleaks detecta fugas en el historial. - Opt-in Observability: Grafana y Prometheus solo se activan con
--profile observability. - HTTP Security Headers: Todos los servicios Apache sirven
X-Frame-Options,X-Content-Type-Options,Content-Security-Policy,Referrer-PolicyyPermissions-Policy. Listado de directorios deshabilitado. - Caddy Edge Proxy: HTTPS + Basic Auth + HSTS + CSP + Permissions-Policy completos.
- Supply Chain: Trivy v0.35.0, pip-audit, Gitleaks, detección de Unicode bidi (CVE-2021-42574) y ofuscación base64 en CI.
- Dependabot: PRs automáticos para 12 manifiestos en 6 ecosistemas (pip, docker, gomod, cargo,
npm—rastrea lospnpm-lock.yaml—, github-actions). - Line endings:
.gitattributesgarantiza LF en scripts shell para evitarbad interpreteren contenedores Linux. - Proceso no-root: Todos los contenedores corren como usuario sin privilegios.
🏢 Superficies de Riesgo (No exponer a Internet)#
| Servicio | Puerto | Riesgo |
|---|---|---|
| n8n | 5678 | Alto (Orquestación maestra) |
| Grafana | 3000 | Medio (Métricas y visualización) |
| Dashboards | 8080-8100 | Bajo (Visualización de casos) |
| cAdvisor | 9091 | Muy Alto (Monta /var/run/docker.sock) |
🏗️ Arquitectura y Patrones#
El sistema no es solo una integración; es un catálogo vivo con 11 patrones arquitectónicos:
- Microservicios: 40+ contenedores independientes.
- Event-Driven: Comunicación 100% vía Webhooks.
- Mediador: n8n centraliza la lógica empresarial.
- Resiliencia: Idempotencia, Circuit Breaker y DLQ.
- Persistencia Políglota: 18+ motores de bases de datos distintos.
- ...y más! Lee el detalle en docs/ARCHITECTURE.md.
⚙️ Comandos Útiles#
| Comando | Acción |
|---|---|
make up | Levanta demo completa (full) |
make up-secure | Levanta core mínimo y seguro |
make demo | Lanza una prueba del Caso 01 |
make doctor | Diagnóstico de salud del entorno |
python verify_n8n.py | Verifica workflows instalados |
📚 Documentación Relacionada#
| Tipo | Documento |
|---|---|
| 🛡️ Seguridad | SECURITY.md | docs/RUNTIME_SECURITY.md |
| 🏗️ Arquitectura | docs/ARCHITECTURE.md |
| ☁️ Migración a AWS | docs/AWS_MIGRATION.md |
| 🎓 Guías | docs/INSTALL.md | docs/VERIFICATION_GUIDE.md |
| 🛠️ Operación | docs/TROUBLESHOOTING.md | n8n/README.md |
| 🛣️ Progreso | ROADMAP.md |
| 🌐 Sitio publicado | vladimiracunadev-create.github.io/social-bot-scheduler |
Coded with ❤️ by Vladimir Acuña