Como instalar o Nginx Proxy Manager com Docker

O Nginx Proxy Manager é uma solução simples e eficiente para gerenciar proxies reversos. Ele oferece uma interface gráfica fácil de usar, com suporte integrado para certificados SSL via Let’s Encrypt. Com o uso do Docker, a instalação é simplificada e pode ser feita em poucos passos.

Neste artigo, você aprenderá como instalar o Nginx Proxy Manager utilizando Docker e Docker Compose, além de configurar as credenciais padrão de acesso à interface.


Pré-requisitos

Antes de começar, certifique-se de ter os seguintes itens instalados e configurados no seu servidor:


Configuração do Docker Compose

Nota – Neste exemplo vamos usar a diretoria /data para criar os nossos containers de docker

1. Criar o arquivo docker-compose.yml

Crie a diretoria /data/nginx-proxy-manager para o projeto e navegue até lá:

mkdir /data
cd /data
mkdir nginx-proxy-manager
cd nginx-proxy-manager

2. Criar as diretorias para a persistência dos dados

Para garantir que os dados do Nginx Proxy Manager sejam persistentes (não perdidos após reiniciar os containers), crie as diretorias necessários:

mkdir -p /data/nginx-proxy-manager/data
mkdir -p /data/nginx-proxy-manager/letsencrypt
mkdir -p /data/nginx-proxy-manager/mysql/data/mysql

3. Criar o ficheiro de instalação / configuração

Crie o ficheiro docker-compose.yml com o seguinte conteúdo:

version: '3'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    environment:
      DB_MYSQL_HOST: "db"
      DB_MYSQL_PORT: [PORTA MYSQL]
      DB_MYSQL_USER: "[UTILIZADOR MYSQL]"
      DB_MYSQL_PASSWORD: "[PASSWORD MYSQL]"
      DB_MYSQL_NAME: "[NOME BASE DE DADOS]"
    volumes:
      - [DIRETORIA LOCAL DE DATA]:/data
      - [DIRETORIA LOCAL DE LETSENCRYPT]:/etc/letsencrypt
  db:
    image: 'jc21/mariadb-aria:latest'
    environment:
      MYSQL_ROOT_PASSWORD: '[PASSWORD DE ROOT DO MYSQL]'
      MYSQL_DATABASE: '[NOME BASE DE DADOS]'
      MYSQL_USER: '[UTILIZADOR MYSQL]'
      MYSQL_PASSWORD: '[PASSWORD MYSQL]'
    volumes:
      - [DIRETORIA LOCAL DO MYSQL]:/var/lib/mysql

Importante: Os dados sensíveis como senhas e nomes de utilizadores podem ser configurados num ficheiro ou carregados por variáveis de sistema para maior segurança. A seguir damos o exemplo de um ficheiro de configuração.

version: '3'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    environment:
      DB_MYSQL_HOST: "db"
      DB_MYSQL_PORT: 3306
      DB_MYSQL_USER: "mpadmin_npm"
      DB_MYSQL_PASSWORD: "3O5LVulUQtwRFDXm8kiu"
      DB_MYSQL_NAME: "npm_db"
    volumes:
      - /data/nginxproxymanager/data:/data
      - /data/nginxproxymanager/letsencrypt:/etc/letsencrypt
  db:
    image: 'jc21/mariadb-aria:latest'
    environment:
      MYSQL_ROOT_PASSWORD: 'FMO4IG9nDBkJw1ccslHg'
      MYSQL_DATABASE: 'npm_db'
      MYSQL_USER: 'mpadmin_npm'
      MYSQL_PASSWORD: '3O5LVulUQtwRFDXm8kiu'
    volumes:
      - /data/nginxproxymanager/mysql/data/mysql:/var/lib/mysql

Iniciar o Nginx Proxy Manager

Com o ficheiro docker-compose.yml configurado e as diretorias criadas, inicie o Nginx Proxy Manager:

docker-compose up -d
  • O parâmetro -d garante que os containers sejam executados em segundo plano.
  • O Docker Compose cria e inicia dois serviços:
    • A base de dados MariaDB.
    • O serviço Nginx Proxy Manager.

Aceder o Painel de Administração

Após os containers estarem em execução, aceda ao painel de administração do Nginx Proxy Manager no seu browser, utilizando o IP do servidor e a porta 81:

http://[IP_DO_SERVIDOR]:81

Credenciais padrão

  • Utilizador: admin@example.com
  • Password: changeme

Por questões de segurança, altere essas credenciais imediatamente após o primeiro login.


Configurar o Nginx Proxy Manager

Após aceder ao painel, você pode começar a configurar os proxies reversos para os seus serviços. Algumas das funcionalidades incluem:

  • Configuração de proxies reversos: Direcione os seus domínios para serviços internos de uma forma fácil.
  • Certificados SSL automáticos: Use a integração com o Let’s Encrypt para ativar HTTPS rapidamente.
  • Criar utilizadores: Configure os acessos de administração adicionais, caso necessário.

Conclusão

O Nginx Proxy Manager é uma excelente ferramenta para simplificar a criação de proxies reversos e certificados SSL, especialmente em ambientes que utilizam múltiplos serviços web. Com o suporte do Docker, a instalação é direta e eficiente.

Se você gostou deste guia, compartilhe-o com outros administradores de sistemas e deixe suas dúvidas ou sugestões nos comentários!

Pode fazer uma doação para ajudar a mater o site, Obrigado!