>> Tecnologia Eletrônica >  >> Casa Inteligente >> Vida Inteligente

Como Criar Seu Próprio Servidor Web (Home Server)

Hospedar seus próprios arquivos/sites em casa elimina custos de hospedagem compartilhada, mas exige hardware dedicado, conexão estável, IP público (ou DDNS) e conhecimento de segurança. Este guia cobre o essencial para um servidor Linux (Ubuntu Server / Debian) com Apache/Nginx.

Requisitos Mínimos

  • Hardware: CPU 2+ cores, 4–8 GB RAM, SSD 120 GB+ (SO) + HDD/SSD grande (dados). Pode ser PC antigo, Mini PC, Raspberry Pi 4 (4/8 GB) para sites leves.
  • Conexão: Banda larga estável, upload ≥ 10 Mbps (fibra ideal). IP público estático (raro em residencial) ou DDNS (DynDNS, No-IP, DuckDNS, Cloudflare Tunnel).
  • Energia: No-break (UPS) para proteger contra quedas e permitir desligamento seguro.
  • Roteador: Com suporte a Port Forwarding (NAT) e, idealmente, UPnP desativado.

Passo 1: Prepare o Hardware e SO

  1. Instale Ubuntu Server LTS (22.04/24.04) ou Debian Stable no SSD. Selecione OpenSSH Server na instalação.
  2. Atualize: sudo apt update && sudo apt upgrade -y.
  3. Configure IP estático na LAN (netplan / /etc/network/interfaces) ou reserve DHCP no roteador pelo MAC.

Passo 2: Instale o Servidor Web

Nginx (recomendado, leve, alto desempenho):

sudo apt install nginx -y
sudo systemctl enable --now nginx

Apache (compatibilidade ampla, .htaccess):

sudo apt install apache2 -y
sudo systemctl enable --now apache2

Passo 3: Configure Firewall (UFW)

sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'   # ou 'Apache Full'
sudo ufw enable

Passo 4: Aponte o Domínio (DNS + DDNS)

  • No registrador do domínio: crie registro A @ → IP público (se estático) ou CNAME @ → seu-DDNS.duckdns.org.
  • Se IP dinâmico: instale cliente DDNS (ddclient, cloudflared para Cloudflare Tunnel — recomendado, não precisa abrir portas no roteador).

Passo 5: Crie Virtual Host (Nginx Exemplo)

sudo nano /etc/nginx/sites-available/meusite.conf

Conteúdo básico:

server {
    listen 80;
    server_name meusite.com www.meusite.com;
    root /var/www/meusite;
    index index.html index.php;

    location / {
        try_files $uri $uri/ =404;
    }

    # PHP (se necessário)
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;
    }
}

Ative: sudo ln -s /etc/nginx/sites-available/meusite.conf /etc/nginx/sites-enabled/ > sudo nginx -t && sudo systemctl reload nginx.

Passo 6: HTTPS Grátis com Let's Encrypt (Certbot)

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d meusite.com -d www.meusite.com

Renovação automática via timer systemd.

Passo 7: Teste e Monitore

  • Acesse https://meusite.com e https://meusite.com de fora da rede (use 4G/5G do celular).
  • Monitore: htop, ncdu, journalctl -u nginx, fail2ban para bloquear brute-force SSH/Web.

Aviso Importante

Expor servidor na internet traz riscos: ataques DDoS, exploração de vulnerabilidades, consumo de banda, responsabilidade legal por conteúdo. Mantenha SO e pacotes atualizados (unattended-upgrades), use fail2ban, chaves SSH (sem senha), backups automatizados (rsync, Borg, Restic) fora do local. Considere Cloudflare Tunnel (grátis) para ocultar IP real e ter WAF básico.