Introdução
Configurar e gerenciar um ambiente self-hosted pode ser uma tarefa gratificante, especialmente quando você utiliza um Virtual Private Server (VPS) para hospedar suas aplicações. O Traefik, um proxy reverso moderno e balanceador de carga para microsserviços, pode simplificar suas necessidades de roteamento. Neste guia, vamos explorar como configurar o Traefik para gerenciar automaticamente os certificados SSL de todas as suas aplicações Docker em um VPS.
Configurando o Traefik no Seu VPS
Siga estes passos para colocar o Traefik em funcionamento no seu VPS.
Requisitos
- Um VPS (confira a nossa comparação completa de VPS)
- Docker e Docker Compose instalados no seu VPS
- Conhecimento básico de Docker e redes
Passo 1: Escolha do Provedor de VPS
Selecionar o provedor de VPS adequado impacta sua experiência de self-hosting. Aqui está uma comparação dos principais provedores:
| Provedor | Custo Mensal (EUR/USD) | Notas |
|---|---|---|
| Contabo VPS | 5,99 EUR | Boas opções de CPU e armazenamento |
| Hetzner Cloud | 4,15 EUR | Econômico com excelentes especificações |
| DigitalOcean | 6 USD | Amigável para desenvolvedores, regiões |
| Vultr | 6 USD | Opções flexíveis de cobrança |
| Linode | 5 USD | Ótimo suporte e comunidade |
Passo 2: Instalar Docker e Docker Compose
Para a maioria das distribuições Linux, você pode instalar o Docker e o Docker Compose com os seguintes comandos:
# Atualizar o índice de pacotes
sudo apt-get update
# Instalar Docker
sudo apt-get install -y docker.io
# Instalar Docker Compose
sudo apt-get install -y docker-compose
Passo 3: Configuração de Rede do Docker
Crie uma rede Docker para o Traefik e suas aplicações:
docker network create web
Passo 4: Configuração do Traefik
Para instalar o Traefik, crie um diretório para ele:
mkdir traefik && cd traefik
Agora crie um arquivo docker-compose.yml com o seguinte conteúdo:
version: '3.7'
services:
reverse_proxy:
image: traefik:v2.5
command:
- "--api.insecure=true"
- "--providers.docker=true"
- "--entrypoints.web.address=:80"
- "--entrypoints.web.http.redirections.entryPoint.to=websecure"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.myresolver.acme.tlschallenge=true"
- "--certificatesresolvers.myresolver.acme.email=seu-email@exemplo.com"
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
ports:
- "80:80"
- "443:443"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
- "./letsencrypt:/letsencrypt"
networks:
- web
networks:
web:
external: true
Certifique-se de substituir [email protected] pelo seu email real para notificações do Let’s Encrypt.
Passo 5: Iniciar o Traefik
Execute o comando abaixo para iniciar o Traefik:
docker-compose up -d
Você pode verificar se o Traefik está rodando acessando http://SEU_IP_VPS:8080, onde encontrará o painel do Traefik.
Passo 6: Implantando Aplicações Docker
Com o Traefik em execução, você pode implantar outras aplicações Docker usando labels para integrar com o Traefik para roteamento e SSL. Veja um exemplo de configuração de um aplicativo:
version: '3.7'
services:
my_app:
image: my_app_image
labels:
- "traefik.enable=true"
- "traefik.http.routers.my_app.rule=Host(`seu-dominio.com`)"
- "traefik.http.routers.my_app.entrypoints=websecure"
- "traefik.http.routers.my_app.tls=true"
- "traefik.http.routers.my_app.tls.certresolver=myresolver"
networks:
- web
Passo 7: Acessando Sua Aplicação
Com sua aplicação implantada, você pode acessá-la de forma segura via https://seu-dominio.com.
Perguntas Frequentes (FAQs)
E se minha aplicação não tiver um domínio ou subdomínio?
Utilizar o Traefik exige que você configure um domínio ou subdomínio para emissão de SSL através do Let’s Encrypt. Se você não possui um domínio, considere registrá-lo através de um registrar de domínios. Outra opção é usar um serviço de DNS dinâmico, que muitos provedores suportam, permitindo roteamento confiável sem um domínio estático.
Como o Traefik gerencia os certificados SSL?
O Traefik integra-se facilmente com o Let’s Encrypt, uma autoridade de certificação automática que emite certificados SSL gratuitamente. Ao configurar o Traefik com as configurações específicas no arquivo docker-compose.yml, ele solicita e renova seus certificados SSL automaticamente. Isso garante conexões seguras para suas aplicações Docker sem intervenção manual.
O Traefik é adequado para um ambiente de produção?
Sim, o Traefik é projetado para uso em produção, oferecendo gerenciamento de SSL transparente e suporte para arquitetura de microsserviços. Com recursos como balanceamento de carga, redirecionamento automático e um painel de fácil compreensão, é uma ferramenta poderosa para qualquer ambiente de produção. Empresas, desenvolvedores e entusiastas já usam o Traefik com sucesso em diversos ambientes self-hosted.
Conclusão
Usar o Traefik para automatizar o SSL de suas aplicações Docker em um VPS simplifica o gerenciamento, melhora a segurança e economiza tempo. Com a crescente importância do HTTPS, essa configuração é um investimento valioso para qualquer desenvolvedor ou entusiasta de home lab. Feliz self-hosting!