Skip to content

NextSteps-Labs/PrivaStream

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PrivaStream

Servidor de Entretenimiento Local y Descentralizado: Un Proyecto de Software Libre y Autero bajo principios de Soberania Digital.


1. Introduccion

PrivaStream es una plataforma diseñada para permitir la transmision multimedia y mensajeria segura P2P sin depender de infraestructuras centralizadas en la nube.

Note

Para obtener detalles exhaustivos sobre la arquitectura, la especificacion completa de la API REST y los estandares de programacion, consulte la Documentacion Maestra.


2. Guia Rapida: Como Ejecutar y Usar PrivaStream

Este proyecto esta construido bajo una arquitectura Zero-Trust y esta optimizado para desplegarse sobre entornos Linux (Debian/Ubuntu).

Fase 2.1: Inicializar la Infraestructura del Servidor

La configuracion de Nginx, politicas de Firewall y dependencias iniciales del sistema se encuentran automatizadas en nuestros scripts de despliegue.

  1. Ingrese a la consola de su servidor local o maquina virtual.
  2. Navegue al directorio de scripts y otorgue permisos de ejecucion:
    cd scripts/
    chmod +x install.sh
  3. Ejecute el script instalador con privilegios de administrador:
    sudo ./install.sh

Important

El script install.sh cerrara los puertos de red no esenciales mediante el Firewall (UFW) y dejara activo exclusivamente el proxy Nginx en el puerto local 8080 para canalizar el trafico entrante de forma segura.

Fase 2.2: Configuracion del Tunel Seguro (Cloudflare Tunnel)

Para exponer su servidor local de streaming de forma segura a internet sin realizar Port Forwarding en su enrutador, siga estos pasos:

  1. Autentique el daemon de Cloudflare con su cuenta:
    sudo cloudflared tunnel login
  2. Cree un tunel exclusivo para el proyecto:
    sudo cloudflared tunnel create privastream
  3. Vincule el tunel a su zona DNS:
    sudo cloudflared tunnel route dns privastream midominio.com
  4. Inicie la ejecucion del tunel direccionando el trafico al puerto local de Nginx (8080):
    cloudflared tunnel run --url http://127.0.0.1:8080 privastream

Tip

Si desea que el tunel se inicie como un servicio persistente del sistema al encender el servidor, instale el servicio del daemon ejecutando sudo cloudflared service install.

Fase 2.3: Ejecucion de Servicios (Backend / Frontend)

El trafico entrante en el puerto 8080 es ruteado automaticamente por Nginx.

  • Backend (API): Nginx redirecciona las peticiones de /api hacia el puerto local 3000 (http://127.0.0.1:3000). Asegurese de iniciar su servidor Node.js en este puerto.
  • Archivos Multimedia: Se despachan directamente desde /var/www/privastream/media/ por el proxy web para optimizar el rendimiento.

Antes de arrancar en modo desarrollo, instale las dependencias locales en los directorios correspondientes:

# Para el backend
cd backend/
npm install
npm run dev

# Para el frontend
cd ../frontend/
npm install
npm run dev

3. Configuracion Tecnica y Entorno

Archivo de Entorno (.env)

Establezca las variables requeridas copiando el archivo de ejemplo:

cp backend/.env.example backend/.env
Variable Descripcion Valor por Defecto
SERVER_PORT Puerto de escucha interna de la API. 3000
MEDIA_UPLOAD_PATH Ruta absoluta en disco para los archivos multimedia. /var/www/privastream/media
ALLOWED_HOSTS Dominios o IPs autorizados para procesar peticiones. localhost,127.0.0.1

Pruebas de Integracion y Calidad

Ejecute la suite de pruebas unitarias locales para verificar el estado del codigo:

  • Unitarias de Backend:
    python -m unittest discover -s tests -p "backend_test.py"
  • Unitarias de Frontend:
    cd frontend/
    npm test

4. Resolucion de Problemas Comunes (Troubleshooting)

Sintoma detectado Causa mas probable Accion correctiva recomendada
Error 502 Bad Gateway El servidor de Node.js no esta en ejecucion o esta escuchando en un puerto diferente al 3000. Verifique que el servicio backend este arriba y que la variable SERVER_PORT este configurada correctamente en el archivo .env.
Permission Denied en Cargas El proceso de Node.js no posee privilegios de escritura sobre el directorio de medios /var/www/privastream/media. Asigne el grupo www-data al directorio de cargas y asegurese de que el usuario de ejecucion pertenezca al grupo.
Fallo de Reproduccion / Seeking La ruta de almacenamiento de archivos local no esta sincronizada con el alias del proxy Nginx. Valide que MEDIA_UPLOAD_PATH en el backend coincida exactamente con la directiva root en nginx/conf.d/privastream.conf.
El Tunel no Conecta El token del tunel ha expirado o el Firewall (UFW) bloquea las peticiones de red salientes hacia Cloudflare. Revise el estado del tunel ejecutando cloudflared tunnel status e inspeccione las reglas del firewall local.

About

No description, website, or topics provided.

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors