Passo 1
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
Configuração Cloudflare
Passo a passo para configurar o Cloudflare:
1. Criação de uma conta gratuita no Cloudflare:
– Acesse o site do Cloudflare (https://www.cloudflare.com/) e clique em “Sign Up” ou “Get Started” para criar uma conta gratuita.
– Preencha o formulário de inscrição com seu endereço de e-mail e uma senha segura.
2. Cadastro do domínio no Registro.br:
– Acesse o site do Registro.br (https://registro.br/) e faça login na sua conta.
– Selecione o domínio que deseja configurar e acesse a área de configurações DNS.
3. Aponte os nameservers (DNS) da Cloudflare para o Registro.br:
– No Cloudflare, na seção “Adicionar um site”, insira seu domínio e clique em “Adicionar site”.
– O Cloudflare fornecerá dois nameservers (por exemplo, “example.ns.cloudflare.com” e “example.ns.cloudflare.com”). Copie esses nameservers.
– No Registro.br, substitua os nameservers padrão pelos nameservers fornecidos pelo Cloudflare.
4. Criação do registro tipo A para “manager”:
– No Cloudflare, vá para a seção “DNS” do seu domínio.
– Clique em “Adicionar registro” e selecione “Tipo A”.
– No campo “Nome”, insira “manager” (ou o nome desejado).
– No campo “Conteúdo”, insira o endereço IP da sua VPS.
– Certifique-se de que a opção de proxy esteja desativada (sem nuvem laranja) e o TTL configurado como “Auto”.
– Clique em “Salvar”.
5. Criação do registro tipo CNAME para “portainer”:
– Ainda na seção “DNS” do Cloudflare, clique em “Adicionar registro” e escolha “Tipo CNAME”.
– No campo “Nome”, insira “portainer” (ou o nome desejado).
– No campo “Conteúdo”, insira o nome que você escolheu no registro tipo A, por exemplo, “manager.seudominio.com.br”.
– Certifique-se de que a opção de proxy esteja desativada (sem nuvem laranja) e o TTL configurado como “Auto”.
– Clique em “Salvar”.
Essas etapas devem ajudar a configurar seu domínio no Cloudflare conforme solicitado. Certifique-se de aguardar a propagação DNS após fazer essas alterações, pois pode levar algumas horas para que as alterações entrem em vigor em todo o mundo.



Passo 2
Para acessar o terminal de comandos, utilizaremos o Bitvise SSH Client.
Você pode baixá-lo em: Bitvise Client
Após a instalação, acessaremos o terminal com as seguintes informações:
– Host: <seu IP de servidor>
– Porta: 22
– Nome de usuário: root
– Método inicial: senha
– [x] Armazenar senha criptografada no perfil
– Senha: sua senha
– [x] Habilitar fallback de senha por teclado
– Elevação: Padrão

Passo 3
Atualizando o sistema
É importante você atualizar o sistema da sua VPS, para isso, vamos usar os comandos abaixo:
sudo apt update
sudo apt upgrade -y
Passo 4
Instalando Docker de forma automática
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
Instalando Docker Swarm
docker swarm init --advertise-addr=IP_DO_SERVIDOR
Comando:
Substitua IP_DO_SERVIDOR pelo seu IP
Passo 5
Criando Rede para Portainer
Caso ainda não tenha criado uma rede para utilizar com o Portainer, você pode executar o seguinte comando no seu terminal:
docker network create --driver=overlay agent_network
Passo 6
Criar uma rede Para o Traefik (Opcional)
Vamos seguir o padrão mencionado nos vídeos e começar configurando o Traefik. Aproveitando essa etapa, também podemos criar a rede necessária para o Traefik. Embora o Traefik seja implantado posteriormente dentro do Portainer, é útil criar sua rede desde o início para simplificar o processo e garantir uma configuração coesa.
docker network create --driver=overlay traefik_public
Passo 7
Criando diretório
Crie a pasta do Portainer, com o seguinte comando:
ls
mkdir portainer
Na sequência acesse a pasta com:
ls
cd portainer/
nano portainer.yaml
Passo 8
Stack do Portainer
Agora, você pode copiar o arquivo abaixo para iniciar o processo de implantação do Portainer.
version: "3.8"
services:
agent:
image: portainer/agent:2.20.1
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.20.1
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: true
Para salvar e fechar o arquivo .yaml
Precione Ctrl X, depois tecla Y e Enter
Passo 9
Deploy do Portainer
Utilize o comando abaixo para implantar a stack do Portainer usando o Docker Swarm:
docker stack deploy -c portainer.yaml portainer
Passo 10
Acessando o Portainer
Acesse a barra de endereços do seu navegador da internet e insira o endereço IP seguido de :9000
(por exemplo: 7.161.218.7:9000).
Em seguida, crie um nome de usuário e uma senha forte para configurar sua conta de administrador.

Passo 11
Configurando a Stack do Traefik
Clique em Stack no menu lateral e depois em + Add Stack no menu superior do lado direito.

ATENÇÂO! subistitua a linha 18 pelo [email protected]
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
#defina a mesma rede que você criou para o traefik
- --providers.docker.network=traefik_public
- --providers.docker.endpoint=unix:///var/run/docker.sock
# Config para SSL Lets Encrypt
# altere para seu e-mail
- --certificatesresolvers.le.acme.httpchallenge.entrypoint=web
- --certificatesresolvers.le.acme.email=seuemail@gmail.com
- --certificatesresolvers.le.acme.storage=/letsencrypt/acme.json
- --certificatesresolvers.le.acme.tlschallenge=true
# Global HTTP -> HTTPS
- --entrypoints.web.http.redirections.entryPoint.to=websecure
- --entrypoints.web.http.redirections.entryPoint.scheme=https
#- --api
#- --log.level=DEBUG
ports:
- "80:80"
#- "8080:8080" # porta do painel do traefik, caso queira ver todas as rotas.
- "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: true
Desabilete o “Enable access control” e clique em Actions (Deploy the Stack)
Passo 12
Configurando DNS
Volte no terminal e aplique o comando abaixo para entrar na Stack do Portainer novamente.

nano portainer.yaml
Para configurar adequadamente as labels no arquivo de configuração YAML, siga estas etapas:
- Navegue até a seção ‘labels’.
- Use a tecla de seta do teclado para descer até a linha que deseja modificar.
- Remova o caractere de comentário ‘#’ no início da linha para descomentar a configuração.
- Exclua a linha que contém ‘#- “traefik.docker.network=traefik_public”‘, pois não será mais necessária.
- Substitua ‘painel.SEU_DOMINIO.com’ pelo seu domínio real, onde ‘SEU_DOMINIO.com’ representa o seu próprio domínio.
- Comente a linha referente à porta 9000, adicionando o caractere ‘#’ no início da linha, para desativá-la.
O resultado final deve ser semelhante a este:


Para salvar e fechar o arquivo .yaml
Precione Ctrl X, depois tecla Y e Enter
Passo 13
Deploy do Portainer
Utilize o comando abaixo para implantar novamente a stack do Portainer:
docker stack deploy -c portainer.yaml portainer
#Parabéns
Instalação concluída com sucesso!
Se você chegou até aqui é só acessar seu Portainer com SSL instalado.
Gostou do conteúdo? Quer apoiar nosso trabalho?
Você pode fazer uma doação e nos ajudar a continuar criando conteúdo de qualidade. Acesse o link para ver as formas de pagamento disponíveis: https://www.asaas.com/c/io73sms6maiim7ud
Chave Pix: (15) 99855-8323