Bez popisu

David 74ae96796b transmision před 10 roky
configs 7114714633 configs VPS před 10 roky
css 4370888745 style před 10 roky
cursos-ng @ 96290218a0 478c7dbda1 Initial commit před 10 roky
eba-ng @ 6c3d7507f7 e81ec35a6f docs+make před 10 roky
eba_os @ 61519fc09c 478c7dbda1 Initial commit před 10 roky
imagenes 74ae96796b transmision před 10 roky
imagenes_xml e81ec35a6f docs+make před 10 roky
sdl-py @ ee913401e1 478c7dbda1 Initial commit před 10 roky
.gitignore e81ec35a6f docs+make před 10 roky
.gitmodules e81ec35a6f docs+make před 10 roky
Makefile 74ae96796b transmision před 10 roky
README.md f7a9b9c662 imagenes před 10 roky
SOFTWARE.md 4370888745 style před 10 roky
TRANSMISION.md 74ae96796b transmision před 10 roky
autobuilder.sh e81ec35a6f docs+make před 10 roky

README.md

Overview

\pagebreak

Sistemas actuales:

cursos-ng:

Plataforma web. Backend: PHP + Mongo corriendo en VPS-01

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

Curso en vivo

Video

Stream RTMP -> Flash desde VPS-01. VPS-01 tambien ofrece HLS para HTML5 / mobile, usa ffmpeg para convertir RTMP -> HLS

Chat / Diapositivas:

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

eba_os

Camara

Script eba_os/cam_rpi.sh (ejecutado sin parametros) inicializa la camara y el microfono, hace stream por RTMP a Server-01. Server-01 procesa el stream, grabando tanto la copia 'cruda' y 'procesada' a disco (/home/nginx/{raw,processed}/) y transmite la copia procesada a VPS-01.

Conversion de diapositivas

Script eba_os/compress.sh convierte PDF -> PNG y los sube a VPS-01, tambien lo copia para el presentador.

Presentador de diapositivas

Toma imagenes PNG 800x600 de ~/slides y las muestra en pantalla. Esta conectado por websocket a VPS-01 para la sincronizacion de diapositivas en vivo. Se "controla" por la web https://casa.especificosba.com.ar/canvas.php (Proximamente CANVAS en la plataforma)

Dispositivos

Router-01

IP: 192.168.1.1
Usuario: root
pwd: howdoi
Wifi: ESPECIFICOS
Clave Wifi: ESPECIFICOSBA

Router-02

IP: 192.168.1.11
Usuario: admin
pwd: admin
Wifi: ESPECIFICOS-Profesores, ESPECIFICOS-Curso
Clave Wifi: salander, 12345678

LoadBalancer-01

IP: 192.168.3.1:8080
Usuario: admin
Clave: admin
Notas: Default a WAN1 (Fibertel), fallback a WAN2 (Telecentro)

Servers

VPS-01

IP: especificosba.com.ar (104.131.31.219)
Specs: 2 Core, 2 GB Ram (Version U$D20 DigitalOcean)
Tipo: VPS-01 (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)
  • Email (iRedMail)

Server-01

IP: casa.especificosba.com.ar (DynDNS: especificosba.us.to, Lan: 192.168.1.123)
Specs: FX6300 (6 Core), 2GB Ram
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-01)
  • motion (camaras)
  • PHP
    • web (facturacion)
  • Mysql
    • web (facturacion)
  • NFS
    • Boot Raspberry Pi
  • SMB
    • Home
    • Compartido
  • CUPS
    • Impresora1 ( HP LaserJet 1020 )
    • Impresora2 ( Brother DCP-L2540DW, con scanner )

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

Agenda diaria

  • mtr especificosba.com.ar para probar nodos
  • speedtest-cli para probar velocidad
  • ssh root@especificosba.com.ar df -h
  • ssh root@192.168.1.123 df -h
  • Pilas en presentador (2x AAA)
  • Pilas en microfonos (2x AA cu)

Planes

  • Agregar otra VPS (en otra ubicacion) por si vuelve a morir algun nodo de ruteo (Como paso con Level 3); esto implica:
    • Load balancer? DBs compartidas o Repilicadas?
    • Ambas VPS-01 deben poder loguear usuarios, ver curso en vivo (video, chat, diapos). No es necesario activar escritura en mongo para la(s) replica(s).
  • 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
  • Cambiar RPI+ camara a x86 + OBS (que camara? usb?)