Pular para o conteúdo

Numa VM, sem contêiner

A unidade systemd endurecida, o nginx na frente com TLS — e o que o Kiln não faz sozinho.

Nem todo serviço precisa de um cluster. Uma VM pequena com systemd e nginx atende a maioria dos projetos — e tem menos peças para quebrar. dataforge devops systemd e dataforge devops nginx escrevem as duas.

bash
dataforge devops systemd --usuario=loja
dataforge devops nginx --dominio=loja.exemplo.com

sudo useradd --system --home /srv/loja loja
sudo cp loja.service /etc/systemd/system/
sudo systemctl enable --now loja
sudo cp deploy/nginx.conf /etc/nginx/sites-enabled/loja
sudo certbot --nginx -d loja.exemplo.com

O endurecimento da unidade#

DiretivaO que ela contém
User= sem privilégioa aplicação comprometida não é root
NoNewPrivileges=truenem um binário setuid devolve o root
ProtectSystem=stricto sistema de arquivos inteiro é somente-leitura…
ReadWritePaths=/srv/app/dados…menos a pasta de dados, que é a única que ela escreve
ProtectHome / PrivateTmpas pastas dos usuários somem, e o /tmp é só dela
Restart=on-failurea queda às 3h volta sozinha, e o log diz por quê

Por que o nginx na frente#

O Kiln roda sobre o http.server do Python: não tem HTTP/2 nem TLS. Em produção pública, o nginx (ou Caddy) termina o TLS, serve os estáticos, limita o corpo e repassa para o Kiln em 127.0.0.1. O gerador já escreve o repasse de WebSocket e de SSE — sem os cabeçalhos de Upgrade, o tempo real para de funcionar atrás do proxy.

Volte para DevOps ou veja Observabilidade.