# Overview ![Infraestructura](imagenes/infraestructura.png) \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 ![](imagenes/video.png "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 `~/snowmix/camera1/cam.py` inicializa la camara y hace streaming por UDP a los clientes suscriptos. Por default es solo 192.168.2.120 (nginx-rtmp). Se pueden suscribir con `echo cliente=IP:PUERTO`. Script `~/snowmix/camera1/mic-to-udp.sh` inicializa el microfono y hace streaming por UDP a 192.168.2.120 (nginx-rtmp). nginx-rtmp procesa el stream (snowmix), grabando tanto la copia 'procesada' a disco (`/home/nginx/processed/`) y transmite a VPS-01.
### Conversion de diapositivas Plataforma => Subir PDF
## 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. Control: Plataforma => Canvas # Dispositivos ## PFSense IP: 192.168.2.1 Usuario: pfsense pwd: pfsense *Notas: Default a WAN2 (Fibertel), fallback a WAN (Telecentro)* ## AP-01 IP: 192.168.2.2 Usuario: root pwd: howdoiturnthison Wifi: ESPECIFICOS Clave Wifi: 1q2w3e4R ## AP-02 IP: 192.168.2.11 Usuario: admin pwd: admin Wifi: ESPECIFICOS-Profesores Clave Wifi: salander # 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 (web, standard) * 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.2.123) Specs: FX6300 (6 Core), 2GB Ram Tipo: Fisico Login: ssh (root) con pubkey OS: Debian Jessie Procesos: * proxmox * nginx * web (facturacion) * 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 ) ## nginx-rtmp IP: 192.168.2.120 Tipo: lxc Login: users root/nginx, pkey OS: Debian Jessie Procesos: * snowmix ( proceso de varios stream multimedia, reencode, forward a nginx ) * nginx-rtmp (graba curso en vivo, forward a VPS-01) * especificos-videos (post-processing de videos del curso) ## nginx-rproxy IP: 192.168.2.154 Tipo: lxc Login: root / pkey Procesos: * reverse-proxy a * RPI (wscasa) * guacamole (remote.especificosba.com.ar) * facturacion (casa.especificosba.com.ar) * editor de video (video.especificosba.com.ar) .. etc ## Raspberry Pi IP: 192.168.2.208 Tipo: Fisico / Pi Login: curso / curso OS: Debian Jessie Procesos: * wsserver (control de.. todo) * 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). * Que pasa si muere el server? **Sin servidor no hay vida (internet, cursos, lan)**