# 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 (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
```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
```
# 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?)