This commit is contained in:
Dorivaldo Valentim
2024-05-02 13:50:11 +08:00
committed by GitHub
9 changed files with 586 additions and 0 deletions

View File

@@ -12,6 +12,11 @@ export default defineUserConfig({
title: "Nginx Proxy Manager", title: "Nginx Proxy Manager",
description: "Expose your services easily and securely", description: "Expose your services easily and securely",
}, },
"/pt/": {
lang: "pt",
title: "Nginx Proxy Manager",
description: "Exponha seus serviços de forma fácil e segura"
},
}, },
head: [ head: [
["link", { rel: "icon", href: "/icon.png" }], ["link", { rel: "icon", href: "/icon.png" }],
@@ -86,6 +91,58 @@ export default defineUserConfig({
}, },
], ],
}, },
},
'/pt/': {
label: 'Português',
selectLanguageText: 'Línguas',
selectLanguageName: 'Português',
editLinkText: 'Edite esta página no GitHub',
navbar: [
{ text: "Início", link: "/pt/inicio/" }
],
sidebar: {
'/': [
{
text: 'Página Inicial',
link: '/pt'
},
{
text: 'Guia',
link: '/pt/guia/',
collapsible: true,
},
{
link: '/pt/capturas/',
text: 'Capturas',
collapsible: true,
},
{
text: 'Início',
link: '/pt/inicio/',
collapsible: true,
},
{
text: 'Configurações Avançadas',
link: '/pt/configuracoes-avancadas/',
collapsible: true,
},
{
text: 'Actualizações',
link: '/pt/actualizacoes/',
collapsible: true,
},
{
text: 'Perguntas Frequentes',
link: '/pt/perguntas-frequentes/',
collapsible: true,
},
{
text: 'Aplicativos Terceiros',
link: '/pt/aplicativos-terceiros/',
collapsible: true,
},
],
},
} }
} }
}), }),
@@ -114,6 +171,9 @@ export default defineUserConfig({
'/': { '/': {
placeholder: 'Search', placeholder: 'Search',
}, },
'/pt/': {
placeholder: 'Pesquisar',
},
}, },
}), }),
], ],

39
docs/pt/README.md Normal file
View File

@@ -0,0 +1,39 @@
---
home: true
heroImage: /logo.png
actionText: Começar →
actionLink: /pt/guia/
footer: MIT Licensed | Copyright © 2016-present jc21.com
---
<div class="features">
<div class="feature">
<h2>Conecte-se</h2>
<p>
Exponha serviços da Web na sua rede &middot;
SSL gratuito com o Let's Encrypt &middot;
Projetado com a segurança em mente &middot;
Perfeito para redes domésticas
</p>
</div>
<div class="feature">
<h2>Proxy Hosts</h2>
<p>Exponha os serviços web da sua rede privada e conecte-se em qualquer lugar.</p>
</div>
<div class="feature">
<h2>UI atrativa</h2>
<p>Baseado no Tabler, é prazeroso usar a interface. Configurar um servidor nunca foi tão divertido assim.</p>
</div>
<div class="feature">
<h2>SSL Grátis</h2>
<p>O suporte integrado ao Let's Encrypt permite que você proteja seus serviços web sem nenhum custo. Os certificados até se renovam!</p>
</div>
<div class="feature">
<h2>Docker FTW</h2>
<p>Construído como uma imagem do Docker, o Nginx Proxy Manager requer apenas um banco de dados.</p>
</div>
<div class="feature">
<h2>Múltiplos Usuários</h2>
<p>Configure outros usuários para visualizar ou gerenciar seus próprios hosts. Permissões de acesso total estão disponíveis.</p>
</div>
</div>

View File

@@ -0,0 +1,10 @@
# Actualizações
```bash
docker-compose pull
docker-compose up -d
```
Este projecto irá actualizar automaticamente qualquer base de dados ou outros requisitos, então você não precisa seguir nenhum instrução maluca. Os comandos a cima irão baixar as últimas actualizações e recriar os containers docker.
Veja a [lista de releases](https://github.com/NginxProxyManager/nginx-proxy-manager/releases) para o passo-a-passo de actualização para cada release.

View File

@@ -0,0 +1,14 @@
# Aplicativos Terceiros
À medida que este software ganha popularidade é comum vê-lo integrado com outras plataformas. Esteja ciente de que, a menos que especificamente mencionado na documentação dessas integrações, elas *não são suportadas* por mim.
Integrações conhecidas:
- [HomeAssistant Hass.io plugin](https://github.com/hassio-addons/addon-nginx-proxy-manager)
- [UnRaid / Synology](https://github.com/jlesage/docker-nginx-proxy-manager)
- [Proxmox Scripts](https://github.com/ej52/proxmox-scripts/tree/main/lxc/nginx-proxy-manager)
- [nginxproxymanagerGraf](https://github.com/ma-karai/nginxproxymanagerGraf)
Se gostarias de ter a tua integração do Nginx Proxy Manager listada aqui, por favor, abra um [Github issue](https://github.com/jc21/nginx-proxy-manager/issues/new?assignees=&labels=enhancement&template=feature_request.md&title=)

View File

@@ -0,0 +1,12 @@
# Capturas
<img class="no-medium-zoom zooming" src="/screenshots/login.png" alt="Iniciar sessão" title="Iniciar sessão" width="200"/>
<img class="no-medium-zoom zooming" src="/screenshots/dashboard.png" alt="Painel Administrativo" title="Painel Administrativo" width="200"/>
<img class="no-medium-zoom zooming" src="/screenshots/proxy-hosts.png" alt="Proxy Hosts" title="Proxy Hosts" width="200"/>
<img class="no-medium-zoom zooming" src="/screenshots/proxy-hosts-add.png" alt="Adicionar Proxy Host" title="Adicionar Proxy Host" width="200"/>
<img class="no-medium-zoom zooming" src="/screenshots/redirection-hosts.png" alt="Redirecionamento de Hosts" title="Redirecionamento de Hosts" width="200"/>
<img class="no-medium-zoom zooming" src="/screenshots/dead-hosts.png" alt="404 Hosts" title="404 Hosts" width="200"/>
<img class="no-medium-zoom zooming" src="/screenshots/permissions.png" alt="Permissões de usuários" title="Permissões de usuários" width="200"/>
<img class="no-medium-zoom zooming" src="/screenshots/certificates.png" alt="Certificados" title="Certificados" width="200"/>
<img class="no-medium-zoom zooming" src="/screenshots/audit-log.png" alt="Auditoria de Log" title="Auditoria de Log" width="200"/>
<img class="no-medium-zoom zooming" src="/screenshots/custom-settings.png" alt="Configurações Personalizadas" title="Configurações Personalizadas" width="200"/>

View File

@@ -0,0 +1,184 @@
# Configurações Avançadas
## Rodando processos como usuário/grupo
Por padrão, os serviços (nginx etc) serão executados como usuário `root` dentro do container do docker.
Você pode alterar esse comportamento definindo as seguintes variáveis de ambiente.
Elas não apenas executarão os serviços como esse usuário/grupo, elas mudarão a propriedade
nas pastas `data` e `letsencrypt` na inicialização.
```yml
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
environment:
PUID: 1000
PGID: 1000
# ...
```
Isso pode fazer com que o container falhe ao inicializar em certos sistema, por falta de permissão para rodar a aplicação na porta 80. A única forma de resolver isso é remover as variáveis e rodar com o usuário root.
## Melhor prática: use uma rede Docker
Para aqueles que têm alguns de seus serviços a rodar em Docker no mesmo host que o Nginx Proxy Manager, aqui está um truque para garantir que as coisas fiquem um pouco melhor. Ao criar uma rede docker personalizada, você não precisa publicar portas para seus serviços em todas as interfaces do host do Docker.
Crie uma rede, por exemplo, "scoobydoo":
```bash
docker network create scoobydoo
```
Em seguida, adicione o seguinte ao arquivo `docker-compose.yml` para o Nginx Proxy Manager e qualquer outro serviço em execução neste host do Docker:
```yml
networks:
default:
external: true
name: scoobydoo
```
Vejamos o exemplo de um Portainer:
```yml
version: '3.8'
services:
portainer:
image: portainer/portainer
privileged: true
volumes:
- './data:/data'
- '/var/run/docker.sock:/var/run/docker.sock'
restart: unless-stopped
networks:
default:
external: true
name: scoobydoo
```
Agora, na UI do Nginx Proxy Manager, você pode criar um proxy host com `portainer` como o nome do host, e porta `9000` como a porta. Mesmo que esta porta não esteja listada no arquivo docker-compose, é "exposto" pela imagem do Portainer Docker para você e não está disponível em hosts do Docker fora desta rede. O nome do serviço é usado como o hostname, portanto, verifique se os nomes dos seus serviços são únicos ao usar a mesma rede.
## Docker Healthcheck
O `Dockerfile` que levanta este projeto não inclui um` healthcheck`, mas você pode optar por usar este recurso adicionando o seguinte ao serviço no seu `docker-compose.yml`:
```yml
healthcheck:
test: ["CMD", "/bin/check-health"]
interval: 10s
timeout: 3s
```
## Docker File Secrets
Esta imagem suporta o uso de Docker secrets para importação de arquivos e manter usernames ou senhas sensíveis a serem passados ou preservados em um simples plaintext.
Você pode definir qualquer variável de ambiente de um arquivo afixando `__FILE` (duplo-underscore FILE) ao nome da variável de ambiente.
```yml
version: '3.8'
secrets:
# Secrets são arquivos de texto de linha única, onde o único conteúdo é a secret
# Os caminhos neste exemplo assumem que as secrets são armazenadas em uma pasta local chamada ".secrets"
DB_ROOT_PWD:
file: .secrets/db_root_pwd.txt
MYSQL_PWD:
file: .secrets/mysql_pwd.txt
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
# Porta HTTP pública
- '80:80'
# Porta HTTPS pública
- '443:443'
# Porta da web do administrador
- '81:81'
environment:
# Estas são as configurações para conexão com a bd
DB_MYSQL_HOST: "db"
DB_MYSQL_PORT: 3306
DB_MYSQL_USER: "npm"
# DB_MYSQL_PASSWORD: "npm" # use secrets ao invés disso
DB_MYSQL_PASSWORD__FILE: /run/secrets/MYSQL_PWD
DB_MYSQL_NAME: "npm"
# Se preferir usar Sqlite, remova todas as linhas DB_MYSQL_* acima
# Descomente isto se IPv6 não estiver ativado em seu host
# DISABLE_IPV6: 'true'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
secrets:
- MYSQL_PWD
depends_on:
- db
db:
image: jc21/mariadb-aria
restart: unless-stopped
environment:
# MYSQL_ROOT_PASSWORD: "npm" # use secrets ao invés disso
MYSQL_ROOT_PASSWORD__FILE: /run/secrets/DB_ROOT_PWD
MYSQL_DATABASE: "npm"
MYSQL_USER: "npm"
# MYSQL_PASSWORD: "npm" # use secrets ao invés disso
MYSQL_PASSWORD__FILE: /run/secrets/MYSQL_PWD
volumes:
- ./data/mysql:/var/lib/mysql
secrets:
- DB_ROOT_PWD
- MYSQL_PWD
```
## Desabilitando o IPv6
Em alguns hosts Docker, o IPv6 não pode estar ativado. Nesses casos, a seguinte mensagem pode ser vista no log:
> Address family not supported by protocol
A forma mais fácil de resolver isso é adicionar uma variável de ambiente do docker à stack do Nginx Proxy Manager:
```yml
environment:
DISABLE_IPV6: 'true'
```
## Configurações personalizadas do NGINX
Se você é um usuário mais avançado, pode estar procurando pela personalização extra do NGINX.
O Nginx Proxy Manager tem a capacidade de incluir diferentes trechos de configuração personalizados em diferentes lugares.
Você pode adicionar seus arquivos de snippet de configuração personalizados em `/data/nginx/custom` como apresentado a seguir:
- `/data/nginx/custom/root.conf`: Incluído no final do nginx.conf
- `/data/nginx/custom/http_top.conf`: Incluído no topo do bloco HTTP principal
- `/data/nginx/custom/http.conf`: Incluído no final do bloco HTTP principal
- `/data/nginx/custom/events.conf`: Incluído no final do bloco de eventos
- `/data/nginx/custom/stream.conf`: Incluído no final do bloco de stream principal
- `/data/nginx/custom/server_proxy.conf`: Incluído no final de cada bloco de proxy do servidor
- `/data/nginx/custom/server_redirect.conf`: Incluído no final de cada bloco de redirecionamento do servidor
- `/data/nginx/custom/server_stream.conf`: Incluído no final de cada bloco de stream do servidor
- `/data/nginx/custom/server_stream_tcp.conf`: Incluído no final de cada bloco de TCP stream do servidor
- `/data/nginx/custom/server_stream_udp.conf`: Incluído no final de cada bloco de UDP stream do servidor
Cada arquivo é opcional.
## Header X-FRAME-OPTIONS
Você pode configurar o valor do header [`X-FRAME-OPTIONS`](https://developer.mozilla.org/pt-BR/docs/Web/HTTP/Headers/X-Frame-Options) especificando-o como uma variável de ambiente do Docker. O padrão, se não especificado é `deny`.
```yml
...
environment:
X_FRAME_OPTIONS: "sameorigin"
...
```

112
docs/pt/guia/README.md Normal file
View File

@@ -0,0 +1,112 @@
<p align="center">
<img src="https://nginxproxymanager.com/github.png">
<br><br>
<img src="https://img.shields.io/badge/version-2.10.4-green.svg?style=for-the-badge">
<a href="https://hub.docker.com/repository/docker/jc21/nginx-proxy-manager">
<img src="https://img.shields.io/docker/stars/jc21/nginx-proxy-manager.svg?style=for-the-badge">
</a>
<a href="https://hub.docker.com/repository/docker/jc21/nginx-proxy-manager">
<img src="https://img.shields.io/docker/pulls/jc21/nginx-proxy-manager.svg?style=for-the-badge">
</a>
</p>
Este projeto vem como uma imagem docker pré-criada que permite que você encaminhe facilmente para seus sites
executando em casa ou não, incluindo SSL grátis, sem ter que saber muito sobre Nginx ou Letsencrypt.
- [Configuração Rápida](#configuracao-rapida)
- [Configuração Completa](https://nginxproxymanager.com/pt/inicio)
- [Capturas](https://nginxproxymanager.com/pt/capturas)
## Objectivo do Projecto
Eu criei este projeto para preencher uma necessidade pessoal de fornecer aos usuários uma maneira fácil de realizar
proxy de hosts com terminação SSL e tinha que ser tão fácil que um macaco poderia fazê-lo. Este objetivo não mudou.
Embora possa haver opções avançadas, elas são opcionais e o projeto deve ser o mais simples possível
de modo que a barreira de entrada aqui é baixa.
<a href="https://www.buymeacoffee.com/jc21" target="_blank"><img src="http://public.jc21.com/github/by-me-a-coffee.png" alt="Buy Me A Coffee" style="height: 51px !important;width: 217px !important;" ></a>
## Funcionalidades
- UI atrativa e segura, baseada em [Tabler](https://tabler.github.io/)
- Crie facilmente domínios de encaminhamento, redirecionamentos, streams e hosts 404 sem saber nada sobre Nginx
- SSL grátis usando o Let's Encrypt ou forneça seu próprio certificado personalizado
- Listas de Acesso e autenticação HTTP básica para os seus hosts
- Configurações avançadas do Nginx disponíveis para super usuários
- Gestão de usuários, permissões e auditoria de log
## Hospedando sua rede doméstica
Não vou entrar em muitos detalhes aqui, mas aqui estão os princípios básicos para alguém novo neste mundo auto-hospedado.
1. Seu roteador doméstico terá uma seção de encaminhamento de porta em algum lugar. Acesse e encontre
2. Adicione o encaminhamento de porta para as portas 80 e 443 ao servidor que hospeda este projeto
3. Configure os detalhes do seu domínio para apontar para a home, seja com um ip estático ou um serviço como DuckDNS ou [Amazon Route53](https://github.com/jc21/route53-ddns)
4. Use o Nginx Proxy Manager como seu gateway para encaminhar para seus outros serviços baseados na web
## Configuração Rápida
1. Instale o Docker e o Docker-Compose
- [Documentação para a instalação do Docker](https://docs.docker.com/install/)
- [Documentação para a instalação do Docker-Compose](https://docs.docker.com/compose/install/)
2. Crie o arquivo `docker-compose.yml` semelhante a:
```yml
version: '3.8'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
```
Este é o mínimo de configuração obrigatória. Veja a [documentação](https://nginxproxymanager.com/pt/inicio/) para mais.
3. Levante a sua stack rodando:
```bash
docker-compose up -d
# Se estiver usando docker-compose-plugin
docker compose up -d
```
4. Faça login na Web UI de Admin
Quando o container do Docker estiver em execução, conecte-se a ele na porta `81` para a UI de Admin.
Às vezes isso pode demorar um pouco por causa da geração das chaves.
[http://127.0.0.1:81](http://127.0.0.1:81)
Usuário Admin padrão:
```
Email: admin@example.com
Senha: changeme
```
Logo após o login com este usuário padrão, você será solicitado a modificar seus dados e alterar sua senha.
## Contribuidores
Especiais agradecimentos a [todos os nossos contribuidores](https://github.com/NginxProxyManager/nginx-proxy-manager/graphs/contributors).
## Suporte
1. [Encontrou um bug?](https://github.com/NginxProxyManager/nginx-proxy-manager/issues)
2. [Discussões](https://github.com/NginxProxyManager/nginx-proxy-manager/discussions)
3. [Comunidade Gitter](https://gitter.im/nginx-proxy-manager/community)
4. [Reddit](https://reddit.com/r/nginxproxymanager)

133
docs/pt/inicio/README.md Normal file
View File

@@ -0,0 +1,133 @@
# Início
## Rodando a aplicação
Crie o arquivo `docker-compose.yml`:
```yml
version: '3.8'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
# Essas portas são no formato <porta-no-host>:<porta-no-container>
- '80:80' # Porta HTTP pública
- '443:443' # Porta HTTPS pública
- '81:81' # Porta da web do administrador
# Adicione qualquer outra porta que você deseja expor
# - '21:21' # FTP
# Descomente a próxima linha se você não declarar alguma coisa na seção
# environment:
# Descomente isso se você quiser mudar a localização do
# arquivo SQLite DB dentro do container
# DB_SQLITE_FILE: "/data/database.sqlite"
# Descomente isto se IPv6 não estiver ativado em seu host
# DISABLE_IPV6: 'true'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
```
Então, rode:
```bash
docker-compose up -d
```
## Usando o banco de dados MySQL / MariaDB
Se você optar pela configuração do MySQL, precisará fornecer o servidor de banco de dados. Você também pode usar o MariaDB. Aqui estão as versões mínimas suportadas:
- MySQL v5.7.8+
- MariaDB v10.2.7+
É fácil usar outro container docker para o seu banco de dados e vinculá-lo como parte da stack do Docker, e é isso que o seguinte exemplo mostra.
Aqui está um exemplo de como será o seu `docker-compose.yml` usando um container MariaDB
```yml
version: '3.8'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
# Essas portas são no formato <porta-no-host>:<porta-no-container>
- '80:80' # Porta HTTP pública
- '443:443' # Porta HTTPS pública
- '81:81' # Porta da web do administrador
# Adicione qualquer outra porta que você deseja expor
# - '21:21' # FTP
environment:
# Parâmetros de conexão MySQL/MariaDB:
DB_MYSQL_HOST: "db"
DB_MYSQL_PORT: 3306
DB_MYSQL_USER: "npm"
DB_MYSQL_PASSWORD: "npm"
DB_MYSQL_NAME: "npm"
# Descomente isto se IPv6 não estiver ativado em seu host
# DISABLE_IPV6: 'true'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
depends_on:
- db
db:
image: 'jc21/mariadb-aria:latest'
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: 'npm'
MYSQL_DATABASE: 'npm'
MYSQL_USER: 'npm'
MYSQL_PASSWORD: 'npm'
volumes:
- ./mysql:/var/lib/mysql
```
::: warning
Observe que as variáveis de ambiente `DB_MYSQL_*` terão precedência sobre as variáveis `DB_SQLITE_*`. Portanto, se você mantiver as variáveis MySQL, não poderá usar o SQLite.
:::
## Rodando em dispositivos Raspberry PI / ARM
As imagens do Docker suportam as seguintes arquiteturas:
- amd64
- arm64
- armv7
As imagens do Docker são um manifesto de todas as compilações do Docker de arquiteturas suportadas, então isso significa que você não precisa se preocupar em fazer nada de especial e pode seguir as instruções comuns acima.
Dê uma olhada nas [tags no dockerhub](https://hub.docker.com/r/jc21/nginx-proxy-manager/tags)
para uma lista de arquiteturas suportadas e se você quiser uma que não existe,
[crie um feature request](https://github.com/NginxProxyManager/nginx-proxy-manager/issues/new?assignees=&labels=enhancement&template=feature_request.md&title=).
Além disso, se você ainda não sabe, siga [este guia para instalar o docker e o docker-compose](https://manre-universe.net/how-to-run-docker-and-docker-compose-on-raspbian/)
em Raspbian.
Note que a imagem `jc21/mariadb-aria:latest` poderá apresentar alguns problemas em aguns dispositivos ARM, se você quiser separar o container do banco de dados, use a imagem `yobasystems/alpine-mariadb:latest`.
## Execução inicial
Depois que o aplicativo estiver a rodar pela primeira vez, o seguinte acontecerá:
1. As chaves GPG serão geradas e salvas na pasta data
2. O banco de dados inicializará com as tabelas estruturadas
3. Um usuário administrador padrão será criado
Esse processo pode levar alguns minutos, dependendo da sua máquina.
## Usuário do Administrador Padrão
```
Email: admin@example.com
Senha: changeme
```
Após o login com esse usuário padrão, você será solicitado a modificar seus detalhes e alterar sua senha...

View File

@@ -0,0 +1,22 @@
# Perguntas Frequentes
## Eu tenho que usar Docker?
Sim, é assim que o projecto foi montado.
Isso facilita o suporte ao projeto quando tenho controle sobre a versão do Nginx e do NodeJS que está sendo usada. No futuro, isso pode mudar se o back-end não estiver mais usando o NodeJS e sua longa lista de dependências.
## Posso rodar em Raspberry Pi?
Sim! A imagem do docker é multi-arquitetura e é construída para uma variedade de arquiteturas. Se a sua [não está listada](https://hub.docker.com/r/jc21/nginx-proxy-manager/tags) por favor, abra
[GitHub issue](https://github.com/jc21/nginx-proxy-manager/issues/new?assignees=&labels=enhancement&template=feature_request.md&title=).
## Não consigo que os meus serviços sejam proxies correctamente?
Sua melhor aposta é pedir ajuda [à comunidade do Reddit](https://www.reddit.com/r/nginxproxymanager/). Há segurança nos números.
O Gitter é melhor deixado para qualquer pessoa que contribua com o projeto para pedir ajuda sobre internos, revisões de código, etc.
## Ao adicionar o controle de acesso com username e senha a um proxy host, não consigo mais fazer login no aplicativo
Ter uma Lista de Controle de Acesso (ACL) com o username e senha exige que o navegador sempre envie esse username e senha no cabeçalho `Authorization` em cada solicitação. Se seu aplicativo proxy também exigir autenticação (como o próprio Nginx Proxy Manager), provavelmente o aplicativo também usará o cabeçalho `Authorization` para transmitir essas informações, pois esse é o cabeçalho padronizado destinado a esse tipo de informação. No entanto, ter vários do mesmo cabeçalhos não é permitido no [padrão da Internet](https://www.rfc-editor.org/rfc/rfc7230#section-3.2.2) e quase todos os aplicativos não oferecem suporte a vários valores no cabeçalho `Authorization`. Portanto, um dos dois logins será interrompido. Isso só pode ser corrigido removendo um dos logins ou alterando o aplicativo para usar outros cabeçalhos não padrão para autorização.