Small App on One VPS: Practical Handbook

Deploys que se pueden deshacer, backups que has restaurado y un simulacro de recuperación con cronómetro. Scripts que funcionan, no solo consejos.

Comprar en Polar: $29 Pago único · v0.2.0 · descarga inmediata con Polar

Portada de Small App on One VPS: Practical Handbook
Salida de una ejecución de pruebas real, no una maqueta.

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ñosDatos más grandes
Datos100k filas por base de datos, 200 x 100 KB de uploads2M filas por base de datos, 500 x 1 MB de uploads
Recuperación total con script29.8 s34.3 s
Instalación con apt24.1 s23.0 s
restic restore1.6 s3.3 s
pg_restore2.6 s4.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 aplica MemoryMax
  • 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

Obtener

Comprar en Polar: $29

Polar, como merchant of record, se ocupa del pago, los impuestos y las facturas. Al terminar la compra recibes un enlace de descarga.