Este diretório contém um exemplo de estrutura para rodar múltiplos projetos web (backend e frontend) utilizando Docker, Nginx e Traefik como proxy reverso. O objetivo é facilitar o desenvolvimento local de aplicações que simulam ambientes reais, com URLs personalizadas e serviços como MySQL e Redis.
- project1/ e project2/: Cada pasta representa um projeto independente, com backend (PHP), frontend (HTML/JS), banco de dados (MySQL) e cache (Redis).
- traefik/: Contém a configuração do Traefik, que atua como proxy reverso para rotear o tráfego entre os projetos.
- Traefik: Gerencia o roteamento das requisições HTTP para os containers corretos, usando regras baseadas no nome do host (ex:
api.project1.test,project1.test). - Nginx: Serve tanto o backend (PHP) quanto o frontend (arquivos estáticos) de cada projeto.
- Docker Compose: Orquestra todos os serviços, facilitando o start/stop dos ambientes com um único comando.
Configura o serviço Traefik, que escuta na porta 80 (HTTP) e 8080 (dashboard). Ele lê as regras dos containers Docker e direciona o tráfego conforme os domínios configurados.
Definem os serviços de cada projeto:
- php: Backend em PHP-FPM.
- nginx: Servidor web para o backend.
- nginx_frontend: Servidor web para o frontend.
- mysql: Banco de dados MySQL.
- redis: Cache Redis.
Cada serviço está conectado à rede web, compartilhada com o Traefik.
- nginx.conf: Configuração do backend (PHP).
- nginx.frontend.conf: Configuração do frontend (HTML/JS).
Após subir os containers, você poderá acessar os projetos pelos domínios locais:
- Backend:
http://api.project1.testehttp://api.project2.test - Frontend:
http://project1.testehttp://project2.test
- Certifique-se de ter Docker e Docker Compose instalados.
- Suba a rede compartilhada:
docker network create web
- Inicie o Traefik:
cd traefik docker-compose up -d - Inicie cada projeto:
cd project1 docker-compose up -d cd ../project2 docker-compose up -d
- Adicione os domínios ao seu arquivo
/etc/hosts:127.0.0.1 project1.test api.project1.test project2.test api.project2.test - Acesse os domínios no navegador.
- O Traefik Dashboard estará disponível em
http://localhost:8080. - Os logs dos serviços podem ser encontrados nas pastas
logs/de cada projeto. - Para adicionar novos projetos, basta seguir a mesma estrutura.