Aucune description

David e560f47a95 style il y a 10 ans
css e560f47a95 style il y a 10 ans
cursos-ng @ 96290218a0 478c7dbda1 Initial commit il y a 10 ans
eba_os @ 61519fc09c 478c7dbda1 Initial commit il y a 10 ans
imagenes 1b62809c48 agrego 1 imagen il y a 10 ans
imagenes_xml 417dcc5bd3 agrego src de imagen il y a 10 ans
sdl-py @ ee913401e1 478c7dbda1 Initial commit il y a 10 ans
.gitignore 79bfa7e110 mas doc il y a 10 ans
.gitmodules 478c7dbda1 Initial commit il y a 10 ans
Makefile 79bfa7e110 mas doc il y a 10 ans
README.md e560f47a95 style il y a 10 ans
autobuilder.sh 79bfa7e110 mas doc il y a 10 ans

README.md

Overview

Infraestructura

Sistemas actuales:

cursos-ng:

Plataforma web. Backend: PHP + Mongo corriendo en VPS

Frontend: HTML+AngularJS (v1), tambien en VPS

Curso en vivo

Video

Stream RTMP -> Flash desde el servidor (VPS). El servidor (VPS) tambien ofrece HLS para HTML5 / mobile, usa ffmpeg para convertir RTMP -> HLS

Chat / Diapositivas:

Websocket conectado a VPS; este servidor de websocket esta conectado al emisor de video, se usa para control de diapositivas.

eba_os

Camara

Script "cam_rpi.sh", ejecutado sin parametros inicializa la camara y el microfono, hace stream por RTMP al servidor (LAN). El servidor (LAN) procesa el stream, grabando tanto la copia 'cruda' y 'procesada' a disco. Despues la envia al servidor (VPS)

Conversion de diapositivas

Script 'eba_os/compress.sh' convierte PDF -> PNG y los sube al servidor (VPS), tambien lo copia para el presentador.

Presentador de diapositivas

Toma imagenes PNG 800x600 de ~/images y las muestra en pantalla. Esta conectado por websocket al servidor web (VPS) para la sincronizacion de diapositivas en vivo.

Servers

VPS-01

IP: especificosba.com.ar (104.131.31.219)
Tipo: VPS (DigitalOcean)
Login: ssh con pk / consola Digital Ocean
OS: Debian Jessie
Notas: Va a tener floating IP para hacer failover a otro server en caso de que caiga
Procesos:

  • nginx
    • nginx-rtmp (recibe procesado y hace broadcast; convierte a HLS)
  • PHP
    • websocket de control
  • Mongo (plataforma)
  • Mysql (curso 2014-2015, mailing)
  • Mumble (Conferencias Ecuador/Peru)

Server-01

IP:

  • casa.especificosba.com.ar
  • Wan: DynDNS, especificosba.us.to
  • Lan: 192.168.1.123

Tipo: Fisico
Login: ssh (root) con pubkey
OS: Debian Jessie

Procesos:

  • nginx
    • reverse-proxy a RPI
    • web (facturacion)
    • nginx-rtmp (graba curso en vivo, reencode, forward a VPS)
  • motion (camaras)
  • PHP
    • web (facturacion)
  • Mysql
    • web (facturacion)
  • NFS (boot RPi)
  • SMB
  • CUPS

Raspberry Pi

IP: 192.168.1.208
Tipo: Fisico / Pi
Login: curso / curso
OS: Debian Jessie
Procesos:

  • PHP (websocket control)
  • sdl-py (Display diapositivas)
  • dispmanx_vnc (control de pantalla)

Notas: boot por PXE

$ cat /boot/firmware/cmdline.txt
dwc_otg.lpm_enable=0 quiet console=tty2 root=/dev/nfs rootfstype=nfsroot
nfsroot=192.168.1.123:/home/rpi,udp,vers=3 rw
ip=192.168.1.208:192.168.1.123:192.168.1.1:255.255.255.0:rpi:eth0:off
net.ifnames=1 kgdboc=ttyAMA0,115200 elevator=noop rootfstype=ext4
loglevel=3 logo.nologo fastboot noswap systemd.unit=multi-user.target rootwait

Planes

  • Agregar otra VPS por si vuelve a morir algun nodo de ruteo (Como paso con Level 3); esto implica:
    • Floating IP para las VPS.
    • Load balancer?
    • Ambas VPS deben poder loguear usuarios, ver curso en vivo (video, chat, diapos). No es necesario activar escritura en mongo para la(s) replica(s).
  • Cambiar RPI+ camara a x86 + OBS (que camara? usb?)
  • RAID para el server (Especificos) ? Backup? Que pasa si muere? (Ahora tiene rootfs del RPi, es proxy para los videos.) Sin servidor no hay transmision