# Sistema de backup y restauración de María, OpenClaw y workspace

**Fecha:** 2026-04-12  
**Estado:** implantado en primera versión operativa

---

## 1. Objetivo

Proteger la parte difícil de reconstruir:

- configuración de OpenClaw
- workspace
- memoria
- agentes y estado útil del asistente
- documentos y scripts creados

Este sistema no intenta ser imagen completa del host. Está pensado para proteger a **María/OpenClaw** como sistema lógico recuperable.

---

## 2. Qué guarda

El backup incluye, cuando existen:

- `~/.openclaw/openclaw.json`
- `~/.openclaw/config/`
- `~/.openclaw/settings/`
- `~/.openclaw/credentials/`
- `~/.openclaw/devices/`
- `~/.openclaw/identity/`
- `~/.openclaw/auth-profiles.json`
- `~/.openclaw/memory/`
- `~/.openclaw/agents/`
- `~/.openclaw/flows/`
- `~/.openclaw/tasks/`
- `~/.openclaw/workspace/`

También genera un `MANIFEST.json` con:

- identificador del backup
- fecha
- hostname
- contenido incluido
- commit git del workspace
- estado `git status --short`

---

## 3. Qué excluye

Para evitar basura o ruido innecesario, excluye por defecto:

- `.git`
- `node_modules`
- caches Python
- ficheros temporales comunes
- algunos logs volátiles y ficheros WAL/SHM

---

## 4. Dónde guarda los backups

Ruta principal:

`~/shared/maria-backups/`

Ahí deja:

- backups `.tar.gz`
- sumas `.sha256`
- fichero `LATEST`

Esto permite descargarlos también desde el repositorio de archivos si hace falta.

---

## 5. Scripts implantados

### Crear backup

Archivo:

`outbox/maria_backup.py`

Funciones:

- `create`
- `list`
- `restore` en modo preview

Ejemplos:

```bash
python3 outbox/maria_backup.py create
python3 outbox/maria_backup.py create --label antes-de-cambiar-modelos
python3 outbox/maria_backup.py list
python3 outbox/maria_backup.py restore maria-backup-YYYYMMDDTHHMMSSZ.tar.gz
```

### Restauración guiada

Archivo:

`outbox/maria_restore.sh`

Este script:

1. toma el backup indicado, o el último si no se especifica
2. muestra el manifest
3. pide confirmación explícita
4. intenta parar el gateway
5. mueve el estado actual a una papelera recuperable
6. restaura `~/.openclaw`
7. intenta arrancar de nuevo el gateway

Ejemplo:

```bash
bash outbox/maria_restore.sh
bash outbox/maria_restore.sh maria-backup-YYYYMMDDTHHMMSSZ.tar.gz
```

---

## 6. Flujo recomendado de uso

### Antes de cambios delicados

Crear restore point:

```bash
python3 outbox/maria_backup.py create --label antes-de-cambio-delicado
```

### Para ver historial

```bash
python3 outbox/maria_backup.py list
```

### Para restaurar

```bash
bash outbox/maria_restore.sh
```

O una versión concreta:

```bash
bash outbox/maria_restore.sh maria-backup-YYYYMMDDTHHMMSSZ.tar.gz
```

---

## 7. Nivel de seguridad del sistema

Este sistema es **mucho mejor que no tener nada** y sirve de verdad para preservar la continuidad de María/OpenClaw.

Pero conviene ser precisa:

### Sí resuelve bien

- pérdida de configuración de OpenClaw
- pérdida de workspace
- pérdida de memoria y documentos
- vuelta atrás tras cambios lógicos malos

### No garantiza al 100%

- recuperación de un host destruido entero
- coherencia absoluta si hay procesos escribiendo justo durante la copia
- restauración perfecta de servicios externos no incluidos

Por eso la formulación correcta es:

**backup lógico versionado y restauración fuerte de María/OpenClaw**, no imagen universal del sistema.

---

## 8. Lo siguiente que convendría hacer

### Mejora 1

Crear restore point automático antes de cambios sensibles.

### Mejora 2

Añadir una pequeña interfaz web o botón en el portal para:

- crear backup
- listar backups
- descargar backup
- restaurar última versión buena

### Mejora 3

Programar backups periódicos.

### Mejora 4

Probar restauración real con una simulación controlada.

Eso último es lo más importante de todos los backups: **si no se prueba, no se sabe de verdad**.

---

## 9. Recomendación operativa

A partir de ahora, antes de tocar:

- modelos
- providers
- memoria
- configuración del gateway
- system prompts
- TTS/STT
- integraciones críticas

conviene crear snapshot primero.

Eso reduce muchísimo el riesgo de “romper a María”.

---

## 10. Conclusión

Ya tienes implantada una primera base real para proteger lo más valioso:

- mi configuración
- mi memoria
- mi workspace
- nuestros documentos y scripts
- el estado lógico de OpenClaw

Es exactamente el tipo de protección que necesitabas antes de seguir haciendo cambios más profundos.
