Qué incluye
Un manual con scripts que puedes ejecutar, para desarrolladores que publican una app Node o Go (con SQLite o Postgres) en un solo servidor Debian o Ubuntu y quieren que sobreviva a deploys, reinicios y errores.
- 15 capítulos breves y un runbook de una página para imprimir ("el sitio está caído" y "restaurar desde un backup").
- 17 scripts sin avisos de shellcheck: crear un usuario, endurecer sshd, firewall, actualizaciones de seguridad automáticas, deploy con carpetas de release y rollback automático, rollback, backup con restic con dumps consistentes de SQLite y Postgres, un simulacro de restauración, comprobaciones de disco y de salud, swap, una auditoría de secretos, una demo de migración y un simulacro de recuperación ante desastres basado en Docker.
- Plantillas de configuración: unidad de systemd, Caddyfile, drop-in de sshd, límites de journald, logrotate, cron y archivos env.
- Checklists para imprimir: primer día, semanal, antes de un deploy, antes de dejar un solo VPS.
Capítulos que la mayoría de las guías se saltan: notas de Postgres en producción (qué te da y qué no te da pg_dump), límites de logs y de journald para que un disco lleno no te tumbe el servicio, memoria, swap y el OOM killer, migraciones expand/contract aptas para deploy, secretos en una sola máquina y criterios claros para saber cuándo dejar un solo VPS.
El simulacro de recuperación, con cronómetro
Un script monta un servidor de "producción" (app, SQLite, Postgres, uploads), le hace backup con restic a un volumen fuera del servidor, destruye el servidor, lo reconstruye sobre un container Debian limpio y comprueba que los datos están intactos (número de filas y un checksum de todos los uploads).
| Datos pequeños | Datos más grandes | |
|---|---|---|
| Datos | 100k filas por base de datos, 200 x 100 KB de uploads | 2M filas por base de datos, 500 x 1 MB de uploads |
| Recuperación total con script | 29.8 s | 34.3 s |
Instalación con apt | 24.1 s | 23.0 s |
restic restore | 1.6 s | 3.3 s |
pg_restore | 2.6 s | 4.9 s |
Una ejecución de cada una, en un portátil arm64 con Docker Desktop. La instalación de paquetes varió entre 21 s y 57 s según la ejecución, así que los totales fueron de unos 27 s a unos 62 s. No se incluyen el aprovisionamiento de un servidor real en un proveedor ni el cambio de DNS.
Qué se verificó, y cómo
Cada script y cada capítulo se ejecutó en containers Debian 12 limpios:
- un sshd y un cliente ssh reales (el login con clave funciona; el de root y el de contraseña se rechazan)
- ufw, probado con tráfico real entre dos containers
- systemd como PID 1: la unidad se verifica, se reinicia tras un
kill -9, toma una nueva release al cambiar el symlink y aplicaMemoryMax - el paquete de Caddy de Debian haciendo de proxy hacia la app, y devolviendo 502 cuando la app está parada
- backups y restauraciones con restic y PostgreSQL 15, incluidos los casos de fallo (base de datos corrupta, contraseña equivocada, dumps obsoletos)
- límites de journald y logrotate, un disco lleno, un kill por OOM, migraciones en SQLite y Postgres
Un solo comando (verify/run.sh, requiere Docker) repite toda la verificación en tu máquina.
Alcance
Un servidor y una app. Sin autoscaling, sin Kubernetes, sin multirregión. Si necesitas algo de eso, el último capítulo te explica cómo reconocerlo.
Preguntas frecuentes
¿En qué formato viene?
Markdown, scripts de shell y archivos de configuración. Léelo donde quieras y copia los comandos. Sin DRM en PDF y sin cuenta.
¿Es solo para Debian?
Los comandos son de Debian y Ubuntu, verificados en Debian 12.
¿En qué se diferencia del VPS Deploy & Backup Kit?
El kit es un paquete de scripts probados (deploys blue/green, backups, alertas). El manual es el conocimiento y los scripts que lo rodean: configuración del servidor, systemd, HTTPS, logs, memoria, migraciones, secretos y el simulacro de recuperación. Coinciden en lo básico de deploy y backup.
¿Necesito Docker?
Solo para repetir la batería de verificación. Los scripts en sí corren en un servidor normal.
¿Qué licencia tiene?
Úsalo en tus propios servidores y en tu propio equipo. No lo revendas ni redistribuyas los archivos.
Historial de cambios
- 0.2.0: capítulos 1 a 3 y 7 verificados en containers, simulacro de recuperación ante desastres cronometrado, capítulos nuevos sobre Postgres, logs, memoria, migraciones, secretos y cuándo dejar un solo VPS, 17 scripts probados, runbook.
- 0.1.0: primera versión.
Leer más
- How to write a restore runbook you can follow at 3 a.m. (en inglés)
- systemd or pm2 for a small Node app on one VPS? (en inglés)
- SSH, ufw and fail2ban basics for a single VPS (en inglés)
- When a restore succeeds and hands you the wrong data (en inglés)
- Monitor one VPS without Prometheus, Grafana or a stack (en inglés)
- Find what filled your VPS disk and keep it from happening (en inglés)
- Harden a fresh Debian VPS in the first hour, step by step (en inglés)
- I destroyed my server on purpose and timed the recovery (en inglés)
- Caddy or nginx for a one-person VPS stack, compared (en inglés)
Obtener
Polar, como merchant of record, se ocupa del pago, los impuestos y las facturas. Al terminar la compra recibes un enlace de descarga.