En esta entrada del Blog se realizará la creación de un vps en Oracle Cloud, después abriremos los puertos 22 para conectarnos por medio de ssh, también el puerto 9000 porque instalaremos portainer ,el 8096 para docker y abriremos el puerto 53682 para el rclone.
La finalidad es instalar jellyfin en docker utilizando portainer en un stack, y jalando las películas o archivos multimedia desde rclone con un Team Drive de Google Drive.

Video correspondiente a la entrada

CREACION DE VPS EN ORACLE, ABRIR PUERTOS A USAR (22 PARA CONEXION SSH Y 9000 PARA PORTAINER y 8096 para jellyfin, 53682 rclone), CONEXION POR PUTTY CON SSH

  • Crear la llave ssh con puttygen
  • Crear la instancia en oracle cloud
  • Abrir los puertos necesarios en oracle cloud
  • conectarse por medio de SSh usando putty

ACTUALIZACION DEL SISTEMA, PONER CONTRASEÑA A USUARIO, AGREGARLO A GRUPO SUDO, INSTALACION DE NANO Y UNZIP

Se realiza la actualizacion del sistema ubuntu y se ingresa a root

sudo apt update
sudo passwd ubuntu
sudo su -

Ahora cambiamos el password de nuestro usuario y lo agregamos a los grupos correspondientes.

passwd
adduser ubuntu root
adduser ubuntu admin
adduser ubuntu sudo
exit

Abremos salido de root y con sudo instalamos algunos paquetes necesarios

sudo apt install nano fuse unzip cron -y

INSTALACION DE RCLONE Y MONTAR TEAM DRIVE

Se descarga el script con curl de rclone y despues se realiza la ejecucion del mismo con sudo bash, posteriormente entramos a la configuracion

curl https://rclone.org/install.sh | sudo bash
rclone config

Ahora seguimos la configuracion con los siguientes datos: Te informo que teamcloud es el nombre que yo he elegido para mi teamdrive montado

n
teamcloud
15
>Enter
>Enter
>Enter
1
>Enter
>Enter
>Enter
>Enter
Advance config? n
utoconfig? n

Hasta aqui te habra arrojado una url del tipo 127.0.0.1... la cual instroduciras en tu navegador fuera de putty,para darle autorizacion a rclone con tu cuenta de gmail, la cual tiene acceso al team drive que habras de montar

Team Drive? y
ok? y
q

Listo ya salimos de la configuracion.

Instalamos FUSE en el vps

Se instala fuse y despues se crea una carpeta donde se montara el team drive, recuerda la ubicacion

sudo apt install fuse
mkdir /home/ubuntu/teamcloud
sudo nano /etc/fuse.conf

Descomentar la linea allow-other
Guardar y cerrar
El siguiente comando en la terminal te montara el teamdrive en la carpeta creada anteriormente

rclone mount --allow-other --allow-non-empty -v teamcloud: /home/ubuntu/teamcloud &
ls /home/ubuntu/teamcloud

Instalacion de Cron

Instalamos cron, lo activamos

sudo apt install cron
sudo systemctl enable cron
export EDITOR=nano
crontab -e
  • Pegamos alli lo siguiente cambiando la direccion del direcciorio o usuario por la nuestra y guardamos.
@reboot sleep 30 && rclone mount --allow-other --allow-non-empty -v teamcloud: /home/ubuntu/teamcloud &

INSTALACION DE DOCKER

Con el comando siguiente instalamos los certificados,curl,gnupg y lsb-release

sudo apt-get install ca-certificates curl gnupg lsb-release

Se descarga la llave gnupg

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Se agrega el repositorio a sources.list

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Se realiza una actualizacion de paquetes e instalamos docker

sudo apt-get update && sudo apt-get install docker-ce docker-ce-cli containerd.io

Ahora agregamos nuestro usuario al grupo de docker

sudo usermod -aG docker $USER

INSTALACION DE PORTAINER

Se crea el volumen que utilizara portainer

docker volume create portainer_data

Ahora lanzamos el comando siguiente para la creacion de portainer

docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce

Agregar IP a la red en portainer

Abrimos portainer en IP:9000 le colocamos un usuario y contraseña
Para agregar la ip en portainer ve a
Enviroments>local>Public IP
Alli coloca la IP publica de tu vps

Instalacion del contenedor Jellyfin en Portainer

Ve al menu que dice Stack, ponle un nombre y en el editor colocamos

---
version: "2.1"
services:
  jellyfin:
    image: lscr.io/linuxserver/jellyfin
    container_name: jellyfin
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/London

    volumes:
      - /root/docker/jellyfin:/config
      - /home/ubuntu/teamcloud:/data/movies
    ports:
      - 8096:8096
      - 8920:8920 #optional
      - 7359:7359/udp #optional
      - 1900:1900/udp #optional
    restart: unless-stopped

En donde:
/home/ubuntu/teamcloud Es la direccion de monstaje o carpeta creada donde se monto tu teamdrive en el vps, cambiala por la tuya
8096:8096 Es el puerto usado por jellyfin, abrelo en tu vps tambien ,asi como lo hiciste con el 9000 y 8000

Ahora ya puedes acceder a tu Jellyfin desde IP:8096, si no es asi intenta con los otros puertos, igualmente abrelos en el vps.
En tu Jellyfin tu montaje estara en /data/movies/

  • Comandos extras para docker
docker ps -a #listar contenedores
docker-compose down #Detener contenedores
docker stop $(docker ps -a -q) #Detener contenedores
docker rm -f $(docker ps -a -q) #eliminar contenedores
docker images -a #listar imagenes
docker rmi $(docker images -a -q) #eliminar imagenes
docker volume ls #Listar volumenes
docker volume rm $(docker volume ls -q) #Eliminar volumenes