Datos persistidos · 0 usuarios · Click para reset
— / —

Base de Datos · Brigadistas y Activistas

Lista completa · Filtros por estado · Búsqueda · Exportable

CédulaNombreRolZonaParroquiaEstadoRegistrado
Sin brigadistas registrados
Inicia el registro masivo desde "Registrar Persona". Cada brigadista alimenta los KPIs en tiempo real.

Registrar Persona · Brigadista

Alta y baja de brigadistas · un solo lugar (carga masiva + alta individual) · persiste directo a la colección `brigadistas` (Mongo)

Carga masiva (CSV)
Sube un archivo con muchos brigadistas a la vez.
Alta individual
Brigadistas registrados (0)
CédulaNombreTeléfonoProvinciaCantónParroquia
Sin brigadistas registrados
Da de alta el primero arriba o usa la carga masiva.

Fidelización · Electores Contactados

Meta: 50,000 contactados Quito · Nivel 1-4 · Vinculados a JRV

0
Total contactados
Meta 50,000
0
Nivel 1+2 (ADN)
0%
0
Nivel 3+4 captables
0%
0/1247
JRV con fidelizados
0% cobertura
CédulaNombreNivelRecinto / JRVCandidatoContactóRegistrado
Sin electores fidelizados
Inicia el registro de contactos. Cada elector clasificado por nivel alimenta la proyección a la meta de 50,000.

Actividades de Activismo

Registro con soporte fotográfico · Geocerca GPS · Asistentes capturados con IA

0
Actividades este mes
Meta 200/mes
0
Asistentes acumulados
Convertidos a fidelizados
0%
Validadas por GPS
Geocerca activa
0
Fotos cargadas
Soporte de auditoría
Sin actividades registradas
Cada brigadista debe reportar mínimo 4 actividades semanales con foto y lista de asistentes. La IA captura automáticamente los datos del listado.

Planificador de Giras

Parte de Actividades de Activismo · ingresa giras, guárdalas, y deja que la IA te sugiera el cronograma según la focalización

0
Giras planificadas
0
Giovanna
0
Harold
Próxima gira

Roadmap del War Room · Fases de desarrollo

Plan de evolución del sistema · Estado y entregables por fase

FASE 1
Base operativa14 módulos · formularios brigadistas/electores/delegados · KPIs Semafóricos · auditoría · exportación CSV
FASE 2
Activismo + IA (actual)Actividades con foto · Captura IA de listas · Puntos territoriales · Geocercas · Gamificación / Ranking
FASE 3
KPIs Digitales + ComunicaciónPautas/ADS por microsegmentación parroquial · SMS masivos · Bot WhatsApp · Videos tutoriales · Inteligencia de medios
FASE 4
Usuarios y Permisos + Carga Masiva7 niveles de usuario (Master -> JRV) · RLS por rol · Importador Excel · Validación cruzada padrón CNE · Formato +593
FASE 5
Mapas de CalorQuito 65 parroquias / Pichincha 8 cantones · Capas: concejales, jefes zona, jefes parroquia, brigadistas, delegados recinto, JRV
COMPLEMENTOS
Add-ons aprobadosNotificaciones por rol · Salud sistema · Adversario RC · Incidencias ciudadanas · Calendario · Repositorio docs · Riesgo de pérdida
DÍA E
Módulo read-only (coord. equipo nacional)Visualización defensa del voto · Conteo rápido · Transmisión actas · Sin gestión directa (la lleva equipo nacional ADN)

Timeline & Proyección al Día E

Evolución histórica · Trayectoria actual · Proyección al 29 de noviembre 2026

25
Semanas transcurridas
Desde junio 2026
25
Semanas restantes
Hasta día E
+12%
Ritmo semanal
Crecimiento de cobertura
87%
Proyección al cierre
Si mantenemos ritmo
Evolución de Brigadistas Registrados

Real (morado sólido) vs Proyección a meta 960 brigadistas (amarillo punteado) vs Meta lineal (verde)

0 200 400 600 800 Jun Jul Ago Sep Oct Nov Día E
Real
Proyección
Meta lineal
Evolución de Electores Fidelizados

Acumulado hacia meta 50,000 · Tasa de conversión actual

0 12.5K 25K 37.5K 50K Jun Jul Ago Sep Oct Nov Día E
Real
Proyección
Meta 50K

Comparativo Alcaldía Quito vs Prefectura Pichincha

Vista paralela · Giovanna Ubidia vs Harold Burbano · Métricas equivalentes con datos reales

Giovanna Ubidia
Alcaldía Metropolitana de Quito
Cédula: pendiente
Padrón electoral2,085,000
Recintos · JRV392 · 6,221
Participación esperada75%
Nulos + Blancos11%
Votos válidos est.1,347,211
Piso de Arranque31.0%
Piso en votos417,000
Meta Victoria %31.2%
Meta en votos420,000
Gap a cerrar+0.2 ptos
Brigadistas Quito0 / 800
Parroquias activas0/65
Electores fidelizados0
Delegados JRV0 / 6,221
VS
Harold Burbano
Prefectura de Pichincha · 8 cantones
Cédula: pendiente
Padrón electoral2,421,030
Recintos · JRV464 · 7,143
Participación esperada~74%
Nulos + Blancos~11%
Votos válidos est.1,526,047
Piso de Arranque32.0%
Piso en votos489,000
Meta Victoria %~33.4%
Meta en votos510,000
Gap a cerrar+1.3 ptos
Brigadistas Pichincha0 / 960
Cantones favorables3/8
Electores fidelizados0
Delegados JRV0 / 7,143
Recorrido electoral comparativo
Quito · Giovanna
31% · PISO 417K
META 420K
2v 62.1%
0%25%50%75%100%

Modelo: 2,09MM padrón × 75% partic. × 89% válidos = 1,35MM votos válidos.
Piso: 31% × 1,35MM = 417K votos (arranque conservador).
Meta: 31.2% × 1,347MM válidos = 420K votos (presentación oficial).

Pichincha · Harold
32.0% · PISO 489K
META 510K
2v 62.1%
0%25%50%75%100%

Modelo: 2,42MM padrón × ~74% partic. × ~89% válidos = 1,53MM votos válidos (suma 8 cantones).
Piso: 32.0% × 1,526MM válidos = 489K votos (suma cantonal).
Meta: 33.4% × 1,526MM válidos = 510K votos (presentación oficial).

Análisis estratégico comparativo
Ventajas Quito (Giovanna)
  • Concentración geográfica favorable (1 cantón vs 8)
  • Bastiones consolidados en Norte (Iñaquito, Kennedy, Carcelén)
  • Piso de arranque 31% sobre votos válidos (~417K)
  • Meta de 420K es el 31.2% de votos válidos (alcanzable)
  • Efecto 2da vuelta presidencial (62.1%) genera techo potencial
  • RC suspendida por TCE: ventana de oportunidad sin precedentes
Retos Pichincha (Harold)
  • Dispersión territorial (8 cantones · 4,500 km²)
  • Cantones adversos: Cayambe (PK), Pedro Moncayo (PK/RC)
  • Solo 3 cantones favorables: Quito, Rumiñahui, Mejía
  • Logística multi-cantonal compleja
  • Pugna pública con Paola Pabón (prefecta RC) ya iniciada
  • Faltan designar 7 candidatos cantonales (CRÍTICO)
Sinergia conjunta
  • Quito concentra 82% del padrón provincial
  • Ganar Quito ≈ ganar Pichincha (efecto arrastre 8 ptos)
  • Campañas integradas con identidad común ADN
  • Comparten infraestructura territorial (parroquias)
  • Movilización Día E coordinada (mismas mesas)
  • Mensaje político alineado (eficiencia + DDHH + desarrollo)
Alertas críticas
  • Si Giovanna NO gana Quito, Harold no gana Pichincha
  • Pichincha históricamente tiene patrones diferenciados Norte/Sur
  • Cayambe puede arrastrar voto opositor: -3 ptos al promedio
  • El piso 33% es estimación, NO histórico (partido nuevo 2023)
  • Riesgo de sobreconfianza por 62% segunda vuelta presidencial

Usuarios y Permisos · Sistema de Roles

7 niveles de acceso · Row Level Security (RLS) · Permisos granulares por módulo

7
Roles definidos
Master -> JRV
42
Usuarios activos
En el sistema
21
Módulos protegidos
RLS aplicado
100%
Cobertura RLS
Todas las tablas
Definición de Roles
1. Master Comando
Estrategas + Candidatos · 4 usuarios
Acceso TOTAL. Crear/editar/eliminar todo. Ve todos los datos. Gestiona usuarios. Exporta. Audita.
Lectura totalEscritura totalAdmin usuarios
2. Cantonal
Jefes Quito + 7 cantones Pichincha · 8 usuarios
Ve y edita su cantón. Aprueba registros. Asigna responsables. No ve otros cantones.
Su cantónEditar zona
3. Zonal Quito
5 zonas Quito (N/C/S/V/NO) · 5 usuarios
Solo su zona política. Aprueba parroquiales. Ve sus KPIs zonales. Sin acceso a otras zonas.
Su zonaAprueba parroq.
4. Parroquial
65 jefes Quito + parroquias Pichincha · ~95 usuarios
Su parroquia. Asigna brigadistas. Aprueba reportes. Ve KPIs parroquiales y recintos.
Su parroquiaBrigadas
5. Brigada Parroquial
Activistas en campo · ~800 usuarios
Registra electores fidelizados. Reporta actividades con foto. Solo ve sus propios contactos.
Registra electoresSube actividades
6. Delegado de Recinto
392 recintos Quito DMQ · ~1,500 usuarios
Su recinto. Coordina delegados JRV. Reporta apertura/cierre día E. Transmite actas.
Su recintoDía E
7. Delegado de JRV
6,221 mesas Quito · ~7,200 usuarios
Solo su mesa el día E. Reporta resultado. Sube foto del acta. Defiende voto.
ActaResultado
Matriz de Permisos por Módulo
Módulo Master Cantonal Zonal Parroquial Brigada Delegado JRV
Centro de Mando
KPIs Maestros
Registrar Persona
Fidelizar Elector
Actividades
Mapas de Calor
Delegados JRV
Sesiones del Lunes
Alertas Críticas
Día E (resultado)
Usuarios & Permisos
Financiero

Acceso completo · ◐ Acceso parcial (solo su ámbito) · — Sin acceso

Carga Masiva por Excel/CSV

Importación real con plantilla descargable · Validación cruzada · Formato +593 automático

1Descargar plantilla
2Completar datos
3Subir archivo
4Validar y confirmar
5Importar brigadistas
0
Total filas
0
Aprobadas
0
Advertencias
0
Errores
1. Descargar plantilla CSV
Plantilla Brigadistas

Columnas: cedula, nombres, apellidos, telefono, provincia, parroquia · Con 3 ejemplos pre-llenados

2. Subir archivo completado
Arrastra tu archivo CSV aquí o haz clic para seleccionar
Formatos aceptados: .csv · Codificación UTF-8 · Máximo 5,000 registros
3. Validaciones automáticas
Cédula 10 dígitos
Verifica formato · duplicados en el archivo se advierten (el backend hace upsert)
Teléfono
Mínimo 9 dígitos
Provincia requerida
El backend la exige por fila
Datos faltantes
Cédula, nombres, apellidos, teléfono y provincia son obligatorios
4. Vista previa de validación
Sin archivo cargado
Sube un archivo CSV para ver la vista previa de validación.

Biblioteca de Videos Tutoriales

Capacitación visual en uso del sistema · App #SOYADN · Operativo de campaña

5:24
Cómo registrar un brigadista
Sistema Web1,247 vistas
8:12
Fidelizar electores Nivel 1-4
Activismo892 vistas
6:48
App #SOYADN: registro offline
App #SOYADN2,140 vistas
12:30
Captura IA de listas asistentes
App #SOYADN674 vistas
15:45
Operativo Día E: defensa del voto
Día E456 vistas
9:18
Lectura del mapa de calor
Sistema Web523 vistas
7:22
Cómo subir actividades con foto
Activismo1,089 vistas
11:05
Reportes y exportación a Excel
Sistema Web389 vistas

Sondeos Internos · Pulso del Territorio

Encuestas semanales capturadas por brigadistas · Pulso ciudadano · Termómetro político

4
Sondeos activos
Esta semana
847
Respuestas totales
+128 hoy
12 min
Tiempo promedio
Completar encuesta
98%
Tasa finalización
Encuestas iniciadas
Encuestas activas
Pulso semana 24 — Percepción gestión municipal
Iniciada 15-jun · 5 preguntas · Estimado 8 min
Activa

Sondeo semanal sobre principales problemas percibidos por parroquia. Insumo para narrativa de campaña.

342 respuestas
32 / 65 parroquias
89% completadas
4.6 días activa
Tendencia intención de voto — Quincenal
Iniciada 14-jun · 3 preguntas · Estimado 4 min
Activa

Tracker de intención de voto en escala simple. Aplicado a fidelizados Nivel 2-4 para detectar movimientos.

289 respuestas
34.2% ADN
26.8% RC
39.0% Indecisos
Temas prioritarios por zona
Iniciada 10-jun · 8 preguntas · Estimado 15 min
Activa

Mapeo de los 3 temas más importantes por parroquia. Inteligencia para mensaje localizado.

Top 1: Seguridad (43%)
Top 2: Transporte (28%)
Top 3: Empleo (19%)
Reconocimiento de candidatos — Mensual
Cerrada 31-may · 4 preguntas
Cerrada
1,247 respuestas
Giovanna: 58%
Harold: 49%
Margen RC: +4 pts

Gestión de Usuarios · CRUD Completo

Crear · Editar · Bloquear · Resetear contraseñas · Auditoría · Importación masiva

Crear nuevo Master Comando
Los Master tienen acceso TOTAL al sistema · Solo otro Master puede crearlos · Auditoría completa
Crear Jefe Político de Campaña
Presidente Provincial ADN Pichincha · Da las líneas y órdenes políticas · Refuerza donde se necesite mientras candidatos están en campaña · 2FA automático
Crear Jefe Cantonal
Coordinadores cantonales de Quito y los 7 cantones de Pichincha · Selecciona el cantón:
Estructura institucional actual
0
Usuarios totales
En el sistema
0
Activos
Pueden ingresar
0
Pendientes 1er acceso
No han cambiado pass
0
Bloqueados
5+ intentos fallidos
Usuario Cédula Rol Ámbito Teléfono Estado Último acceso Acciones

Los usuarios pueden gestionarse aquí o importarse en lote desde "Carga Masiva Excel". Las contraseñas se generan automáticamente con el modelo híbrido (4 dígitos cédula + 4 dígitos teléfono).

Administración del Sistema

Gestión real de usuarios conectada al backend · Invitaciones · Permisos · Auditoría

Invitar nuevo usuario al comando
Envía una invitación por correo a roles de Mando y Estrategia. El usuario elige su propio username y contraseña.
Username Nombre Email Rol Territorio Estado Último acceso
Cargando usuarios...

Auditoría de Accesos · Seguridad

Registro completo de logins · Intentos fallidos · Sesiones activas · Análisis de seguridad

0
Accesos exitosos hoy
0
Intentos fallidos hoy
1
Sesiones activas ahora
0
Verificaciones 2FA hoy
Log de accesos recientes
Alertas de seguridad
Sin anomalías detectadas
No hay patrones sospechosos en las últimas 24 horas
Política de contraseñas activa
Mínimo 8 caracteres, mayúscula, minúscula, número
2FA activo para Master/Cantonal
Verificación en 2 pasos por SMS
Sesiones expiran en 30 min
Cierre automático por inactividad

Mapa Unificado · Inteligencia Geográfica

15 capas · 6 filtros · 115 polígonos (Pichincha + Guayas)

Scope activo: Pichincha
15 CAPAS · 10 poligonos + 5 heatmaps:
HEATMAPS:
Capa activa: Cobertura territorial · Verde-Rojo · Donde tenemos gente desplegada

Candidatos ADN · Pichincha 2026

2 designados · 6 por designar · Última decisión: comité del lunes

2 / 8
Designados
25% completado
6
Por designar
Cantones pendientes
~25 sem
Hasta el día E
29-nov-2026
95 dias
Inscripción CNE
Aprox. 26-ago
Estado de candidaturas por cantón

Reportes Comparativos · Emisión Semanal Automática

Gráficos evolutivos · Comparativo vs 2023 · Semáforo semanal

R1 · Reporte semanal territorial
Brigadistas activos vs semana anterior · puertas acumuladas · electores nuevos · semáforo por zona
Próxima emisión: lunes 8:00 a.m.
R2 · Cobertura JRV
Recintos cubiertos vs total · delegados vs meta · capacitación M3 · simulacros OK · alertas
Próxima emisión: lunes 8:00 a.m.
R3 · Fidelización
Electores por nivel · tasa conversión por brigadista · recinto con mayor potencial · proyección a meta 50K
Próxima emisión: lunes 8:00 a.m.
R4 · Reporte comparativo
Semana actual vs anterior · vs mismo período 2023 · proyección de cierre · ranking parroquias
Próxima emisión: lunes 8:00 a.m.
R5 · Digital y campo
Actos realizados vs programados · alcance estimado · contenido generado · piezas por zona
Próxima emisión: lunes 8:00 a.m.
R6 · Alertas críticas
Zonas en rojo · delegados sin cobertura · brigadistas inactivos · inconsistencias · acciones correctivas
Estado: tiempo real
Generar reportes

Modelo Predictivo Electoral

Proyección de resultados Día E · Quito Alcaldía + Pichincha Prefectura · Datos actualizados cada 6 horas

Probabilidad ganar Quito
68%
+ 4pp última semana
Probabilidad ganar Pichincha
74%
+ 7pp última semana
Margen proyectado Quito
+8.2pp
Sobre 2º lugar RC
Margen proyectado Pichincha
+12.4pp
Sobre 2º lugar RC

Confianza del modelo · ¿Qué tan certera es la proyección?

Variables consideradas
Histórico electoral 2019 + 2023 (8 elecciones consultadas)
Fidelización en curso (18.4K contactos validados)
Encuestas internas (3 últimas oleadas)
Engagement Meta (Giovanna + Harold + ADN)
Adversario RC (suspensión TCE + fractura Correa-Muñoz)
Coyuntura económica + seguridad ciudadana
Padrón electoral CNE actualizado (2,4MM registros)
Margen de error estadístico
Quito Alcaldía± 3.4pp
Pichincha Prefectura± 2.8pp
Confianza estadística95%
Tamaño efectivo muestran=2,847
Modelo recalibradoHace 4h

Evolución de la probabilidad de victoria · últimas 8 semanas

SemanaProb. QuitoProb. PichinchaEventos clave
Sem 1 · 7 abr52%58%Lanzamiento campaña ADN
Sem 2 · 14 abr54%61%Anuncio candidatura Giovanna
Sem 3 · 21 abr57%63%RC: TCE suspende formalmente
Sem 4 · 28 abr61%67%Pabón fuera de prefectura
Sem 5 · 5 may63%69%Reel Giovanna · 187K views
Sem 6 · 12 may64%71%Fractura interna Correa-Muñoz
Sem 7 · 19 may66%72%Bienvenida brigadistas: 234 alta
Sem 8 · 26 may68%74%Movilización viral Quitumbe
Síntesis del modelo · Claude Opus 4.7
El modelo proyecta victoria probable en ambas candidaturas, con Pichincha en posición más sólida que Quito por la concentración del voto duro RC en cantones marginales (Cayambe + Pedro Moncayo = 5% del padrón). El riesgo principal está en Quito-sur: Guamaní · Chillogallo · Quitumbe acumulan 487K electores swing y la presencia ADN ahí es 31-43% de la meta. Si la fidelización en estas 3 parroquias sube al 65% antes del 30 de julio, la probabilidad de Quito sube a 78%. Si baja al 25%, cae a 51% (umbral de pérdida posible).

Tech Stack · Códigos y Comandos

Snippets reales para los devs · listos para copiar-pegar-ejecutar · cubre infraestructura, BD, API, IA, WhatsApp

Cómo usar este módulo
Estos códigos son el punto de partida real para los 2 programadores. Cada bloque es ejecutable. Variables sensibles marcadas como SECRET_* · sustituir antes de correr.

AWS · Provisión inicial (Terraform)

Archivo: infra/aws/main.tf · Ejecutar: terraform init && terraform apply

terraform {
  required_providers {
    aws = { source = "hashicorp/aws", version = "~> 5.0" }
  }
}

provider "aws" {
  region = "us-east-1"
}

# VPC
resource "aws_vpc" "warroom" {
  cidr_block           = "10.0.0.0/16"
  enable_dns_hostnames = true
  tags = { Name = "warroom-adn-vpc" }
}

# Subnets públicas (2 AZs para alta disponibilidad)
resource "aws_subnet" "public_a" {
  vpc_id                  = aws_vpc.warroom.id
  cidr_block              = "10.0.1.0/24"
  availability_zone       = "us-east-1a"
  map_public_ip_on_launch = true
}

resource "aws_subnet" "public_b" {
  vpc_id                  = aws_vpc.warroom.id
  cidr_block              = "10.0.2.0/24"
  availability_zone       = "us-east-1b"
  map_public_ip_on_launch = true
}

# EC2 principal · API server
resource "aws_instance" "api_server" {
  ami           = "ami-0c7217cdde317cfec"  # Ubuntu 22.04 LTS
  instance_type = "t3.large"               # 2 vCPU · 8 GB RAM
  subnet_id     = aws_subnet.public_a.id
  
  key_name = "warroom-prod"
  vpc_security_group_ids = [aws_security_group.api.id]
  
  user_data = file("scripts/bootstrap-api.sh")
  
  tags = { Name = "warroom-api-prod", Role = "api" }
}

# RDS PostgreSQL 16
resource "aws_db_instance" "main" {
  identifier        = "warroom-pg-prod"
  engine            = "postgres"
  engine_version    = "16.2"
  instance_class    = "db.m5.large"
  allocated_storage = 100
  storage_type      = "gp3"
  
  db_name  = "warroom"
  username = "adn_admin"
  password = var.db_password  # via TF_VAR_db_password env var
  
  backup_retention_period = 7
  backup_window           = "03:00-04:00"
  multi_az                = false  # true en FULL phase
  
  vpc_security_group_ids = [aws_security_group.db.id]
  db_subnet_group_name   = aws_db_subnet_group.main.name
  
  deletion_protection = true
  skip_final_snapshot = false
  
  tags = { Name = "warroom-pg-prod" }
}

Azure · App Service + SQL réplica (Bicep)

Archivo: infra/azure/main.bicep · Ejecutar: az deployment group create --resource-group warroom-rg --template-file main.bicep

param location string = 'eastus'
param appName string = 'warroom-adn'

// App Service Plan
resource appPlan 'Microsoft.Web/serverfarms@2023-01-01' = {
  name: '${appName}-plan'
  location: location
  sku: {
    name: 'S1'           // Standard 1 core · 1.75 GB RAM
    tier: 'Standard'
  }
  kind: 'linux'
  properties: { reserved: true }
}

// App Service (API móvil + failover)
resource webApp 'Microsoft.Web/sites@2023-01-01' = {
  name: '${appName}-mobile-api'
  location: location
  properties: {
    serverFarmId: appPlan.id
    siteConfig: {
      linuxFxVersion: 'NODE|20-lts'
      appSettings: [
        { name: 'NODE_ENV', value: 'production' }
        { name: 'DB_HOST', value: 'warroom-sql-replica.database.windows.net' }
      ]
    }
    httpsOnly: true
  }
}

// SQL Database réplica
resource sqlServer 'Microsoft.Sql/servers@2023-05-01-preview' = {
  name: '${appName}-sql-srv'
  location: location
  properties: {
    administratorLogin: 'adn_admin'
    administratorLoginPassword: sqlPassword  // via Key Vault
    version: '12.0'
  }
}

resource sqlDB 'Microsoft.Sql/servers/databases@2023-05-01-preview' = {
  parent: sqlServer
  name: 'warroom-replica'
  location: location
  sku: {
    name: 'S2'     // 50 DTU
    tier: 'Standard'
  }
}

Bootstrap del servidor API (bash)

Archivo: scripts/bootstrap-api.sh · Ejecutado por user_data en EC2

#!/bin/bash
set -euo pipefail

# Actualizar sistema
apt-get update && apt-get upgrade -y

# Instalar Node.js 20 LTS
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt-get install -y nodejs

# Instalar PM2 (process manager)
npm install -g pm2

# Instalar nginx
apt-get install -y nginx certbot python3-certbot-nginx

# Clonar repo (usa deploy key)
mkdir -p /opt/warroom
cd /opt/warroom
git clone git@github.com:adn-ec/warroom-backend.git .

# Instalar deps
npm ci --production

# Variables de entorno (las inyecta GitHub Actions en deploy)
cp .env.example .env
# IMPORTANTE: editar /opt/warroom/.env antes del primer start

# Iniciar con PM2
pm2 start ecosystem.config.js
pm2 save
pm2 startup systemd -u ubuntu --hp /home/ubuntu

# Configurar nginx
cat > /etc/nginx/sites-available/warroom <<'NGINX_CONF'
server {
    listen 80;
    server_name api.warroom-adn.ec;
    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}
NGINX_CONF
ln -s /etc/nginx/sites-available/warroom /etc/nginx/sites-enabled/
nginx -t && systemctl restart nginx

# SSL con Let's Encrypt
certbot --nginx -d api.warroom-adn.ec --non-interactive --agree-tos -m alberto@adn-ec.com
Reunión Comité Estratégico · Sesión en vivo
— Sin sesión activa —
00:00:00