Skip to content

Actualizaciones y Mantenimiento

A medida que el proyecto evoluciona y el sistema operativo recibe parches de seguridad, es necesario realizar actualizaciones periódicas en el servidor base (Ubuntu). Dado que este servidor aloja nuestras aplicaciones y bases de datos locales, es estrictamente necesario realizar respaldos previos para prevenir la pérdida de datos y garantizar una rápida recuperación en caso de fallos.

1. Procedimiento de Respaldo Previo (Backups)

Section titled “1. Procedimiento de Respaldo Previo (Backups)”

Antes de actualizar cualquier paquete crítico del sistema o de la aplicación, debes asegurar la integridad de la información actual.

A) Respaldo de Variables de Entorno (.env)

Section titled “A) Respaldo de Variables de Entorno (.env)”

Los archivos .env contienen credenciales críticas. Guárdalos en un directorio seguro del servidor (fuera de la carpeta pública de los repositorios) o descárgalos a tu máquina local. Esto evitará la pérdida de acceso a la base de datos o APIs si el repositorio local se corrompe.

Terminal window
cp /ruta/al/proyecto/.env /ruta/de/respaldos/env_backup_fecha

Es fundamental respaldar la base de datos que utiliza el CMS de Strapi antes de cualquier actualización. Como el proyecto utiliza SQLite, basta con realizar una copia directa del archivo .db.

Terminal window
cp /ruta/a/strapi/database/data.db /ruta/de/respaldos/strapi_db_backup.db

C) Respaldo de Archivos Multimedia (Uploads)

Section titled “C) Respaldo de Archivos Multimedia (Uploads)”

En Strapi, todos los archivos cargados por los usuarios (como imágenes para eventos o perfiles) se guardan en la carpeta public/uploads. Realiza una copia comprimida de este directorio para asegurar los archivos multimedia.

Terminal window
tar -czvf /ruta/de/respaldos/uploads_backup.tar.gz /ruta/a/strapi/public/uploads

Asegúrate de que cualquier modificación o nueva función desarrollada localmente en el servidor haya sido guardada y subida (pushed) al repositorio en GitHub de manera segura.

Terminal window
git status
git add .
git commit -m "chore: guardando cambios y respaldos pre-actualización"
git push origin main

2. Actualización de Paquetes del Servidor (Ubuntu)

Section titled “2. Actualización de Paquetes del Servidor (Ubuntu)”

Una vez que la base de datos, los archivos multimedia, las variables de entorno y el código fuente estén asegurados, puedes proceder a actualizar el entorno del servidor Linux.

1. Ver paquetes con actualizaciones disponibles: Antes de instalar nada, puedes revisar qué paquetes tienen una nueva versión disponible.

Terminal window
apt list --upgradable

2. Sincronizar la lista de repositorios: Este comando actualiza los índices para que el sistema sepa qué nuevas versiones existen.

Terminal window
sudo apt update

3. Actualizar los paquetes instalados: Descarga e instala las versiones más recientes de los paquetes que ya tienes en el sistema.

Terminal window
sudo apt upgrade

4. Actualización rápida y completa (Recomendado): Puedes combinar los dos comandos anteriores y aceptar la instalación automáticamente para agilizar el proceso.

Terminal window
sudo apt update && sudo apt upgrade -y

5. Actualizar un paquete específico: Si solo necesitas actualizar una herramienta en particular sin tocar el resto del sistema, utiliza este comando.

Terminal window
sudo apt install --only-upgrade <nombre_paquete>

6. Limpieza profunda (Opcional): Para actualizar el sistema completo y remover las dependencias obsoletas que ya no se utilizan.

Terminal window
sudo apt full-upgrade -y
sudo apt autoremove -y

Consideraciones Posteriores a la Actualización

Section titled “Consideraciones Posteriores a la Actualización”
  • Reinicio de Servicios: Una vez finalizado el proceso, asegúrate de reiniciar los procesos de PM2 y verificar que tanto el frontend como el backend se ejecuten correctamente.
  • Actualizaciones del Kernel: Si el sistema instaló actualizaciones del núcleo (kernel) de Linux, será estrictamente necesario reiniciar el servidor por completo para aplicarlas ejecutando:
    Terminal window
    sudo reboot