Esta é uma alternativa ao Traefik, que demanda mais tempo de estudo por não ter uma interface gráfica como o NPM.
A configuração do NPM é simples, permitindo configurar proxy, adicionar seu domínio e aplicar SSL com apenas alguns cliques.
Para qualquer modificação, atualização ou melhoria, sinta-se à vontade para retornar a esta página para revisar ou personalizar o código conforme desejar.
*Antes de prosseguir com este tutorial, é necessário ter o Docker instalado com portainer.
Caso você queira utilizar um REDE existente, poderá fazer sem problema.
Se ainda não criou uma rede para trabalhar com o NPM, poderá executar o comando abaixo no seu terminal.
docker network create --driver=overlay npm_public
Se você tem o Portainer instalado, poderá criar uma nova rede no menu Networks e não esquecendo de definir em seção Driver configuration em Driver como Overlay.
Adicione uma nova Stack, atribua um nome a ela e, em seguida, copie o arquivo abaixo para fazer o deploy diretamente no Portainer.
version: '3.8'
## -- APRENDA NA WEB -- ##
## Youtube.com/@aprendanawebbr ##
services:
app:
image: jc21/nginx-proxy-manager:latest
ports:
# Public HTTP Port
- "80:80"
# Public HTTPS Port
- "443:443"
# Admin Web Port
- "81:81"
networks:
- npm_public
volumes:
- npm_data:/data
- npm_letsencrypt:/etc/letsencrypt
deploy:
mode: replicated
replicas: 1
resources:
limits:
cpus: "0.1"
memory: 256M
placement:
constraints:
- node.role == manager
volumes:
npm_data:
external: true
npm_letsencrypt:
external: true
networks:
npm_public:
external: true
Nesta seção, todas as aplicações que precisarem de domínio utilizarão esta rede para que o NPM consiga ver sua aplicação e fazer o proxy corretamente.
networks:
- npm_public
Nesta seção, definimos as portas necessárias para o acesso HTTP, HTTPS e o Painel Admin do NPM.