Small App on One VPS: Practical Handbook

Deploys que você consegue desfazer, backups que você já restaurou e um drill de recuperação cronometrado. Scripts que funcionam, não só conselhos.

Comprar na Polar: $29 Compra única · v0.2.0 · download imediato pela Polar

Capa de Small App on One VPS: Practical Handbook
Saída de uma execução real dos testes, não uma montagem.

O que você leva

Um handbook com scripts que você pode rodar, para quem publica um app Node ou Go (com SQLite ou Postgres) em um único servidor Debian ou Ubuntu e quer que ele aguente deploys, reboots e erros.

  • 15 capítulos curtos e um runbook de uma página para imprimir ("o site caiu" e "restaurar do backup").
  • 17 scripts aprovados no shellcheck: criar usuário, reforçar o sshd, firewall, atualizações de segurança automáticas, deploy com pasta de releases e rollback automático, rollback, backup com restic com dumps consistentes de SQLite e Postgres, drill de restauração, checagens de disco e de saúde, swap, auditoria de segredos, uma demonstração de migration e um drill de recuperação de desastre em Docker.
  • Templates de configuração: unit do systemd, Caddyfile, drop-in do sshd, limites do journald, logrotate, cron e arquivos de env.
  • Checklists para imprimir: primeiro dia, semanal, antes do deploy e antes de sair de uma VPS só.

Capítulos que a maioria dos guias pula: notas de produção para Postgres (o que o pg_dump entrega e o que não entrega), limites de log e de journald para que um disco cheio não derrube o servidor, memória, swap e o OOM killer, migrations expand/contract seguras para deploy, segredos em uma máquina só e critérios claros para saber quando sair de uma VPS única.

O drill de recuperação, com cronômetro

Um script monta um servidor de "produção" (app, SQLite, Postgres, uploads), faz backup dele com restic para um volume fora do servidor, destrói o servidor, reconstrói tudo em um container Debian limpo e confere se os dados estão intactos (contagem de linhas e um checksum sobre todos os uploads).

Poucos dadosMais dados
Dados100k linhas por banco, 200 x 100 KB de uploads2M linhas por banco, 500 x 1 MB de uploads
Recuperação total por script29.8 s34.3 s
Instalação via apt24.1 s23.0 s
restic restore1.6 s3.3 s
pg_restore2.6 s4.9 s

Uma execução de cada, em um notebook arm64 com Docker Desktop. A instalação dos pacotes variou de 21 s a 57 s entre as execuções, então os totais ficaram entre cerca de 27 s e 62 s. Criar um servidor de verdade no provedor e trocar o DNS não entram na conta.

O que foi verificado, e como

Cada script e cada capítulo rodou em containers Debian 12 limpos:

  • um sshd e um cliente ssh de verdade (o login por chave funciona; o login como root e por senha é recusado)
  • ufw, testado com tráfego real entre dois containers
  • systemd como PID 1: a unit é validada, reinicia depois de um kill -9, assume uma nova release depois da troca do symlink e aplica o MemoryMax
  • o pacote do Caddy no Debian fazendo proxy para o app e devolvendo 502 quando o app está parado
  • backups e restaurações com restic e PostgreSQL 15, incluindo os casos de falha (banco corrompido, senha errada, dumps desatualizados)
  • limites do journald e do logrotate, disco cheio, OOM kill, migrations em SQLite e Postgres

Um comando (verify/run.sh, exige Docker) refaz toda a verificação na sua máquina.

Escopo

Um servidor e um app. Sem autoscaling, sem Kubernetes, sem multirregião. Se você precisa disso, o último capítulo mostra como reconhecer a hora.

Perguntas frequentes

Em que formato vem?

Markdown, shell scripts e arquivos de configuração. Leia onde quiser e copie os comandos. Sem DRM de PDF e sem conta.

Serve só para Debian?

Os comandos são de Debian e Ubuntu, verificados no Debian 12.

Qual a diferença para o VPS Deploy & Backup Kit?

O kit é um pacote de scripts testados (deploys blue/green, backups, alertas). O handbook traz o conhecimento e os scripts em volta: preparar o servidor, systemd, HTTPS, logs, memória, migrations, segredos e o drill de recuperação. Os dois se sobrepõem no básico de deploy e backup.

Preciso de Docker?

Só para refazer a verificação. Os scripts em si rodam em um servidor comum.

Qual é a licença?

Uso nos seus próprios servidores e no seu time. Não revenda nem redistribua os arquivos.

Changelog

  • 0.2.0: capítulos 1 a 3 e 7 verificados em containers, drill de recuperação de desastre cronometrado, capítulos novos sobre Postgres, logs, memória, migrations, segredos e sair de uma VPS só, 17 scripts testados, runbook.
  • 0.1.0: primeira release.

Ler mais

Quero este

Comprar na Polar: $29

Pagamento, impostos e notas fiscais ficam com a Polar, que atua como merchant of record. Você recebe o link de download assim que concluir a compra.