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

01: Lightdm.sh

# 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

02:  Networkd.sh

# 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

03:  UpdateLite.sh

# 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 ] && 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

04:  Volume.sh

# 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

01. Update.sh

# 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' ] && 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

02. Patch.sh

# Ejecutar como USUARIO
# PASO 2 - Esperar 2 minutos

source /home/cvc/system.cfg
[ $VERSION -ge 231114 ] && echo "No es necesario actualizar" && 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

01. Clean.sh

# Ejecutar como ADMIN/AGENTE
# PASO 3 - Esperar 30 segundos

source /home/cvc/system.cfg
[ $VERSION -ge 240103 ] && echo "No es necesario actualizar" && exit


# Borrar antigua App
rm -R /home/cvc/apps/canal

02. Clean.sh

# Ejecutar como USUARIO
# PASO 4 - Esperar 2 minutos

source /home/cvc/system.cfg
[ $VERSION -ge 240103 ] && echo "No es necesario actualizar" && exit


# Borrar antigua App
rm -R /home/cvc/apps/canal
source /home/cvc/system.cfg
[ $VERSION -ge 240103 ] && echo "No es necesario actualizar" && 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'

03. Clean.sh

# 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 {}" \;

04. Patch.sh

# Ejecutar como ADMIN/AGENTE
# PASO 6 - Esperar 30 segundos

source /home/cvc/system.cfg
[ $VERSION -ge 240105 ] && echo "No es necesario actualizar" && 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

01. Terminal | Descargar "Nueva App"

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

02. Terminal | Instalar Descompresor

sudo apt-get install p7zip-full
cvc

03. Borrar "App Antigua"

# Ejecutar como ADMIN/AGENTE
# Esperar 30 segundos

source /home/cvc/system.cfg
[ $VERSION -ge 240105 ] && echo "No es necesario actualizar" && 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

04. Terminal | Instalar "Nueva App"

cd /home/cvc/apps/
sudo 7z x canal.7z
cvc

05. Terminal | Instalar Configuración (Subdominio)

bash <(curl -s https://spar.comunicacionvisualcanarias.com/uploads/canalCONF/descargarConfiguracion.php)
bash <(curl -s https://frigomartel.comunicacionvisualcanarias.com/uploads/canalCONF/descargarConfiguracion.php)
bash <(curl -s https://pizzaroyers.comunicacionvisualcanarias.com/uploads/canalCONF/descargarConfiguracion.php)
bash <(curl -s https://cashconverters.comunicacionvisualcanarias.com/uploads/canalCONF/descargarConfiguracion.php)

06. Terminal | Actualizar Permisos

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