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.

🎯 O que vamos fazer?

  1. Criar uma rede para o Nginx Proxy Manager

Caso você queira utilizar um REDE existente, poderá fazer sem problema.

🌐 Criar Rede para NPM

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

🌐 Criação através do Portainer

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.

✏️ Stack do Portainer

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

🛜 Redes

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

🚪 Portas

Nesta seção, definimos as portas necessárias para o acesso HTTP, HTTPS e o Painel Admin do NPM.