Este guia foi criado para ajudar desenvolvedores iniciantes a configurarem seus próprios servidores web de forma segura e eficiente. Os comandos estão organizados por tópicos e podem ser executados em sequência, eliminando a necessidade de conhecimento avançado em administração de servidores.
Stack: Nginx + PHP-FPM + SQLite
Sistema: Ubuntu 20.04 LTS, 22.04 LTS e 24.04 LTS
| Topico | Descricao |
|---|---|
| Instalacao | Instalacao completa da stack |
| Seguranca | Headers HTTP, blindagem PHP, SSH e Fail2Ban |
| Dominios | Virtual Hosts e certificados SSL |
| Git | Deploy e atualizacao de projetos |
| Backups | Backup manual e automatico com Cron |
| Performance | Swap, Gzip, cache e otimizacao OPcache |
| Monitoramento | Logs, recursos e status dos servicos |
| Utilitarios | Gerenciamento de sites e solucao de problemas |
- Servidor VPS com Ubuntu instalado
- Acesso SSH ao servidor
- Conhecimento basico de terminal Linux
- Clone, baixe ou somente deixe aberto este repositorio para consulta rápida
- Acesse o servidor via SSH
- Siga os comandos do arquivo Instalacao para configurar a stack
- Consulte os demais arquivos conforme necessidade
Importante: Execute os comandos na ordem apresentada. Sempre faca backup antes de alterar configuracoes do sistema.
Dica: Use Ctrl+F para localizar comandos especificos dentro dos arquivos.
Antes de iniciar, verifique as configuracoes de firewall no painel do seu provedor.
| Configuracao | Valor |
|---|---|
| Usuario padrao | ubuntu |
| Firewall | Security Group da instancia |
| Portas | 22 (SSH), 80 (HTTP), 443 (HTTPS) |
| Configuracao | Valor |
|---|---|
| Usuario padrao | Seu usuario do Google (use sudo) |
| Firewall | VPC Network > Firewall > Criar regra |
| Portas | tcp:80, tcp:443 com tag http-server |
| Configuracao | Valor |
|---|---|
| Usuario padrao | ubuntu ou opc (Oracle Linux) |
| Firewall Painel | Virtual Cloud Networks > Security Lists |
| Firewall Sistema | Requer liberacao manual do iptables |
Atencao: A Oracle bloqueia portas no iptables do sistema. Execute antes da instalacao:
sudo iptables -F && sudo netfilter-persistent saveEste comando limpa todas as regras de firewall. Use apenas em servidores novos.
| Configuracao | Valor |
|---|---|
| Usuario padrao | root |
| Firewall | Geralmente liberado por padrao |
| Nota | Comando sudo e opcional |
Servidor Web
- Nginx (servidor web de alta performance)
- PHP-FPM (interpretador PHP)
- Extensoes PHP: sqlite3, mbstring, xml, bcmath, gd, intl, curl, opcache, mysql, readline, gmp, redis
Banco de Dados
- SQLite3 (banco de dados leve e sem servidor separado)
Ferramentas
- Git, Unzip, Curl
Seguranca
- UFW (firewall simplificado)
- Fail2Ban (protecao contra forca bruta)
- Unattended-Upgrades (atualizacoes automaticas)
- Firewall bloqueando todas as portas exceto SSH, HTTP e HTTPS
- Rate limiting para prevenir ataques DDoS (15 req/s geral, 5 req/min login)
- Fail2Ban monitorando SSH e Nginx
- Permissoes seguras para arquivos web
- Virtual Host padrao em
/var/www/html
Contribuicoes sao bem-vindas. Para contribuir:
- Faca um fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/nova-feature) - Commit suas alteracoes (
git commit -m 'Adiciona nova feature') - Push para a branch (
git push origin feature/nova-feature) - Abra um Pull Request
Para reportar bugs ou sugerir melhorias, abra uma issue.
Este projeto esta licenciado sob a MIT License.