# ACTUALIZAR: App en Remoto

La actualización en remoto permite modificar la app general de los equipos y llevarla hasta su ultima versión.
Requiere el uso del programa Mesh Central, el control remoto de nuestros equipos.
Los pasos deben seguirse al pié de la letra sin excepción.

# Detalles sobre Actualizar en Remoto

La actualización en remoto permite modificar la app general de los equipos y llevarla hasta su ultima versión.

Requiere el uso del programa Mesh Central, el control remoto de nuestros equipos.

Los pasos deben seguirse al pié de la letra sin excepción.

\---------

# 00: Versión de Linux

<p class="callout info">**01: Lightdm.sh**</p>

> \# SOLO SI EL EQUIPO NO ESTÁ EN DEBIAN 12  
> \# Ejecutar como ADMIN/AGENTE  
> \# PASO 0.1 - Esperar hasta que se reinicie
> 
> \#/bin/bash
> 
> apt update -y  
> apt upgrade -y  
> if \[ ! -d /etc/lightdm/ \]; then  
>  apt -y purge sddm  
>  apt autoremove -y  
>  apt -y install lightdm  
>  sed -i 's/#autologin-user=/autologin-user=cvc/g' /etc/lightdm/lightdm.conf  
>  sed -i 's/#autologin-user-timeout=0/autologin-user-timeout=0/g' /etc/lightdm/lightdm.conf  
>  rm /etc/systemd/system/startx.service /etc/systemd/system/getty.target.wants/getty\\@tty1.service  
>  rm -r /etc/sddm.conf.d/  
>  reboot  
> fi

<p class="callout info">**02: Networkd.sh**</p>

> \# SOLO SI EL EQUIPO NO ESTÁ EN DEBIAN 12  
> \# Ejecutar como ADMIN/AGENTE  
> \# PASO 0.2 - Esperar 2 minutos
> 
> \#/bin/bash
> 
> if \[ ! -f /etc/systemd/network/wired.network \]; then  
>  curl -L https://comunicacionvisualcanarias.com/\_ext/updates/2023\_1/files/wired.network -o /etc/systemd/network/wired.network
> 
>  ADDRESS=$(ip a | grep "inet" | grep "scope global" | grep -v "dynamic" | awk '{ print $2 }')  
>  GATEWAY=$(ip route | grep "default via" | awk '{print $3}')
> 
>  if \[ ! -z $ADDRESS \]; then  
>  sed -i "s/DHCP=.\*/DHCP=no/g" /etc/systemd/network/wired.network  
>  sed -i "s|Address=.\*|Address=$ADDRESS|g" /etc/systemd/network/wired.network  
>  sed -i "s/Gateway=.\*/Gateway=$GATEWAY/g" /etc/systemd/network/wired.network  
>  fi
> 
>  systemctl enable systemd-networkd  
>  systemctl disable NetworkManager  
>  apt purge -y network-manager  
>  systemctl start systemd-networkd  
>  rm -r /etc/NetworkManager  
> fi

<p class="callout info">**03: UpdateLite.sh**</p>

> \# SOLO SI EL EQUIPO NO ESTÁ EN DEBIAN 12  
> \# Ejecutar como ADMIN/AGENTE  
> \# PASO 0.3 - Esperar hasta que se reinicie
> 
> \#!/bin/bash  
> \# ###############################################################  
> \# ###################### Pre Instalacion ########################  
> \# ###############################################################
> 
> if \[ -f /home/cvc/system.cfg \]; then  
>  echo "ya actualizado"  
>  exit 1  
> fi
> 
> if \[ ! -f /home/cvc/system/system.cfg \]; then  
>  echo "no se puede actualizar, no hay system.cfg"  
>  exit 1  
> fi
> 
>   
> \# Entorno  
> ID=$(grep 'ID="' /home/cvc/system/system.cfg | cut -d'"' -f2)  
> CLIENT=$(grep 'CLIENT="' /home/cvc/system/system.cfg | cut -d'"' -f2)  
> STARTAPP=$(grep 'STARTAPP="' /home/cvc/system/system.cfg | cut -d'"' -f2)  
> SYNC\_MEDIA=$(grep 'SYNC\_MEDIA="' /home/cvc/system/system.cfg | cut -d'"' -f2)  
> SYNC\_MUSIC=$(grep 'SYNC\_MUSIC="' /home/cvc/system/system.cfg | cut -d'"' -f2)
> 
> cd /home/cvc  
> export HOME=/home/cvc
> 
> \# Deshabilitar tareas  
> printf "" | sudo -u cvc crontab -  
> printf "" | crontab -
> 
> \# Borrar paquetes innecesarios  
> apt update -y  
> apt purge -y kitty nano vim-tiny expect  
> apt autoremove -y
> 
> \######## Descargar paquete de instalación  
> \[ -d /tmp/update \] &amp;&amp; rm -R /tmp/update  
> mkdir -p /tmp/update/root  
> curl -L -o /tmp/update/package.zip "https://comunicacionvisualcanarias.com/\_ext/updates/2023\_1/package.zip"
> 
> \######## Copiar contenidos, musica y config  
> mkdir /tmp/update/media  
> cp -R /home/cvc/\_contenidos/files/\* /tmp/update/media/
> 
> mkdir /tmp/update/music  
> cp -R /home/cvc/\_musica/files/\* /tmp/update/music/
> 
> mkdir /tmp/update/network  
> cp /etc/systemd/network/wired.network /tmp/update/network/wired.network
> 
> \# Extraer paquete  
> apt install -y unzip  
> unzip /tmp/update/package.zip -d /tmp/update/root/
> 
>   
> \# ################################################################  
> \# ######################## INSTALACIÓN ##########################  
> \# ################################################################
> 
> \######## Preparar los paquetes  
> apt upgrade -y  
> apt install -y alsa-utils xdotool zstd bash-completion neovim scrot lm-sensors htop curl efibootmgr ffmpeg jq moreutils
> 
>   
> \######## Actualizar debian  
> sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list  
> sed -i 's/non-free/non-free-firmware/g' /etc/apt/sources.list  
> sed -i 's/non-free-firmware-firmware/non-free-firmware/g' /etc/apt/sources.list  
> export DEBIAN\_FRONTEND=noninteractive  
> export DEBIAN\_PRIORITY=critical  
> apt update -y  
> apt-get -y -o "Dpkg::Options::=--force- confdef" -o "Dpkg::Options::=--force-confold" upgrade --without-new-pkgs  
> apt-get -y -o "Dpkg::Options::=--force-confdef" -o "Dpkg::Options::=--force-confold" full-upgrade
> 
> \######## Borrar archivos antiguos  
> rm -f /home/cvc/FIRST\_RUN  
> rm -rf /home/cvc/mesh  
> rm -rf /home/cvc/update  
> rm -rf /home/cvc/system  
> rm -rf /home/cvc/.config/canal  
> rm -rf /home/cvc/.config/totem  
> rm -rf /home/cvc/.config/webviewer  
> rm -rf /home/cvc/.config/guardias
> 
> rm -rf /efi/\*  
> rm -rf /usr/share/plymouth/\*
> 
> \######## Copiar ficheros de actualizacion  
> cp -R /tmp/update/root/\* /
> 
> \# #############################################################  
> \# ###################### CONFIGURACIÓN ########################  
> \# #############################################################
> 
> \# Permisos  
> chown -R cvc:cvc /home/cvc/  
> chown root:root /etc/sudoers /etc/sudoers.d -R
> 
> chown root /home/cvc/apps/canal/chrome-sandbox  
> chmod 4755 /home/cvc/apps/canal/chrome-sandbox  
> chmod +x /home/cvc/apps/canal/canal
> 
> chown root /home/cvc/apps/totem/chrome-sandbox  
> chmod 4755 /home/cvc/apps/totem/chrome-sandbox  
> chmod +x /home/cvc/apps/totem/totem
> 
> chown root /home/cvc/apps/webviewer/chrome-sandbox  
> chmod 4755 /home/cvc/apps/webviewer/chrome-sandbox  
> chmod +x /home/cvc/apps/webviewer/webviewer
> 
> chown root /home/cvc/apps/guardias/chrome-sandbox  
> chmod 4755 /home/cvc/apps/guardias/chrome-sandbox  
> chmod +x /home/cvc/apps/guardias/guardias
> 
> chmod +x /home/cvc/scripts/\*  
> chown cvc:cvc /home/cvc/deploy/deploy.json
> 
> chmod +x /home/cvc/.bash\_aliases
> 
> \# Fondo de escritorio  
> cp /home/cvc/resources/defaults/$CLIENT/BG.png /home/cvc/resources/BG.png
> 
> \######## Configuración de Apps  
> \# Canal  
> mkdir -p /home/cvc/.config/canal/\_custom  
> cp -R /home/cvc/resources/defaults/$CLIENT/config/canal/\* /home/cvc/.config/canal/\_custom/
> 
> \# Totem  
> mkdir -p /home/cvc/.config/totem/\_custom  
> if \[ -d /home/cvc/resources/defaults/$CLIENT/config/totem/ \]; then  
>  cp -R /home/cvc/resources/defaults/$CLIENT/config/totem/\* /home/cvc/.config/totem/\_custom/  
> else   
>  cp -R /home/cvc/resources/defaults/cvc/config/totem/\* /home/cvc/.config/totem/\_custom/  
> fi
> 
> \# cServer  
> cp -R /home/cvc/resources/defaults/$CLIENT/config/server/\* /home/cvc/apps/server/
> 
>   
> \######## Reestablecer configuraciones
> 
> \# Contenidos y musica  
> cp /tmp/update/media/\* /home/cvc/deploy/media/  
> cp /tmp/update/music/\* /home/cvc/deploy/music/
> 
> \# Configuracion de sistema  
> sed -i "s/ID=.\*/ID=\\"$ID\\"/g" /home/cvc/system.cfg  
> sed -i "s/CLIENT=.\*/CLIENT=\\"$CLIENT\\"/g" /home/cvc/system.cfg  
> sed -i "s/STARTAPP=.\*/STARTAPP=\\"$STARTAPP\\"/g" system.cfg  
> sed -i "s/SYNC\_MEDIA=.\*/SYNC\_MEDIA=\\"$SYNC\_MEDIA\\"/g" system.cfg  
> sed -i "s/SYNC\_MUSIC=.\*/SYNC\_MUSIC=\\"$SYNC\_MUSIC\\"/g" system.cfg  
> sed -i "s/SYNC\_POWER=.\*/SYNC\_POWER=\\"true\\"/g" system.cfg
> 
> cp /tmp/update/network/wired.network /etc/systemd/network/wired.network
> 
> \# Actualizar Plymouth  
> cp /home/cvc/resources/defaults/$CLIENT/plymouthd.defaults /usr/share/plymouth/plymouthd.defaults  
> update-initramfs -u
> 
> \# Actualizar EFI  
> cp /vmlinuz /efi/EFI/vmlinuz  
> cp /initrd.img /efi/EFI/initrd  
> for i in {0..6}  
> do  
>  efibootmgr -B -b 000$i  
> done  
> efibootmgr -c -d /dev/sda -p 1 -l "\\EFI\\boot\\bootx64.efi" -L "cvcOS"
> 
> \# Otras configuraciones  
> systemctl daemon-reload  
> systemctl enable hwclock  
> systemctl set-default graphical.target
> 
>   
> \# Limpieza final  
> rm -rf /home/cvc/\_apps  
> rm -rf /home/cvc/\_contenidos  
> rm -rf /home/cvc/\_musica  
> rm -rf /home/cvc/telemetry  
> apt -y purge \*pulse\*  
> apt autoremove -y  
> apt autoclean
> 
> \# Configurar cron  
> printf "" | crontab -  
> printf "\*/10 \* \* \* \* /home/cvc/scripts/logger\\n\* \* \* \* \* /home/cvc/scripts/sync\\n" | sudo -u cvc crontab -
> 
> rm -Rf /tmp/update
> 
> reboot

<p class="callout success">**04: Volume.sh**</p>

> \# SOLO SI EL EQUIPO NO ESTÁ EN DEBIAN 12  
> \# Ejecutar como USUARIO  
> \# PASO 0.4 - Instantaneo
> 
> \#/bin/bash
> 
> sudo -u cvc amixer set Master 100%

# 01. Actualización 2023

<p class="callout info">**01. Update.sh**</p>

> \# Ejecutar como ADMIN/AGENTE  
> \# PASO 1 - Esperar 1 minuto
> 
> \#/bin/bash  
> apt install unzip -y
> 
> UPDATED=$(jq 'has("debug")' /home/cvc/.config/canal/\_custom/CONF.json)  
> \[ $UPDATED == 'true' \] &amp;&amp; return 0
> 
> find /home/cvc/.config/ -name CONF.json -exec bash -c "jq '. + {debug: {autoOpenDevTools:false}}' {} | sponge {}" \\;  
> find /home/cvc/resources/defaults/ -name CONF.json -exec bash -c "jq '. + {debug: {autoOpenDevTools:false}}' {} | sponge {}" \\;
> 
>   
> \# Descargar y descomprimir  
> mkdir /tmp/update  
> curl -L "https://www.comunicacionvisualcanarias.com/\_ext/updates/2023\_2/package.zip" -o /tmp/update/package.zip  
> unzip /tmp/update/package.zip -d /tmp/update/ROOT
> 
> \# Borrar y copiar nuevo  
> cp /home/cvc/apps/server/config.json /tmp/update/config.json  
> rm -R /home/cvc/apps/canal  
> rm -R /home/cvc/apps/server  
> cp -R /tmp/update/ROOT/\* /
> 
> \# Permisos  
> chown -R cvc:cvc /home/cvc/  
> chmod +x /home/cvc/apps/canal/canal  
> chmod +x /home/cvc/apps/totem/totem  
> chmod +x /home/cvc/apps/webviewer/webviewer  
> chmod +x /home/cvc/apps/guardias/guardias
> 
> find /home/cvc/apps/ -name chrome-sandbox -exec chown root:root {} \\;  
> find /home/cvc/apps/ -name chrome-sandbox -exec chmod 4755 {} \\;
> 
> \# Restaura config  
> mv /tmp/update/config.json /home/cvc/apps/server/data/config.json  
> systemctl restart cServer  
> killall canal
> 
> \# Limpiar  
> rm -R /tmp/update

<p class="callout success">**02. Patch.sh**</p>

> \# Ejecutar como USUARIO  
> \# PASO 2 - Esperar 2 minutos
> 
> source /home/cvc/system.cfg  
> \[ $VERSION -ge 231114 \] &amp;&amp; echo "No es necesario actualizar" &amp;&amp; exit
> 
> \# Descargar y descomprimir  
> mkdir /tmp/update  
> curl -L "https://www.comunicacionvisualcanarias.com/\_ext/updates/2023\_4/package.zip" -o /tmp/update/package.zip  
> unzip /tmp/update/package.zip -d /tmp/update/ROOT
> 
> \# Copiar y actualizar  
> cp -R /tmp/update/ROOT/\* /  
> sed -i "s/VERSION=.\*/VERSION=231114/g" /home/cvc/system.cfg
> 
> \# Reiniciar la aplicacion  
> export DISPLAY=:0; xdotool key 'ctrl+shift+r'

# 02. Actualización 2024

<p class="callout info">**01. Clean.sh**</p>

> \# Ejecutar como ADMIN/AGENTE  
> \# PASO 3 - Esperar 30 segundos
> 
> source /home/cvc/system.cfg  
> \[ $VERSION -ge 240103 \] &amp;&amp; echo "No es necesario actualizar" &amp;&amp; exit
> 
>   
> \# Borrar antigua App  
> rm -R /home/cvc/apps/canal

<p class="callout success">**02. Clean.sh**</p>

> \# Ejecutar como USUARIO  
> \# PASO 4 - Esperar 2 minutos
> 
> source /home/cvc/system.cfg  
> \[ $VERSION -ge 240103 \] &amp;&amp; echo "No es necesario actualizar" &amp;&amp; exit
> 
>   
> \# Borrar antigua App  
> rm -R /home/cvc/apps/canal  
> source /home/cvc/system.cfg  
> \[ $VERSION -ge 240103 \] &amp;&amp; echo "No es necesario actualizar" &amp;&amp; exit
> 
> \# Descargar y descomprimir  
> mkdir /tmp/update  
> curl -L "https://www.comunicacionvisualcanarias.com/\_ext/updates/2024\_1/package.zip" -o /tmp/update/package.zip  
> unzip /tmp/update/package.zip -d /tmp/update/ROOT
> 
> find /home/cvc/.config/canal/ -name CONF.json -exec bash -c "jq '. + {tingRules: \[\]}' {} | sponge {}" \\;  
> find /home/cvc/.config/canal/ -name CONF.json -exec bash -c "jq '.interface += {clock: true}' {} | sponge {}" \\;  
> find /home/cvc/.config/canal/ -name CONF.json -exec bash -c "jq '.interface += {overlay: false}' {} | sponge {}" \\;
> 
> find /home/cvc/resources/defaults/\*/config/canal/CONF.json -exec bash -c "jq '. + {tingRules: \[\]}' {} | sponge {}" \\;  
> find /home/cvc/resources/defaults/\*/config/canal/CONF.json -exec bash -c "jq '.interface += {overlay: false}' {} | sponge {}" \\;  
> find /home/cvc/resources/defaults/\*/config/canal/CONF.json -exec bash -c "jq '.interface += {clock: true}' {} | sponge {}" \\;
> 
> \# Copiar y actualizar  
> cp -R /tmp/update/ROOT/\* /  
> sed -i "s/VERSION=.\*/VERSION=240103/g" /home/cvc/system.cfg
> 
> \# Reiniciar la aplicacion  
> export DISPLAY=:0; xdotool key 'alt+F4'

<p class="callout info">**03. Clean.sh**</p>

> \# Ejecutar como ADMIN/AGENTE  
> \# PASO 5 - Esperar 1 minuto
> 
> chmod +x /home/cvc/apps/canal/canal  
> chown cvc:cvc -R /home/cvc/apps/canal/\*  
> chown root:root /home/cvc/apps/canal/chrome-sandbox  
> chmod 4755 /home/cvc/apps/canal/chrome-sandbox
> 
> find /home/cvc/ -iname overlayImg.png -exec bash -c "chown cvc:cvc {}" \\;  
> find /home/cvc/ -name CONF.json -exec bash -c "chown cvc:cvc {}" \\;

<p class="callout info">**04. Patch.sh**</p>

> \# Ejecutar como ADMIN/AGENTE  
> \# PASO 6 - Esperar 30 segundos
> 
> source /home/cvc/system.cfg  
> \[ $VERSION -ge 240105 \] &amp;&amp; echo "No es necesario actualizar" &amp;&amp; exit
> 
> \# Descargar y descomprimir  
> mkdir /tmp/update  
> curl -L "https://www.comunicacionvisualcanarias.com/\_ext/updates/2024\_2/package.zip" -o /tmp/update/package.zip  
> unzip /tmp/update/package.zip -d /tmp/update/ROOT
> 
> \# Propietario del server  
> chown cvc:cvc /home/cvc/apps/server/\_server.js
> 
> \# Copiar y actualizar version  
> cp -R /tmp/update/ROOT/\* /  
> sed -i "s/VERSION=.\*/VERSION=240105/g" /home/cvc/system.cfg
> 
> \# Reiniciar el servidor  
> systemctl restart cServer

# 03: Actualización 2025

<p class="callout warning">**01. Terminal | Descargar "Nueva App"**</p>

> curl -o /home/cvc/apps/canal.7z https://panel.comunicacionvisualcanarias.com/uploads/canal/descargarCanal.php

<p class="callout warning">**02. Terminal | Instalar Descompresor**</p>

> sudo apt-get install p7zip-full

> cvc

<p class="callout info">**03. Borrar "App Antigua"**</p>

> \# Ejecutar como ADMIN/AGENTE  
> \# Esperar 30 segundos
> 
> source /home/cvc/system.cfg  
> \[ $VERSION -ge 240105 \] &amp;&amp; echo "No es necesario actualizar" &amp;&amp; exit
> 
>   
> \# Borrar antigua App  
> rm -R /home/cvc/apps/canal  
> rm /home/cvc/.config/canal/\_custom/CONF.json  
> rm /home/cvc/.config/canal/\_custom/overlayImg.png

<p class="callout warning">**04. Terminal | Instalar "Nueva App"**</p>

> cd /home/cvc/apps/

> sudo 7z x canal.7z

> cvc

<p class="callout warning">**05. Terminal | Instalar Configuración (Subdominio)**</p>

> bash &lt;(curl -s https://spar.comunicacionvisualcanarias.com/uploads/canalCONF/descargarConfiguracion.php)

> bash &lt;(curl -s https://frigomartel.comunicacionvisualcanarias.com/uploads/canalCONF/descargarConfiguracion.php)

> bash &lt;(curl -s https://pizzaroyers.comunicacionvisualcanarias.com/uploads/canalCONF/descargarConfiguracion.php)

> bash &lt;(curl -s https://cashconverters.comunicacionvisualcanarias.com/uploads/canalCONF/descargarConfiguracion.php)

<p class="callout warning">**06. Terminal | Actualizar Permisos**</p>

> cd /home &amp;&amp; sudo chmod -R 777 cvc &amp;&amp; sudo chmod -R +x cvc