Modularización de GKACHELE SaaS
This commit is contained in:
105
backup_completo.sh
Normal file
105
backup_completo.sh
Normal file
@@ -0,0 +1,105 @@
|
||||
#!/bin/bash
|
||||
# GKACHELE™ - Script de Backup Completo
|
||||
# © 2025 GKACHELE™. Todos los derechos reservados.
|
||||
# Uso: bash backup_completo.sh
|
||||
|
||||
HASH="gkachele-login-customizer-20250114-v3-$(date +%Y%m%d-%H%M%S)"
|
||||
BACKUP_DIR="backups/backup-${HASH}"
|
||||
RASPBERRY_HOST="192.168.1.134"
|
||||
RASPBERRY_PORT="2222"
|
||||
RASPBERRY_USER="pi"
|
||||
RASPBERRY_PASS="Gdk1983gdk45@"
|
||||
RASPBERRY_PATH="/home/pi/gkachele-saas"
|
||||
|
||||
echo "=========================================="
|
||||
echo "🔄 GKACHELE™ - BACKUP COMPLETO"
|
||||
echo "=========================================="
|
||||
echo "Hash del Proyecto: gkachele-login-customizer-20250114-v3"
|
||||
echo "Hash del Backup: ${HASH}"
|
||||
echo "Fecha: $(date)"
|
||||
echo ""
|
||||
|
||||
# Crear directorio de backup
|
||||
mkdir -p "${BACKUP_DIR}"
|
||||
mkdir -p "${BACKUP_DIR}/local"
|
||||
mkdir -p "${BACKUP_DIR}/raspberry"
|
||||
|
||||
echo "📦 1. Respaldando código local..."
|
||||
cp -r demo "${BACKUP_DIR}/local/" 2>/dev/null || echo "⚠️ No se encontró demo/"
|
||||
cp -r *.md "${BACKUP_DIR}/local/" 2>/dev/null || echo "⚠️ No se encontraron .md"
|
||||
cp -r *.sh "${BACKUP_DIR}/local/" 2>/dev/null || echo "⚠️ No se encontraron .sh"
|
||||
cp -r *.py "${BACKUP_DIR}/local/" 2>/dev/null || echo "⚠️ No se encontraron .py"
|
||||
|
||||
echo "📦 2. Respaldando desde Raspberry..."
|
||||
echo " Conectando a Raspberry..."
|
||||
|
||||
# Backup de código
|
||||
sshpass -p "${RASPBERRY_PASS}" scp -P ${RASPBERRY_PORT} -o StrictHostKeyChecking=no -r \
|
||||
${RASPBERRY_USER}@${RASPBERRY_HOST}:${RASPBERRY_PATH}/* \
|
||||
"${BACKUP_DIR}/raspberry/" 2>/dev/null || echo "⚠️ Error copiando código"
|
||||
|
||||
# Backup de base de datos
|
||||
sshpass -p "${RASPBERRY_PASS}" scp -P ${RASPBERRY_PORT} -o StrictHostKeyChecking=no \
|
||||
${RASPBERRY_USER}@${RASPBERRY_HOST}:${RASPBERRY_PATH}/database/main.db \
|
||||
"${BACKUP_DIR}/raspberry/main.db" 2>/dev/null || echo "⚠️ Error copiando DB"
|
||||
|
||||
# Backup de configuración
|
||||
sshpass -p "${RASPBERRY_PASS}" ssh -p ${RASPBERRY_PORT} -o StrictHostKeyChecking=no \
|
||||
${RASPBERRY_USER}@${RASPBERRY_HOST} \
|
||||
"sudo cat /etc/systemd/system/gkachele-saas.service" > "${BACKUP_DIR}/raspberry/gkachele-saas.service" 2>/dev/null || echo "⚠️ Error copiando service"
|
||||
|
||||
sshpass -p "${RASPBERRY_PASS}" ssh -p ${RASPBERRY_PORT} -o StrictHostKeyChecking=no \
|
||||
${RASPBERRY_USER}@${RASPBERRY_HOST} \
|
||||
"sudo cat /etc/nginx/sites-available/gk-saas.komkida.duckdns.org.conf" > "${BACKUP_DIR}/raspberry/nginx.conf" 2>/dev/null || echo "⚠️ Error copiando nginx"
|
||||
|
||||
echo ""
|
||||
echo "📝 3. Creando archivo de información..."
|
||||
cat > "${BACKUP_DIR}/INFO.txt" << EOF
|
||||
GKACHELE™ - Backup Completo
|
||||
Hash del Proyecto: gkachele-login-customizer-20250114-v3
|
||||
Hash del Backup: ${HASH}
|
||||
Fecha: $(date)
|
||||
==========================================
|
||||
|
||||
ESTADO DEL SISTEMA (Hash: gkachele-login-customizer-20250114-v3):
|
||||
- ✅ Login redirige correctamente a customizer
|
||||
- ✅ Sistema modular de templates (_gkachele/)
|
||||
- ✅ Menús dinámicos (header, footer, sidebar)
|
||||
- ✅ Widgets dinámicos
|
||||
- ✅ Base de datos multi-tenant (main.db)
|
||||
- ✅ Sistema de roles basado en DB
|
||||
- ✅ Dashboard cliente (/dashboard)
|
||||
- ✅ Customizer (/customizer/{site_id})
|
||||
- ✅ Dashboard admin (/admin)
|
||||
- ✅ Servicio systemd: gkachele-saas
|
||||
- ✅ Nginx reverse proxy
|
||||
|
||||
ESTRUCTURA DE RUTAS:
|
||||
- /customizer/{site_id} - Editar antes de publicar (cliente)
|
||||
- /admin - Panel del cliente (se crea al aprobar)
|
||||
- /dashboard - Panel principal admin (gestión del sistema)
|
||||
|
||||
ARCHIVOS INCLUIDOS:
|
||||
- Código local (demo/)
|
||||
- Código Raspberry (raspberry/)
|
||||
- Base de datos (raspberry/main.db)
|
||||
- Configuración systemd (raspberry/gkachele-saas.service)
|
||||
- Configuración nginx (raspberry/nginx.conf)
|
||||
|
||||
RESTAURACIÓN:
|
||||
1. Copiar raspberry/* a /home/pi/gkachele-saas/
|
||||
2. Restaurar main.db a database/main.db
|
||||
3. Restaurar gkachele-saas.service a /etc/systemd/system/
|
||||
4. Restaurar nginx.conf a /etc/nginx/sites-available/
|
||||
5. Reiniciar servicios: sudo systemctl restart gkachele-saas nginx
|
||||
|
||||
© 2025 GKACHELE™. Todos los derechos reservados.
|
||||
EOF
|
||||
|
||||
echo "✅ Backup completado en: ${BACKUP_DIR}"
|
||||
echo ""
|
||||
echo "📊 Resumen:"
|
||||
du -sh "${BACKUP_DIR}"/* 2>/dev/null | head -5
|
||||
echo ""
|
||||
echo "🎯 Hash del backup: ${HASH}"
|
||||
echo "=========================================="
|
||||
Reference in New Issue
Block a user