Como Servir um Site com NGINX + Docker Compose no CasaOS (usando porta personalizada)

Você quer rodar um site estático no seu CasaOS usando NGINX com Docker Compose, mesmo que sua operadora bloqueie o IP público? Neste tutorial simples e direto, você vai aprender a fazer isso usando a porta 8280 e, se quiser, com Cloudflare Tunnel.


🚀 O que vamos fazer

  • Usar a imagem oficial nginx:alpine (leve e rápida)
  • Criar uma pasta local com seus arquivos HTML
  • Rodar tudo com Docker Compose
  • Acessar via http://<seu-ip>:8280

🧱 Estrutura de Pastas

Crie a pasta onde ficará seu projeto:

mkdir -p /DATA/AppData/nginx-alpine
cd /DATA/AppData/nginx-alpine

Crie seu index.html (ou copie seu site para lá) assim:

<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<img src="https://br.hobbytestlab.com/wp-content/uploads/2025/08/img_entrada_nginx_alpine.webp" />
<p>If you see this page, the nginx web server is successfully installed and working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

⚙️ docker-compose.yml completo

Salve esse conteúdo dentro da pasta como docker-compose.yml:

version: "3.8"

services:
nginx:
image: nginx:alpine
container_name: nginx-alpine
ports:
- "8280:80"
volumes:
- /DATA/AppData/nginx-alpine:/usr/share/nginx/html:ro
restart: unless-stopped

Esse compose:

  • Expõe a porta 8280 no seu IP local
  • Serve tudo da pasta /DATA/AppData/nginx-alpine
  • Reinicia automaticamente em caso de reboot

▶️ Iniciando o container

Execute no terminal:

cd /DATA/AppData/nginx-alpine
docker compose up -d

🌐 Acessando o site

Agora é só abrir no navegador:

http://<SEU_IP>:8280

Substitua <SEU_IP> pelo IP do seu dispositivo com CasaOS.


🔒 Integração com Cloudflare Tunnel (opcional)

Se a sua operadora bloqueia o IP público, você pode usar Cloudflare Tunnel para tornar seu site acessível via domínio, mesmo sem IP liberado.

Exemplo de config.yml do cloudflared:

tunnel: meu-tunel
credentials-file: /root/.cloudflared/meu-tunel.json

ingress:
- hostname: meusite.com
service: http://localhost:8280
- service: http_status:404

❓ FAQ

O que é nginx:alpine?
Uma versão super leve da imagem oficial do NGINX (~5MB), baseada em Alpine Linux. Ideal para servidores locais ou embedded.

Posso usar SSL com Cloudflare?
Sim! Cloudflare entrega HTTPS automaticamente, mesmo que o NGINX esteja servindo via HTTP.

Preciso expor a porta 80?
Não. No exemplo acima usamos a porta 8280, ideal para evitar conflitos com outros apps do CasaOS.

Funciona no Orange Pi ou Raspberry Pi?
Sim! Desde que o sistema suporte Docker (como Debian/Armbian), tudo funciona perfeitamente.


✅ Conclusão

Você agora tem um servidor web leve, rápido e confiável usando NGINX com Docker Compose no CasaOS. Ideal para sites estáticos, painéis locais ou servir arquivos pela rede — e totalmente compatível com Cloudflare Tunnel, mesmo se sua operadora bloquear seu IP!


💬 Gostou? Compartilhe!

Se esse tutorial te ajudou, compartilhe com outros usuários de CasaOS ou Orange Pi! E para mais dicas sobre automação, servidores e projetos DIY, continue acompanhando nosso site.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *


Rolar para cima