Instalar el agente
Un recolector de métricas en C++20 y un daemon de backups en Python, como servicio del sistema. Menos de 10 MB de RAM.
Requisitos
- Linux x86_64 o arm64 con systemd (Ubuntu 20.04+, Debian 11+, RHEL/Alma/Rocky 8+) o Windows Server 2019+.
- Python 3.11 o superior. Si hay
g++10+ disponible, el instalador compila el recolector nativo; si no, usa el recolector en Python. - Salida HTTPS (443) hacia
ganyant.comy*.r2.cloudflarestorage.com.
1. Generá una API key
En el panel, Servidores → Generar API key. La key se muestra una sola vez; guardamos solo su hash SHA-256.
2. Instalá
curl -fsSL https://ganyant.com/install.sh | sudo GANYANT_KEY=gyk_… shWindows, en PowerShell como administrador:
$env:GANYANT_KEY="gyk_…"; irm https://ganyant.com/install.ps1 | iexEl instalador crea el usuario de sistema ganyant, escribe /etc/ganyant/agent.toml con permisos 600 y registra el servicio ganyant-agent.
3. Configurá backups
Creá la tarea en el panel (qué, cada cuánto, cuánto retener) y definí en el servidor cómo acceder a los datos. Las credenciales de la base y la frase de cifrado nunca salen del servidor.
# /etc/ganyant/agent.toml
[vault]
passphrase = "env:GANYANT_VAULT_PASSPHRASE" # o la frase literal (archivo 600)
[backup.shop_prod]
kind = "postgres"
dsn = "postgresql://backup@127.0.0.1:5432/shop_prod"
[backup.uploads]
kind = "directory"
path = "/var/www/uploads"Cada snapshot: volcado → Zstd → XChaCha20-Poly1305 (clave de 256 bits derivada con Argon2id, salt aleatorio por snapshot) → hash BLAKE2b-256 → subida directa a Cloudflare R2 con una URL prefirmada de 15 minutos.
4. Restaurar
ganyant-agent restore shop_prod --at latest --to ./restore.sql
ganyant-agent restore uploads --at "2026-11-14 03:00" --to /srv/restore/También podés descargar el archivo cifrado desde el panel y descifrarlo en cualquier máquina con ganyant-agent decrypt archivo.gya --out archivo y tu frase.
Qué detecta el agente
| Señal | Umbral por defecto |
|---|---|
| Disco | Aviso al 80 %, crítico al 90 %, y predicción de llenado a 7 días |
| Fuerza bruta SSH | 20 fallos desde una IP en 5 minutos (auth.log / journald) |
| Fuerza bruta RDP | 20 eventos 4625 desde una IP en 5 minutos |
| Puerto nuevo en escucha | Cualquier socket público que no estaba en el inventario anterior |
| Tráfico anómalo | Más de 4 desvíos estándar sobre la media móvil de 1 h |
Desinstalar
sudo systemctl disable --now ganyant-agent && sudo rm -rf /opt/ganyant /etc/ganyant /etc/systemd/system/ganyant-agent.service