Servidor TVH+OSCam en Docker (1/3)

Guía para instalar TVH+OSCam+NormandyEPG en Raspberry Pi mediante Docker.

EN CONSTRUCCIÓN!!! Actualizada a 6 de Enero de 2020

En esta guía de 3 partes, vamos a ilustrar como instalar y montar nuestro servidor TVH, junto con OSCam y NormandyEPG en nuestra Raspberry Pi, mediante el uso de Docker y sus contenedores.

Requisitos a tener en cuenta:

  • Tener una Raspberry Pi (obvio), en nuestro se caso se trata de una Pi 4 de 4 GB de ram y una SD de 64 GB.
  • Telestar Digibit R1, la guía va orientada hacia este receptor/repidor de señal con el firmware modificado satip-axe, que nos permitirá usar los 4 sintonizadores a la vez y poder ver a la vez múltiples muxes. Aunque en teoría sus clones, el Inverto IDL-400s y el Grundig GSS.BOX deben funcionar igual, así como otros sintonizadores usb, sin embargo al no poseer ninguno, no podemos comprobar su funcionamiento.

Notas extra:
-Se recomienda asignar manualmente una ip fija tanto a la Raspberry como al Digibit, para poder memorizar con facilidad los accesos de la primera y que podamos ver los sintonizadores sin problema de la segunda en TVHeadend.

¿Qué es y por qué usar Docker y no una instalación normal?

Docker viene a ser un software de virtualización, que permite tener aplicaciones y sus dependencias en contenedores y que estos puedan ser usados en cualquier máquina que ejecute Docker sin importar el S.O.

Con lo cual, lo que hagamos hoy en la Raspberry, podemos exportarlo mañana a otro hardware sin apenas dificultad.

Empezando a instalar Docker

Vamos a suponer que ya tienes instalado Raspbian (u otra distro), después de todo es bajar la imagen, quemarla con un soft como balenaEtcher, meter la sd en la Raspberry y configurar en sencillos pasos. Ojo, activar SSH en el apartado Configuración de Raspberry Pi.

El primer paso es instalar Docker y Portainer, que será con el que manejemos las diferentes opciones de Docker de una manera fácil, así pues, nos vamos a ir a la terminal y vamos a instalar Docker+Portainer:

sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common
sudo curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg | sudo apt-key add -

sudo echo "deb [arch=armhf] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") \
      $(lsb_release -cs) stable" | \
     sudo tee /etc/apt/sources.list.d/docker.list

sudo apt update
sudo apt install docker-ce
sudo systemctl enable docker
sudo systemctl start docker
sudo groupadd docker
sudo usermod -aG docker $USER
sudo docker run -d --name=Portainer --restart=always -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer

Solo nos queda ir a ipdelapi:9000 y crear nuestro usuario y pass de administrador.

Hecho esto, nos pedirá también crear conexiones para el exterior, no lo vamos a necesitar por ahora, asi que seleccionamos «Local» y a nos vamos a ir a «Containers».

Aquí veremos un listado de los contenedores que tenemos instalados, como es natural, solo tenemos Portainer. Así que es hora de ir añadiendo más contenido.

Creando una red interna personal

Antes de nada, vamos a crear una red interna personal ¿para qué? para que los contenedores que deseemos estén en la misma red, se puedan ver y lo más importante, podamos asignarles una ip fija a cada uno.

Tan sencillo como poner en la terminal:

docker network create --driver=bridge --subnet=192.168.2.0/24 --gateway=192.168.2.1 normandy

La subnet puede ser la que más rabia os de, no tiene porqué ser esa y en vez de «normandy» podéis poner el nombre que os de la gana, lo único, recordad dicho nombre.

Instalando OSCam

Vamos a proceder a crear (e instalar) el docker de OSCam con el siguiente comando:

sudo docker create \
   --name=oscam \
   -e PUID=1000 \
   -e PGID=1000 \
   -e TZ=Europe/Madrid \
   -p 8888:8888 \
   -v /home/pi/oscam:/config \
   --restart unless-stopped \
   linuxserver/oscam

*Tened en cuenta que en sistemas como dietpi, PUID y PGID=0 y que las rutas pueden variar a /home/dietpi/xxxx

Y ahora vamos a conectar OSCam con la red que habiamos creado en el paso anterior

docker network connect --ip 192.168.2.20 normandy oscam

*La ip puede ser la que queráis pero, ha de seguir los parámetros de la red creada y recordarla para después usarla en TVHeadend.

Y arrancamos OSCam

docker start oscam


Configurando OSCam

Una vez que tenemos instalado, asignado a la red con la ip que queremos y arrancado, es hora de configurar OSCam.

Tan sencillo como ir a ipdelapi:8888 y entramos en el webif de OSCam, si os pide usuario y contraseña usar oscam:oscam . Explicar cada posible argumento en la configuración puede hacerse eterno, siempre podeis consultar http://www.streamboard.tv/wiki/OSCam/en para más detalle.

Nos vamos a centrar en 3 apartados, oscam.conf, oscam.user y oscam.server. Que serán los 3 apartados básicos para poner nuestros datos de abono y que pueda conectarse TVHeadend.

Vamos a ir a la pestaña «Files» e ir seleccionando los anteriores apartados empezando por oscam.conf y copiando y pegando en la ventana lo aquí os vamos dejando:

oscam.conf

[global]
 logfile = stdout
 fallbacktimeout = 5500
 bindwait = 40
 nice = -1
 maxlogsize = 200
 waitforcards = 0
 waitforcards_extra_delay = 550
 preferlocalcards = 1
 lb_nbest_readers = 2
 lb_min_ecmcount = 3
 lb_max_ecmcount = 250
 lb_reopen_seconds = 900
 lb_retrylimit = 800
 lb_max_readers = 10
 [anticasc]
 enabled = 1
 aclogfile = /var/log/oscam_ac.log
 [cache]
 max_time = 8
 [dvbapi]
 enabled = 1
 au = 1
 pmt_mode = 4
 request_mode = 1
 listen_port = 9999
 ecminfo_type = 4
 user = tvheadend
 read_sdt = 2
 boxtype = pc
 [webif]
 httpport = 8888
 httpuser = oscam
 httppwd = oscam
 httprefresh = 5
 httpshowmeminfo = 1
 httpshowloadinfo = 1
 httpallowed = 0.0.0.0-255.255.255.255
 aulow = 120
 hideclient_to = 120


*El puerto para entrar al webif seguirá siendo el 8888 y el usuario y pass «oscam». El puerto de escucha y conexión con TVH será el 9999

Pulsamos en save

oscam.user

[account]
 user = tvheadend
 monlevel = 4
 suppresscmd08 = 1
 keepalive = 1
 au = 1
 group = 1
 max_connections = 4
 penalty = 0

Pulsamos en save

oscam.server

[reader]
 label=nombreconexion
 enable=1
 protocol=cccam
 device=direccion,puerto
 user=usuario
 password=contraseña
 cccversion=2.1.2
 group=1
 inactivitytimeout=1
 reconnecttimeout=30
 lb_weight=100
 cccmaxhops=10
 ccckeepalive=1
 cccwantemu=0

*Aquí tendréis que poner vuestros datos de abono, que por lo general suele ser configurado en cccam y en formato dirección:puerto usuario pass, solo tendréis que poner vuestros datos donde corresponda, con las conexiones que tengáis/necesitéis.

Pulsamos nuevamente en «Save» y posteriormente en la parte superior, a «Restart» Ya tendremos OSCam configurado y a la espera de conectarlo con TVH.

En la segunda parte de la guía tendreis la guía para todo lo relacionado con TVH.