📋 Navegação Rápida
- Passo 1 — Servidor VPS
- Passo 2 — Acesso SSH (Bitvise)
- Passo 3 — Atualizar Sistema
- Passo 4 — Instalar Docker & Swarm
- Passo 5 — Rede do Portainer
- Passo 6 — Rede do Traefik
- Passo 7 — Criar Diretório
- Passo 8 — Stack do Portainer
- Passo 9 — Deploy do Portainer
- Passo 10 — Acessar o Portainer
- Passo 11 — Stack do Traefik
- Passo 12 — Configurar DNS
- Passo 13 — Deploy Final
- Configuração Cloudflare
Servidor VPS Linux
Antes de começarmos a configuração do Portainer.io no Docker Swarm, é essencial garantir um desempenho ótimo e tempo de resposta rápido.
Recomendamos contratar um servidor VPS Linux (Ubuntu ou Debian):
- Acesse: hostinger.com.br
- Sistema operacional recomendado: Ubuntu ou Debian
Configuração Cloudflare
1. Criar conta gratuita no Cloudflare
Acesse cloudflare.com, clique em Sign Up e preencha o formulário com seu e-mail e senha.
2. Cadastrar domínio no Registro.br
Acesse registro.br, faça login e selecione o domínio que deseja configurar. Abra a área de configurações DNS.
3. Apontar nameservers do Cloudflare para o Registro.br
- No Cloudflare, em Adicionar um site, insira seu domínio e clique em Adicionar site.
- Copie os dois nameservers fornecidos pelo Cloudflare.
- No Registro.br, substitua os nameservers padrão pelos do Cloudflare.
4. Criar registro tipo A para "manager"
- No Cloudflare, vá em DNS → Adicionar registro → Tipo A.
- Nome:
manager| Conteúdo: IP da sua VPS - Proxy: desativado (sem nuvem laranja) | TTL: Auto
5. Criar registro tipo CNAME para "portainer"
- No Cloudflare, Adicionar registro → Tipo CNAME.
- Nome:
portainer| Conteúdo:manager.seudominio.com.br - Proxy: desativado | TTL: Auto
Acesso SSH com Bitvise
Para acessar o terminal de comandos, utilizaremos o Bitvise SSH Client. Baixe em: Bitvise Client
Após instalar, configure o acesso com as informações abaixo:
- Host: seu IP do servidor
- Porta: 22
- Nome de usuário: root
- Método inicial: senha
- Senha: sua senha da VPS
- ☑ Armazenar senha criptografada no perfil
- ☑ Habilitar fallback de senha por teclado
- Elevação: Padrão
Atualizar o Sistema
Antes de qualquer instalação, atualize os pacotes da sua VPS:
sudo apt update sudo apt upgrade -y
Instalar Docker e Iniciar o Swarm
Instalação automática do Docker
curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh
Iniciar o Docker Swarm
IP_DO_SERVIDOR pelo endereço IP real da sua VPS.
docker swarm init --advertise-addr=IP_DO_SERVIDOR
Criar Rede para o Portainer
Crie a rede overlay que o Portainer utilizará internamente:
docker network create --driver=overlay agent_network
Criar Rede para o Traefik
Mesmo que o Traefik seja implantado depois dentro do Portainer, criamos a rede agora para simplificar a configuração:
docker network create --driver=overlay traefik_public
Criar Diretório do Portainer
Crie a pasta e o arquivo de configuração:
ls mkdir portainer ls cd portainer/ nano portainer.yaml
Stack do Portainer
Cole o conteúdo abaixo no arquivo portainer.yaml:
version: "3.8"
services:
agent:
image: portainer/agent:2.33.0
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /var/lib/docker/volumes:/var/lib/docker/volumes
networks:
- agent_network
deploy:
mode: global
placement:
constraints: [ node.platform.os == linux ]
portainer:
image: portainer/portainer-ce:2.33.0
command: -H tcp://tasks.agent:9001 --tlsskipverify
ports:
- 9000:9000
volumes:
- portainer_data:/data
networks:
- agent_network
- traefik_public
deploy:
mode: replicated
replicas: 1
placement:
constraints: [ node.role == manager ]
#labels:
#- "traefik.enable=true"
#- "traefik.docker.network=traefik_public"
#- "traefik.http.routers.portainer.rule=Host(`portainer.SEU_DOMINIO.com`)"
#- "traefik.http.routers.portainer.entrypoints=websecure"
#- "traefik.http.routers.portainer.priority=1"
#- "traefik.http.routers.portainer.tls.certresolver=le"
#- "traefik.http.routers.portainer.service=portainer"
#- "traefik.http.services.portainer.loadbalancer.server.port=9000"
networks:
traefik_public:
external: true
attachable: true
agent_network:
external: true
volumes:
portainer_data:
external: trueDeploy do Portainer
Implante a stack com o comando:
docker stack deploy -c portainer.yaml portainer
Acessar o Portainer
No navegador, acesse o endereço IP da sua VPS seguido de :9000:
http://SEU_IP:9000
Exemplo: http://7.161.218.7:9000
Na tela inicial, crie um nome de usuário e uma senha forte para configurar a conta de administrador.
↑ Voltar ao topoStack do Traefik
No Portainer, clique em Stacks no menu lateral e depois em + Add Stack.
[email protected] pelo seu e-mail real antes de fazer o deploy.
version: '3.8'
services:
traefik:
image: traefik:v2.11
command:
- --providers.docker=true
- --entrypoints.web.address=:80
- --entrypoints.websecure.address=:443
- --providers.docker.exposedbydefault=false
- --providers.docker.swarmMode=true
- --providers.docker.network=traefik_public
- --providers.docker.endpoint=unix:///var/run/docker.sock
- --certificatesresolvers.le.acme.httpchallenge.entrypoint=web
- [email protected]
- --certificatesresolvers.le.acme.storage=/letsencrypt/acme.json
- --certificatesresolvers.le.acme.tlschallenge=true
- --entrypoints.web.http.redirections.entryPoint.to=websecure
- --entrypoints.web.http.redirections.entryPoint.scheme=https
ports:
- "80:80"
- "443:443"
volumes:
- traefik_certificates:/letsencrypt
- "/var/run/docker.sock:/var/run/docker.sock:ro"
deploy:
mode: replicated
replicas: 1
placement:
constraints:
- node.role == manager
networks:
- traefik_public
volumes:
traefik_certificates:
external: true
name: certificados
networks:
traefik_public:
external: trueDesabilite o Enable access control e clique em Deploy the Stack.
↑ Voltar ao topoConfigurar DNS nas Labels
Volte ao terminal e edite o arquivo da stack do Portainer:
nano portainer.yaml
Na seção labels, siga estes passos:
- Remova o
#das linhas de labels para descomentar. - Exclua a linha com
traefik.docker.network=traefik_public(não é mais necessária). - Substitua
painel.SEU_DOMINIO.compelo seu domínio real. - Comente a linha da porta
9000adicionando#no início.
Deploy Final do Portainer
Reimplante a stack com o SSL e o domínio configurados:
docker stack deploy -c portainer.yaml portainer
Instalação Concluída!
Acesse seu Portainer com SSL ativo pelo domínio configurado.
Se ficou com alguma dúvida, deixe nos comentários!


