# Overview

# 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.
Se "controla" por la web (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: ?
pwd: ?
Wifi: ESPECIFICOS-Profesores, ESPECIFICOS-Invitados
Clave Wifi: 12345678?, 12345678
## LoadBalancer-01
IP: 192.168.3.1:8080
Usuario: admin?
Clave: admin?
*Notas*: Default a Fibertel, fallback a Telecentro; **ESPECIFICAR PUERTOS RJ45 C/U**
# 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** (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
```bash
$ 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**