Qual sistema escolher
Para Docker, Node.js, sites e painéis, Ubuntu LTS ou Debian Stable são escolhas comuns. Windows Server é indicado quando o software exige .NET Framework, IIS, interface Windows ou RDP. Antes de instalar, confirme RAM, armazenamento, arquitetura e portas exigidas.
Preparação segura
apt update && apt full-upgrade -y
adduser operador
usermod -aG sudo operador
ufw allow OpenSSH
ufw enableCrie usuário administrativo, configure chave SSH e faça snapshot antes de mudanças grandes.
Docker e Compose
Use o repositório oficial do Docker e o plugin Compose atual. Evite scripts de conveniência em produção sem revisar o conteúdo.
sudo apt update
sudo apt install ca-certificates curl
# adicione o repositório oficial conforme sua distribuição
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now docker
sudo docker run hello-world
docker compose versionNode.js em produção
Instale uma versão LTS, use usuário sem privilégios e execute a aplicação como serviço. Nginx deve receber HTTP/HTTPS e encaminhar para a porta local.
node --version
npm ci --omit=dev
sudo systemctl enable --now minha-aplicacao
sudo journalctl -u minha-aplicacao -f
nginx -tNão use node app.js preso à sessão SSH.
MySQL ou MariaDB
sudo apt install mariadb-server -y
sudo systemctl enable --now mariadb
sudo mariadb-secure-installation
sudo mariadbCrie banco e usuário exclusivos por aplicação. Não exponha a porta 3306 para toda a internet; prefira acesso local, VPN ou túnel SSH. Automatize backups e teste restauração.
Painel Pterodactyl
O Pterodactyl separa o Panel, que é a interface web, do Wings, que executa servidores em contêineres. Planeje domínio, SSL, banco, Redis, cron, filas, Docker e portas dos jogos.
- Confira os requisitos da versão na documentação oficial.
- Instale dependências, banco e servidor web.
- Configure Panel, cron e queue worker.
- Instale Docker e Wings no nó.
- Cadastre localização, nó e allocations.
- Teste criação, console, arquivos e backup.
Nginx, domínio e HTTPS
sudo apt install nginx certbot python3-certbot-nginx -y
sudo nginx -t
sudo certbot --nginx -d app.exemplo.com
sudo certbot renew --dry-runO DNS precisa apontar para o VPS e as portas 80/443 devem estar acessíveis. Encaminhe para 127.0.0.1 sempre que o serviço não precisar ficar público diretamente.
Portas e diagnóstico
ss -tulpn
ufw status numbered
systemctl --failed
journalctl -p err -b
curl -I http://127.0.0.1:PORTA
dig +short app.exemplo.comTeste em ordem: DNS, rota, firewall, porta em escuta, serviço, proxy e aplicação. Evite reiniciar antes de coletar logs.
Atualização sem susto
- Leia notas da versão.
- Faça backup de dados e configuração.
- Teste em homologação.
- Defina janela e reversão.
- Atualize dependências e aplicação.
- Valide logs, saúde e funções críticas.
Em Docker Compose, fixe versões de imagem e revise volumes antes de executar docker compose pull e docker compose up -d.
Checklist final
- SSH por chave e acesso root restrito.
- Firewall ativo e portas documentadas.
- Serviços iniciando automaticamente.
- HTTPS e renovação testados.
- Banco sem exposição pública.
- Logs e alertas configurados.
- Backup externo com restauração testada.
- Responsável e procedimento de incidente definidos.