Ctrl K
ComunidadGuías…
GITHUB · ANALIZADO

emberline

Emberline es un servicio de chat anónimo, efímero y cifrado de extremo a extremo sin cuentas ni almacenamiento persistente. Opera bajo jurisdicción suiza y utiliza una arquitectura minimalista basada en Node.js para conectar usuarios mediante palabras clave compartidas.

Ficha actualizada 24 sept 2026, 18:09 · upstream 24 sept 2026, 18:04 · release sin release detectada

Ver códigoProblemas y ayudaRepositorio ↗Sitio oficial
00

Qué es emberline

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

Emberline se posiciona como una herramienta de comunicación privada radical, alineada con el Artículo 13 de la Constitución Suiza sobre privacidad. A diferencia de las aplicaciones convencionales que requieren registro y almacenan datos, Emberline conecta dos extraños basándose en palabras clave compartidas. La sesión termina automáticamente tras el intercambio, sin dejar rastro en servidores ni bases de datos. Todo el tráfico se cifra usando NaCl box (Curve25519 + XSalsa20 + Poly1305), y el servidor solo retransmite los paquetes cifrados y no-ces, actuando como un relay ciego que no puede descifrar lo que pasa por él.

La implementación técnica es deliberadamente simple: un proceso de Node.js maneja conexiones WebSocket y una superficie HTTP mínima para desafíos y estadísticas. No utiliza frameworks complejos ni bases de datos; el estado se mantiene en memoria (Maps) y solo se escriben logs de abuso para prevención. El cliente es un único archivo HTML con JavaScript nativo, lo que reduce la huella de ataque y la complejidad del despliegue.

El modelo de confianza es explícito: aunque el código es abierto y hay verificación de hashes de commits, el operador tiene capacidad teórica de MITM en el intercambio de claves. El diseño prioriza la privacidad frente a terceros sobre la seguridad criptográfica absoluta contra un administrador comprometido. La infraestructura oficial usa una topología con VPS suizo y Raspberry Pi, pero cualquier host Linux es suficiente para auto-alojarlo.

CASOS DE USO
  • Comunicación anónima temporal entre desconocidos sin registro ni huella digital persistente
  • Herramienta de prueba para evaluar la privacidad en entornos con jurisdicción suiza o alta protección legal
  • Servicio de chat efímero para grupos pequeños que desean evitar el almacenamiento de metadatos en bases de datos centralizadas
  • Implementación local (self-hosting) en servidores domésticos o Raspberry Pi para usuarios que requieren control total sobre la infraestructura y no confían en terceros
PUNTOS DESTACADOS
  • Cifrado extremo a extremo robusto con NaCl box (Curve25519 + XSalsa20 + Poly1305) implementado en el cliente
  • Arquitectura sin base de datos ni almacenamiento persistente, eliminando vectores de fuga de contenido por filtraciones
  • Jurisdicción suiza y cumplimiento del Artículo 13 de la Constitución para protección legal reforzada
  • Despliegue minimalista con Node.js nativo, sin dependencias complejas ni pasos de compilación
  • Transparencia total en el código fuente bajo licencia AGPL-3.0, permitiendo auditoría pública y forking
PRECAUCIONES
  • Riesgo de MITM en el intercambio de claves debido a la mediación del servidor para conectar usuarios
  • Confianza inherente en el operador o administrador del servidor, ya que no hay verificación criptográfica del código ejecutado
  • Vulnerabilidad estructural al entregar JavaScript desde el servidor, permitiendo exfiltración si el servidor es comprometido
  • Metadatos de red (timing y tamaño de paquetes) son visibles para adversarios globales en los puntos de entrada/salida
  • Dependencia de logs de IP para defensa contra abuso, lo que introduce una excepción al principio de 'no logs' para mitigación de ataques DDoS o spam
01

Perfil de infraestructura

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

CPU1 vCPUrecomendación inicial
MEMORIA1 GBRAM estimada
DISCO10 GBalmacenamiento base
COMPLEJIDADlownivel de operación
02

Despliegue detectado

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

Despliegue manual

Requiere Node.js 18+, un proxy inverso HTTPS (Caddy/nginx) y dominio propio. Ejecutar `npm install` y `node setup-assets.js` antes de arrancar el servidor en puerto 3000. Configurar `ALLOWED_WS_ORIGINS` y `TRUST_PROXY` según la infraestructura. El directorio de logs (`LOG_DIR`) no debe estar dentro del contenido público. Para producción, se recomienda TLS termination externo, rotación de logs y integración con Fail2Ban para los logs de IP, aunque el servidor no almacena conversaciones ni palabras clave.

—Dockerfile
—Compose
—One-click
03

Stack y dependencias

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

FRAMEWORKS
Node.js
SERVICIOS
No detectados
BASES DE DATOS
No detectadas
PUERTOS
No detectados
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.