Saltar al contenido principal

Instalación

Instalación con npm

npm install @coderic/relay

Uso Rápido

Como servidor standalone

# Con npx (recomendado para pruebas)
npx @coderic/relay

# O con variables de entorno
PORT=5000 REDIS_URL=redis://localhost:6379 npx @coderic/relay

Como librería en tu proyecto

import { createRelay } from '@coderic/relay';

const gateway = createRelay({
port: 5000,
redis: { url: 'redis://localhost:6379' },
kafka: { brokers: ['localhost:9092'] }
});

await gateway.start();

Docker

Imagen oficial

docker pull coderic/relay

Dockerfile de ejemplo

FROM coderic/relay:latest
ENV PORT=5000
ENV REDIS_URL=redis://redis:6379
ENV KAFKA_BROKERS=kafka:9092
EXPOSE 5000
CMD ["node", "src/server.js"]

Docker Compose

version: '3.8'
services:
relay:
image: coderic/relay:latest
ports:
- "5000:5000"
environment:
- PORT=5000
- REDIS_URL=redis://redis:6379
- KAFKA_BROKERS=kafka:9092
# Opcional: Desactivar plugin WebRTC
# - WEBRTC_ENABLED=false
# Opcional: Configurar servidores STUN
# - STUN_SERVERS=stun:stun.l.google.com:19302,stun:stun1.l.google.com:19302
# Opcional: Configurar servidor TURN
# - TURN_URL=turn:turn.tudominio.com:3478
# - TURN_USERNAME=usuario
# - TURN_CREDENTIAL=password
depends_on:
- redis
- kafka

Configuración

Variables de entorno

VariableDescripciónDefault
PORTPuerto del servidor5000
REDIS_URLURL de Redis-
WEBRTC_ENABLEDHabilitar plugin WebRTCtrue
STUN_SERVERSServidores STUN (separados por comas o JSON array)Servidores de Google por defecto
TURN_URLURL del servidor TURN (opcional)-
TURN_USERNAMEUsuario para TURN (opcional)-
TURN_CREDENTIALCredencial para TURN (opcional)-
KAFKA_BROKERSBrokers Kafka (comma-separated)-
INSTANCE_IDID de instanciaprocess.pid
MONGODB_URLURL de MongoDB (opcional)-

Opciones del constructor

const gateway = createRelay({
port: 5000,
instanceId: 'gateway-1',
namespace: '/relay',
cors: {
origin: '*',
methods: ['GET', 'POST']
},
metrics: true,
redis: {
url: 'redis://localhost:6379',
options: { /* ioredis options */ }
},
kafka: {
brokers: ['localhost:9092'],
topic: 'relay-events',
options: { /* kafkajs options */ }
},
httpHandler: (req, res) => { /* custom handler */ }
});

Verificación

Una vez iniciado, verifica que el servidor está funcionando:

# Health check
curl http://localhost:5000/health

# Métricas Prometheus
curl http://localhost:5000/metrics

Próximos Pasos

  • API - Aprende a usar la API de Relay
  • Ejemplos - Ve ejemplos funcionales