feat: version 2.2.0 -- boton real de actualizacion (auto-update)
POST /api/updater/apply dispara scripts/apply-update.sh (backup + git pull + migraciones + build + restart) en un proceso separado. Apagado por defecto: solo se activa si el servidor define UPDATE_APP_DIR/UPDATE_BACKEND_SERVICE/UPDATE_FRONTEND_SERVICE en su backend/.env. Sin esa config, el panel se comporta igual que antes. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -209,6 +209,41 @@ curl -o /dev/null -w "%{http_code}\n" http://127.0.0.1:5196/
|
||||
curl https://project.linkedcorp.net/api/auth/login -X POST -H 'Content-Type: application/json' -d '{...}'
|
||||
```
|
||||
|
||||
### 12.5 Habilitar el botón "Actualizar" (auto-actualización, opcional)
|
||||
|
||||
Por defecto el panel Configuración → Actualizaciones solo informa. Para que el botón
|
||||
"Actualizar" aplique el cambio solo (backup + git pull + migraciones + build + restart), hace
|
||||
falta en el servidor:
|
||||
|
||||
```bash
|
||||
# 1. sudo (si no esta instalado) y permiso acotado para el usuario deploy — SOLO reiniciar
|
||||
# estos dos servicios puntuales, nada mas.
|
||||
sudo apt-get install -y sudo # si el servidor no lo trae (ej. instalaciones minimas de Debian)
|
||||
echo 'deploy ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart <backend-service>, /usr/bin/systemctl restart <frontend-service>' \
|
||||
| sudo tee /etc/sudoers.d/deploy-update-<dominio>
|
||||
sudo visudo -c # valida sintaxis antes de confiar en el archivo
|
||||
|
||||
# 2. copiar el script fuera de source/ (donde vive el runtime, no el checkout de git)
|
||||
mkdir -p /opt/apps/<dominio>/scripts
|
||||
cp /opt/apps/<dominio>/source/scripts/apply-update.sh /opt/apps/<dominio>/scripts/
|
||||
chmod +x /opt/apps/<dominio>/scripts/apply-update.sh
|
||||
|
||||
# 3. agregar al backend/.env (el de runtime, NO el de source/backend)
|
||||
cat >> /opt/apps/<dominio>/backend/.env <<EOF
|
||||
UPDATE_APP_DIR=/opt/apps/<dominio>
|
||||
UPDATE_BACKEND_SERVICE=<backend-service>
|
||||
UPDATE_FRONTEND_SERVICE=<frontend-service>
|
||||
EOF
|
||||
|
||||
sudo systemctl restart <backend-service>
|
||||
```
|
||||
|
||||
Importante: el script (`scripts/apply-update.sh`) hace `git reset --hard` sobre `source/`
|
||||
mientras corre — por eso tiene que ejecutarse SIEMPRE desde la copia en
|
||||
`$UPDATE_APP_DIR/scripts/`, nunca desde dentro de `source/scripts/` directamente. Cada vez que
|
||||
el script cambie en un release, hay que repetir el paso 2 (copiarlo de nuevo) en un deploy
|
||||
manual — el propio update automático no se autoactualiza a sí mismo.
|
||||
|
||||
### 13. Limpiar archivos `.md` del source
|
||||
|
||||
```bash
|
||||
|
||||
Reference in New Issue
Block a user