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.
cp /ruta/al/proyecto/.env /ruta/de/respaldos/env_backup_fechaB) Respaldo de la Base de Datos de Strapi
Section titled “B) Respaldo de la Base de Datos de Strapi”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.
cp /ruta/a/strapi/database/data.db /ruta/de/respaldos/strapi_db_backup.dbC) 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.
tar -czvf /ruta/de/respaldos/uploads_backup.tar.gz /ruta/a/strapi/public/uploadsD) Sincronización con GitHub
Section titled “D) Sincronización con GitHub”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.
git statusgit add .git commit -m "chore: guardando cambios y respaldos pre-actualización"git push origin main2. 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.
Comandos Fundamentales de Actualización
Section titled “Comandos Fundamentales de Actualización”1. Ver paquetes con actualizaciones disponibles: Antes de instalar nada, puedes revisar qué paquetes tienen una nueva versión disponible.
apt list --upgradable2. Sincronizar la lista de repositorios: Este comando actualiza los índices para que el sistema sepa qué nuevas versiones existen.
sudo apt update3. Actualizar los paquetes instalados: Descarga e instala las versiones más recientes de los paquetes que ya tienes en el sistema.
sudo apt upgrade4. Actualización rápida y completa (Recomendado): Puedes combinar los dos comandos anteriores y aceptar la instalación automáticamente para agilizar el proceso.
sudo apt update && sudo apt upgrade -y5. Actualizar un paquete específico: Si solo necesitas actualizar una herramienta en particular sin tocar el resto del sistema, utiliza este comando.
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.
sudo apt full-upgrade -ysudo apt autoremove -yConsideraciones 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