Do ZERO a PRODUÇÃO com APLICAÇÕES Utilizando DOCKER SWARM na HETZNER - Curso Completo 2024
HTML-код
- Опубликовано: 8 фев 2025
- Neste curso vou te mostrar do ZERO como montar sua estrutura com Docker no modo Swarm, para instalação do Portainer, Traefik, Evolution API, Postgres e Typebot completo e gratuito.
📝 MATERIAL DE APOIO: enweb.link/mat...
Hetzner: enweb.link/het...
-------------------------------------------------------------------
💡 COMANDO para INSTALAR Docker:
curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh
-------------------------------------------------------------------
A Hetnzer é a melhor opção com custo x beneficio no momento insuperável, vale a pena você tentar abrir sua conta nesta empresa e pagar pouco para ter excelente maquinas para suas aplicações.
🔎 Empresas de Cloud
Hetzner: enweb.link/het...
Digital Ocean: enweb.link/dig...
Vultr: enweb.link/vultr
18:35 - Portainer
28:06 - Traefik
43:40 - Firewall
53:50 - Evolution API
01:08:45 - Postgres
01:19:37 - Typebot
Normalmente não assisto o video até o final, mas vc é brabo kkk, parabéns meu brother. Faça um video de como trabalhar com worker, tipo separar o banco de dados e aplicação em servidores diferentes. Valeu e um forte abraço meste.
Raramente eu dou um like e comento um vídeo no RUclips, mas você merece! Parabéns pelo ótimo conteúdo, a forma didática e a generosidade!
Obrigado!
Muito obrigado 😃
salvou a pátria, comprei uns cursos pagos e achei chatao e burocratico, preferi estudar aqui com vc, bem direto ao ponto e detalhista,deu um mte de errinho aki no meio das configs,mas o gpt me ajudou bastante tb
Parabéns de mais pelo conteúdo, gigante! Vi 100% do vídeo e óbvio, deixei meu like e ganhou +1 inscrito
Tmj
Tutorial mais completo! Ninguém liga de falar sobre o firewall que é de suma importância.
Concordo !
Parabéns pelo excelente curso meu irmão, me ajudou bastante a entender melhor a ferramenta pela forma como você explica. Merece tudo de bom! Grande abraço.
Que bom que ajudou
Rafael, obrigado pelo otimo video feito, sempre acompanho a maioria das bem dizer aulas. Tenho aprendido bastante conceitos de docker aqui contigo e outros canais.
Vou mandar uma pizza pra ti. Vlw
Melhor que assiti até, ótima didática, muito bom mesmo
Vlw demais
Parabéns, Rafael! Excelente conteúdo e passado com muita didática. Sucesso amigo.
Cara! Obrigado pelo conteúdo, aprendi muita coisa com os teus tutorias! Mais um inscrito.
Conteúdo sensacional!!!
Eu não conhecia o canal ainda, foi um excelente surpresa. Obrigado por compartilhar esse conhecimento.
Eu que agradeço
Show de bola, didática perfeita com calma e muito bem explicado. Ganhou mais um inscrito e com certeza meu like!
Parabéns, Aprendi muita coisa nessa aula, agora só não vou conseguir instalar o N8N Rsrs
Aula Top que didática assim fica fácil ir até o fim
Didática perfeita, tas de parabéns
Eu assisti até o final e consegui subir todas as stacks perfeitamente
oi, como vc instalou o typebot. o meu deu erro no login. vc usou gmail ou com dominio prroprio?
Coloquei uma aplicação de teste pra rodar com banco de dados e tudo mais, seguindo os tutoriais do seu canal, parabéns man didadica muito boa.
Sucesso!
supreendente aprendi muito aqui nesse video.
Essa é a intenção
Muito boa a aula, e como instala o Mautic dentro do Portainer, tu tem aula sobre?
parabens garoto gostei bastante das suas palavras no final do vídeo
que video aula fantastica parabens ! obrigado por compartilha seu conhecimento
Muito bom conteudo, parabens! Explicação muito facil de entender
Excelente, vídeo!! Ajudou muito. Parabéns mesmo. Segui o passo a passo e nnão tive nenhum problema. Você tem algum conteúdo que ensina a como configurar o postgres em um volume da hetzner via portainer? Vi que são necessários alguns drivers...
Recomendo criar um usuário e desativar o acesso root, depois via esse novo usuário, fazer a instalação do docker engine, pois se instalado com acesso root, a api do docker fica exposta com grande possibilidade de ser atacado externamente, devido a engine ter acesso root. veja que assim que instala o script tem um mensagem explicando exatamente esse ponto na saída final do script.
Você comentou sobre Wordpress, poderia fazer um video mesmo sendo via linha de comando! e Também do RAbiitMQ
Farei em breve
o garoto é bom!
Valeu!
Obrigado!
parabens!.. didatica muito bom
Primeiramente agradece pelo vídeo bem explicado passo a passo.👏( A minha evolution deu um erro 404 page not found) alguém ai poder ajudar eu agradeço.
Valeu bastante pelo curso
topíssimo meu amigo, parabéns!
como colocaria um site que tem php e mysql, dá para fazer pelo docker?
Excelente Rafael!
Mais uma sugestão de aplicação para os seus vídeos... na mesma linha de solução do Hasura, tem o PostgREST.
Rafael, como podemos entrar em contato contigo para consultoria?
Para pelo trabalho! Ganhou mais um inscrito.
Muito obrigado
Top demais, parabens pelo trabalho. Faz um vídeo ensinando o deploy do Open Metadata (data catalog), salva a gente nessa. Grande abraço
Vc acaba de ganhar mais um inscrito. Gostei da calma e segurança que vc passa no vídeo. Mas para quem acaba de chegar nessa parte de terminal/docker esse site que vc usa pra copiar os comando faz muita falta. Não existe uma forma de compartilhar o site ou um txt com os comando mostrados no vídeo?
Obrigado pelo comentário. Os comando que são _bem simples,_ pausando o vídeo, poderá copiar para seu bloco de notas ou algo semelhante, mas entendo seu ponto que para quem ver pela primeira vez pode sentir essa dificuldade mesmo.
Parabéns! Conteúdo muito completo!
Gratidão
fala Rafael, bom dia, na parte do postgres, tu falou que replicas é só uma mesmo pq banco de dados não da pra criar mais replicas, pode explicar como isso funiona? tenho varias duvidas em relação a isso, caso eu queira escalar o banco? como eu faço? e no caso da stack eu tenho 4 works, posso ignorar no yaml o "constraints: - node.role == manager"? pra ele definir sozinho o local onde vai rodar o banco? e caso seja possivel, como ele se comportaria caso esse container morresse, ele seria criado em outro work? ou no mesmo? se fosse criado em outro work, como seria o comportamento em relação ao volume? muito obrigado pelos videos, teu conteúdo me ajuda bastante, sucesso ai.
Opa, obrigado pelo video! Esse guia de configuração você não poderia nos disponibilizar?
Obrigado pelo comentário, já estou disponibilizando tudo com o material de apoio. Meu guia não é diferente do que já venho entregando.
Ótimo conteúdo, um dos mais completo no RUclips... Estou com problema durante a instalação do Portainer, faço todo processo de instalação após o cadastro das senhas apresenta a mensagem abaixo:
"Your Portainer instance timed out for security purposes. To re-enable your Portainer instance, you will need to restart Portainer."
Já procurei no google algo relacionado e não encontrei... Alguém mais passou por esta situação que possa me dar uma direção.
Obrigado,
só reiniciar o portainer ou o servidor
como reinicio ? tenho que desligar o pc e fazer tudo de novo?
Parabens pelo conteúdo!!!!!
Top, Parabêns ...
Cara, parabéns pelo conteúdo foi o que me ajudou a instalar o portainer e docker, estava eu todo feliz, porém após instalar a Evolution o meu domínio do portainer saiu do ar e não voltou mais, o que será que pode ter acontecido?
Obrigado
Seguido o passo a passo, quando tive um problema, não abria a tela de cadastro do portainer, dai descobrir que na Hetzner tinha que liberar a porta 9000, fiz isso pelo Firewall, porém quando habilitei começou a dar time out. não encontrei nada falando do erro e olhando mais a fundo vi que habilitei a ipv6 e estava usando a porta 9000. com isso fui lá e removi a ipv6 e deu tudo certo!
Quem passar por isso esta ai a dica, coisa boba!
Bom dia amigo, eu passei por isso e não vi a tua interação... Aí terminei de cagar tudo... kkkk total falta de conhecimento... Como eu não tinha a menor ideia de como resolver, apaguei o server criado (Typebot) pra recomeçar novamente o processo. Criei novo server na Hetzner, mas pra minha surpresa o servidor criou com o mesmo IP, achei estranho, mas segui. Agora deu erro ao logar no PowerShell, poque o servido entendeu que era uma invasão ou movimentação suspeita. Frustração total. Abri chamado técnico na Hetzner.
onde eu vou no hetzner para remover a ipv6? estou com o msm erro no navegador
Parabéns pelo vídeo e trabalho! Acho que o material de apoio sobre Docker saiu, não encontrei.
Acabei de verificar, está normal.
Amigo, caso queira instalar outro typebot, outro chatwoot, na mesma VPS utilizando dominios diferentes, como eu poderia organizar ae no portainer?
Fala Mestre... é possível ter duas ou mais Environments dentro do mesmo Portainer/VPS ?
Para ficar mais organizado, gostaria de ter uma Environments para testes e outra oficial, ou ate mesmo separar por empresas.... seria possível clonar/duplicar ?
muito didatico, agora o material de apoio está diferente do código da aula, quem está iniciando complica muito 😊
teria como deixar as paginas pra gente copiar no notion?
Você não tem problema de autenticação do typebot com a Hetzner? Na minha instalação com eles não tem nada que faça autenticar. Nunca tive problema com as outras.
Boa noite, eu consigo fazer essas mesmas instalações, porem, ao inves do debian , fazer no ubuntu 20.04 ? Posso usar os mesmos comandos ?
parabens
teria como atualizar esse video baseando-se nas stacks do material, vi que tem conexões de mongodb que não esta no video. Obrigado.
Top. Uma dúvida. Depois que eu apliquei as regras de firewall, percebi que o acesso ao meu painel no portainer nos menus, ficaram mais lentos
Acho que é um problema da Hetzner, já aconteceu isso também comigo, eu só desabilitei e habilitei novamente. Talvez resolva seu problema.
tem stack para usar apache e php com traefik ?
Sua instância do Portainer expirou por motivos de segurança. Para reativar sua instância do Portainer, você precisará reiniciar o Portainer.
o meu da dando esse erro no navegador, nao sei oque fazer
onde está a lista desses comandos?
pq em material de apoio não tem esses de docker
muito bom!
top obrigado
Olá Rafael, excelente vídeo. Tenho uma consulta: depois de executar o comando “docker stack deploy -c portainer.yaml portainer” obtenho um erro como este: network “agent_network” is declared as external, but could not be found. You need to create a swarm-scoped network before the stack is deployed. Pode me ajudar a saber o que devo fazer? Obrigado
Olá, você precisa criar a rede "agent_network".
Eu criei esta rede com o comando docker network create --driver=overlay agent-network -> mmdnp4rn8yg4 agent-network overlay swarm
Se você criou dessa forma como em seu comentário, perceba que no seu caso o _"agent_network"_ tem um *traço* (-) em vez de *underline* (_). Coloque o nome exatamente como você criou.
O erro está em criar uma rede chamada agent-network e depois chamar a outra rede chamada agent_network
Obrigado Rafael 👍
Rafael bom dia. Tenho um servidor Hetzner que tenho um Wordpress no Aapanel. Tentei instalar o Docker com Portainer no entanto após configurar tudo ele não abriu a aplicação portainer no navegar, fica dando erro do SSL. Eu queria instalar seguindo seu tutorial, pq fiz por outro. Como eu faço pra resetar as instalações sem afetar meu Aapanel que já está instalado e funcionando? Obrigada. Excelente vídeo. Ganhou uma inscrita.
Olá tudo bem. Se eu bem entendi, você está instalando o docker no mesmo servidor do aaPanel. Sinceramente se for isso mesmo, você vai encontrar alguns problemas, porque essa porta *80* e *443* já está sendo utilizada no aaPanel.
O *Traefik* utiliza essas mesmas portas para lidar com as Requisição e SSL, com isso dá conflito e vc não conseguirá SSL para o portainer ou qualquer outra aplicação infelizmente.
Recomendo que utilize apenas o docker em um servidor separado e dedicado apenas para ele.
Obrigado pelo comentário e inscrição, e seja bem vinda ;)
@@aprendanawebbr Entendi, então o melhor mesmo é criar outro servidor ne? Acho que vou fazer isso. Pq nesse Aapanel so tenho meu site em wordpress.
Consegui instalar seguindo seu tutorial, no entanto para instalar a api da evolution apresenta essa mensagem já verifiquei tudo mas não sei do que se trata
services.evolution_api.environment.DATABASE_ENABLED must be a string, number or null
Olá, isso acontece porque valores _booleanos_ como *true* e *false* devem está dentro de aspa nesse modelo de variável.
Olá eu queria me inscrever como membro mas sou de portugal e não existe aqui o CEP. como resolver ?
O que diferencia usar ou não o Mínio?
Nenhuma, se não for utilizar para ficar armazenando arquivos.
Eu tenho uma duvida em relação ao traefik, de que forma é estabelecido que a renovação do certificado é automático ?
Caso tenha algum problema na remoção desse certificado, como deve ser procedimento de correção ?
Pelo que vi é renovado a cada 90 dias pelas regras do Let s Encrypt.
Gostaria de agradecer pelo conteúdo e conhecimento, estou terminando configuração segundo seus passos, porrm usei outro vídeo, para instalar mongod pra rodar com a evo api.
É automática essa renovação.
Problemas pode acontecer de fazer errado, e ele tentar aplicar o SSL e você acabar sendo bloqueado.
Sim, são 90 dias de certificado, mas sempre ele renova bem antes.
Agradeço pelo apoio e comentário, faz toda diferença!
Abraço!
Em 50:04, a porta 4789 não seria UDP ? nos docs da docker diz UDP.
Boa, acabou passando batido. Ótima observação.
Dá pra usar o N8N nessa estrutura também ?
Sim com certeza qualquer aplicação. Só sempre observe como anda os recursos do seu servidor.
Cara consegui seguir tudo certinho, porém meu typetbot não esta subindo, dizendo que o "DATABASE_URL" esta inválido, mas eu já revisei tudo e da a mesma coisa...chega até apresentar mensagem de "erro interno" e "500 internal server erro". Você teria alguma sugestão do que pode ser?
Boa tarde man!!!
Tenho 1 manager e 1 worker. Caso manager caia, o traefik buga. Pois os certificados ficam na máquina em q foi instalada. Como posso resolver isso?
Não tem muito o que fazer, não só o traefik mas seu manager que gerencia os containers. Você teria que ter outro manager, caso um venha cair.
@@aprendanawebbr manager backup?
Sim, ele entra em ação quando o manager principal cair.
Olha sinceramente nunca utilizei mais de um manager não. Seu manager só pode cair se você não dimensionar corretamente as aplicações. Utilizo outros servidores que nem em docker são, e muito raramente fica fora do ar.
Serviços da digital ocean, hetzner são muito bons.
@@aprendanawebbr tô usa do contabo. Já pipocou 2x 🥲 nem em produção tá ainda.
Está explicado, a contabo tem dessas.
Aqui, poderia me ajudar. Me inscrevi usando seu link foi falado que iria ganhar 20$, mas quando criei a conta e ela foi aprovada nao apareceu esses creditos.
em uma vps dessa com evolution posso rodar quantas instancias para o typebot sem da problema?
Typebot não aceita gmail... já tentei de tudo para estudos mas não funciona...
Amigo tem algum video aonde ensina a fazer o cadastro passo passo pq so novo nisso e preciso esta fazendo uma conta
Não tenho, mas sinceramente essa parte é a mais fácil. Você poderá encontrar vídeos no RUclips que explicam ou mostram apenas essa parte.
@@aprendanawebbr obrigado
Sabe se consigo usar o portainer o cyberpanel juntos?
Em teoria sim. nunca tentei por isso em prática, pois particularmente não vejo muito sentindo fazer isso.
Fala Rafael, me tira uma dúvida..
Porque criar duas redes (agent_networking e traefik_public)? Eu não poderia utilizar somente uma?
Pode sim, eu faço dessa forma para diferenciar e abrir possibilidades com docker. Sem problema nenhum deixar uma rede para tudo.
@@aprendanawebbr obrigado!
Não conseguir criar o portainer...
Depois do comando: nano portainer.yaml - faço tudo como no video, daí quando coloco o comando
docker stack deploy -c portainer.yaml portainer, a resposta que dá é essa abaixo
network "agent_network" is declared as external, but could not be found. You need to create a swarm-scoped network before the stack is deployed
Você precisa criar a rede *"agent_network"* se você criou com outro nome informe o nome correto, no material de apoio tem toda informação para rodar o portainer.
Poderia colocar o link pra instalar dos comandos para instalar o docker.
Adicionei na descrição o comando para instalar o docker. São apenas duas linhas.
Posterior a isso, fica fácil instalar o chatwoot e o n8n? Realizei essa mesma instalação a partir de outro tutorial e estou tendo dificuldades em instalar esses outros 2 serviços, penso em apagar meu server todo e começar de novo seguindo suas aulas.
Sim, essa base é pra levantar a sua estrutura, pode fazer qualquer instalação de aplicação.
O único detalhe é que tenha recursos do servidor pra rodar todas as aplicações.
tenho uma pergunda. Pq usar o traefik ao invés do Nginx Proxy Manager?
Qualquer um vai dar no mesmo resultado, estou usando como preferência o Traefik.
Quando chego na parte da evolução do código, ao adicionar o que você fornece e editar apenas as partes mencionadas, ao tentar salvar a stack, surge o seguinte erro: "services.evolution_api.environment.DATABASE_ENABLED" deve ser uma string, número ou nulo. Você poderia me ajudar a resolver isso?
O *true* ou *false* tem que estar dentro de aspas.
Olá amigo, parabéns pelo vídeo. Eu sou novo, não sou técnico de TI e segui os passos do vídeo, mas no meu caso deu erro ao abrir e testar o portainer no endereço meu-ip:9000< acusou que meu portainer estava inativo. Como eu não tinha a menor ideia de como resolver, apaguei o server criado (Typebot) pra recomeçar novamente o processo. Criei novo server na Hetzner, mas pra minha surpresa o servidor criou com o mesmo IP, achei estranho, mas segui. Agora deu erro ao logar no PowerShell, poque o servido entendeu que era uma invasão ou movimentação suspeita. Frustração total. Abri chamado técnico na Hetzner. Alguma sugestão que possa me ajudar?
Boa tarde. só reiniciar a vps. que vai liberar o acesso pra vc de novo.
olá! esta aparecendo, Muitas tentativas Tente novamente mais tarde type bot como resouver?
Estou com o mesmo erro
Desativei o traefik pelo portainer, agora não consigo mais acessar o portainer pelo link, como posso "ligar" a stack do traefik novamente sem acesso ao portainer?
É só acessar o portainer pela porta, assim como eu mostrei no inicio.
Erro de implantação
a rede "app_network" foi declarada como externa, mas não foi encontrada. Você precisa criar uma rede com escopo de enxame antes que a pilha seja implantada
Tem que criar a rede "app_network" na página de apoio tem toda informação sobre isso.
Infelizmente não consegui concluir, após o minuto 41 não funcionou mais o meu portainer n carrega.
Estou com o mesmo problema, tentei acessar direto pela porta tbm e não deu certo :(
rapaz no meu builder esta dando bad gateway o que poder ser? segui a risca linha a linha . typechat esta ok
Já respondi no seu outro comentário.
@@aprendanawebbrsim muito obrigado e mais uma vez desculpa incomodar .
outra duvida to fazendo na hetzner pq ja tenho outros servers la. porem ao tentar colcoar o email que coloquei na stack para envio do email magico ele nao envia. sera que tenho que fazer algo a mais?
Deve ser configuração do SMTP, ele só não envia caso você não tenha configurado corretamente.
@@aprendanawebbrvc diz la nos parametros da stack ne? estranho que coloquei igual ja tenho em outro server na hetzer que ta funconando mas vou revisar
não consegui enviar email, email da hostinger e não vai erro de auteticação
Não sei te dizer qual seria o problema. Deve ser configuração do seu provedor que deve esta alguma coisa errada.
cara na hora de enviar o email fica so rodando e noa vai fiz tudo certo abro tudo mas não envia o email ja troquei de gmail pro da hostgator mas ele nao envia
estou fazendo teste no smtp tolls e disparo mas dentro do type bot nao
Conseguiu resolver? Tem que ver o que pode ser.
ta dando erro time out. quando coloco o dominio o que pode ser?
Em que parte você está?
@@aprendanawebbr consegui resolver.
Agora não tô conseguindo receber o email de confirmação do typeboot abri aquela primeira tela de acesso mais só fica em loop.
Configurou o STMP certinho?
@@aprendanawebbrtroquei a portar funcionou 👏👏👏
na real deu problema atras ade problema e deletei tudo,vou testar em outro tutorial mais simples via nginx
Tranquilo.
DNS_PROBE_FINISHED_NXDOM o meu deu erro no subdominio