Instalação
Docker
Imagem: ghcr.io/wangwanjie/gately, disponível para amd64, arm64 e arm/v7.
docker run -d --name gately --network host --cap-add NET_ADMIN \
-v ./gately-data:/etc/gately \
-v /var/run/docker.sock:/var/run/docker.sock \
ghcr.io/wangwanjie/gately:latestDocker Compose
services:
gately:
image: ghcr.io/wangwanjie/gately:latest
container_name: gately
restart: unless-stopped
# Redirecionamento de portas, travessia STUN e serviços Web escutam diretamente nas portas do host
network_mode: host
# A Prevenção de intrusão grava os bloqueios no firewall do host (remova se não precisar)
cap_add:
- NET_ADMIN
volumes:
# Diretório de configuração (JSON em texto simples, pode ficar no git; o ssl.json contém chaves privadas de certificados)
- ./data:/etc/gately
# Gerenciamento do Docker (remova se não precisar)
- /var/run/docker.sock:/var/run/docker.sock
environment:
- TZ=Asia/Shanghai--cap-add NET_ADMIN e cap_add permitem que a Prevenção de intrusão grave os bloqueios no firewall nftables do host. Você pode removê-los; os bloqueios continuam valendo para os serviços do Gately.
A imagem inclui sh, bash e curl, então os scripts de notificação mais comuns funcionam sem ajustes.
Binário
- Obtenha o pacote da sua plataforma na página de download: Linux (amd64 / arm64 / arm / mips / mipsle / riscv64), macOS, Windows ou FreeBSD.
- Extraia e execute:
./gately -c /etc/gatelysystemd
O repositório traz um arquivo de serviço completo, deploy/systemd/gately.service, que já concede as capabilities necessárias para escutar em portas baixas:
sudo install -m 0755 gately /usr/local/bin/gately
sudo install -m 0644 gately.service /etc/systemd/system/gately.service
sudo systemctl daemon-reload && sudo systemctl enable --now gatelyOpenWrt
Cada versão inclui pacotes para OpenWrt com o binário, o script de inicialização procd e uma regra que mantém a sua configuração nas atualizações de firmware:
- OpenWrt 24.10 e anteriores (incluindo o iStoreOS e outros firmwares baseados na 24.10) usam o
.ipk, instalado comopkg install; - OpenWrt 25.12 e posteriores usam o
.apk, instalado comapk add --allow-untrusted(os pacotes não têm assinatura, por isso o--allow-untrustedé obrigatório).
Execute grep DISTRIB_ARCH /etc/openwrt_release para descobrir a arquitetura do dispositivo e escolha o pacote no grupo OpenWrt da página de download:
| DISTRIB_ARCH | Pacote |
|---|---|
x86_64 | gately_<versão>_openwrt_amd64 |
aarch64_* | gately_<versão>_openwrt_arm64 |
arm_cortex-a*_* (ARMv7 com VFP / NEON) | gately_<versão>_openwrt_arm |
mipsel_* | gately_<versão>_openwrt_mipsle |
mips_* | gately_<versão>_openwrt_mips |
riscv64_* | gately_<versão>_openwrt_riscv64 |
cd /tmp
# OpenWrt 24.10 / iStoreOS (exemplo com x86_64)
opkg install ./gately_<versão>_openwrt_amd64.ipk
# OpenWrt 25.12
apk add --allow-untrusted ./gately_<versão>_openwrt_amd64.apk- O serviço é ativado na inicialização e iniciado logo após a instalação; a interface de administração fica em
http://<endereço do roteador>:16680. A configuração fica em/etc/gatelye é mantida nas atualizações de firmware (sysupgrade); - Atualização: baixe o pacote mais novo e execute
opkg installouapk add --allow-untrustedde novo; a sua configuração é mantida. Se você desativou o serviço na inicialização, ele continua desativado após a atualização; - Desinstalação:
opkg remove gatelyouapk del gately. O diretório de configuração é mantido; executerm -rf /etc/gatelypara removê-lo também; - A arquitetura do dispositivo é verificada antes da instalação. O opkg interrompe a instalação quando a arquitetura não corresponde; o apk do OpenWrt 25.12 instala o pacote mesmo assim, mas deixa o serviço parado, então execute
apk del gatelye instale o pacote correto; - O binário tem cerca de 32 MB e precisa do mesmo espaço livre (confira com
df -h /overlay), o que atende soft routers x86, boxes ARM64 e outros dispositivos com bastante armazenamento; roteadores com 16 MB / 32 MB de flash são pequenos demais; - O pacote arm requer ARMv7 com ponto flutuante por hardware. Dispositivos ARMv5 / ARMv6 e núcleos sem FPU, como o
arm_cortex-a9, ainda não são compatíveis.
Você também pode implantar manualmente: baixe o arquivo compactado para Linux e use o script de inicialização procd deploy/openwrt/gately.init:
cp gately /usr/bin/gately && chmod +x /usr/bin/gately
cp gately.init /etc/init.d/gately && chmod +x /etc/init.d/gately
/etc/init.d/gately enable && /etc/init.d/gately startAplicativo nativo para fnOS
Cada versão inclui pacotes offline para o fnOS: gately_<versão>_fnos_x86.fpk (Intel / AMD) e gately_<versão>_fnos_arm.fpk (ARM). Eles não estão na Central de aplicativos oficial, então instale-os manualmente:
- Baixe o
.fpkcorrespondente à arquitetura do seu dispositivo na página de download; - No fnOS, abra "Central de aplicativos → Instalação manual" (o botão no canto inferior esquerdo), escolha o arquivo e conclua o assistente;
- Clique no ícone do Gately na área de trabalho do fnOS para abrir a interface de administração.
Integrado ao gateway unificado do fnOS
O ícone da área de trabalho abre a interface de administração pelo gateway unificado do fnOS, em /app/gately/ no endereço que você usa para o fnOS, compartilhando o mesmo ponto de entrada. Tanto o endereço da rede local quanto o seu domínio remoto do fnOS funcionam, sem precisar abrir ou redirecionar a porta 16680.
O acesso pelo gateway é controlado pelo fnOS, e somente administradores do fnOS podem abri-lo. A entrada segura e o "Acesso somente pela rede local" valem apenas para o acesso direto pela porta 16680. Na rede local, http://<endereço do NAS>:16680 continua funcionando.
Entrar com a sessão de administrador do fnOS
Ative "Entrar com o fnOS" em "Configurações → Controle de acesso" e os administradores que já estão conectados ao fnOS entram no Gately direto pelo ícone da área de trabalho, sem senha nem código de verificação em dois fatores:
- Somente administradores do fnOS são conectados, como administrador do Gately; os usuários comuns do fnOS continuam informando usuário e senha;
- Vale apenas para o acesso pelo gateway unificado; o acesso direto pela porta 16680 continua exigindo o login normal;
- Depois que você sai, o Gately não conecta você de novo silenciosamente; a página de login mostra um botão "Entrar como usuário do fnOS <nome>";
- A opção vem desativada por padrão e só aparece no pacote do fnOS.
Observações
- O aplicativo roda como
root, então pode escutar nas portas 80/443, gerenciar o Docker pelodocker.socke abrir um terminal Web de verdade. Instale-o somente em um NAS que você controla. - A configuração fica no diretório
vardo aplicativo e é mantida na desinstalação, a menos que você escolha "excluir tudo" no assistente de desinstalação. - O pacote também adiciona o comando
/usr/local/bin/gatelypara usargately ctl,gately mcpegately reset-password. - A porta 16680 é a mesma da imagem Docker. Pare o contêiner
gatelyantes de iniciar o aplicativo nativo.
Primeiro acesso
A interface de administração escuta por padrão na porta 16680. A conta padrão é admin e a senha padrão é gately.cn. Em implantações automatizadas, você pode definir outra senha inicial com a variável de ambiente GATELY_INITIAL_PASSWORD no lugar da senha padrão.
A senha padrão é pública; enquanto ela estiver em uso, um aviso fixo no topo da interface de administração pede para alterá-la. No primeiro acesso aparece um assistente de configuração inicial que sugere, em sequência, alterar a senha, ativar a autenticação em dois fatores ou uma passkey, executar o autodiagnóstico de rede, importar do Lucky e configurar notificações.
Redefinir a senha e a autenticação em dois fatores
Se você esquecer a senha do administrador ou perder o autenticador de dois fatores (TOTP), redefina-os com um comando no servidor onde o Gately roda. O comando precisa ler e gravar o diretório de configuração, o que equivale a ter acesso ao servidor, por isso não pode ser usado pela rede:
gately reset-password: redefine a senha do administrador para a senha padrãogately.cn; com-p <nova senha>você já define uma senha nova;gately reset-totp: desativa a autenticação em dois fatores do administrador; depois de entrar, você pode ativá-la de novo.
Antes de executar, o comando mostra o nome de usuário do administrador e a ação que será feita e pede que você digite yes para confirmar, evitando execuções acidentais; em scripts e outros ambientes não interativos, use -y para pular a confirmação. Um Gately em execução aplica a mudança em poucos segundos, sem reiniciar; se ele não estiver rodando, a mudança vale na próxima inicialização. Depois da redefinição, todas as sessões abertas são invalidadas e os bloqueios de login são liberados; o nome de usuário, as passkeys, as contas somente leitura e o restante da configuração continuam iguais.
| Forma de instalação | Comando |
|---|---|
| Docker | docker exec -it gately gately reset-password |
| systemd | sudo gately reset-password |
| OpenWrt / iStoreOS | gately reset-password |
| fnOS | sudo gately reset-password |
| Outras | ./gately reset-password -c <diretório de configuração> |
Sem -c, o comando procura, nesta ordem, em GATELY_CONFIG_DIR, em data no diretório atual, em /etc/gately e no diretório de configuração do pacote do fnOS, /var/apps/gately/var/config, e mostra o diretório usado de fato. Cada redefinição fica registrada no log do sistema e no log de auditoria.
Atualização
Atualização online
Instalações binárias no Linux (systemd, contêineres LXC do PVE, OpenWrt implantado manualmente etc.) podem ser atualizadas online pela página Sobre do painel: clique em "Verificar atualizações" e, havendo versão nova, em "Atualizar agora". Isso vale também para contêineres LXC criados no PVE a partir da imagem OCI, sem precisar apagá-los e recriá-los. O Gately vai:
- Baixar do GitHub o
gately_<versão>_linux_<arquitetura>.tar.gzdesta plataforma; - Conferir o SHA-256 com o
checksums.txtda mesma versão; - Executar o novo binário em teste com
-versionpara confirmar que roda nesta máquina; - Substituir o executável e reiniciar com os mesmos argumentos, guardando a versão anterior como
gately.oldno mesmo diretório.
Tudo acontece em uma caixa de diálogo: primeiro ela mostra as notas da versão e, ao iniciar, a etapa atual, o progresso e a velocidade do download. Até o binário ser substituído (obtenção, download e verificação) você pode clicar em "Cancelar atualização" a qualquer momento, sem alterar o binário atual.
Se o GitHub estiver difícil de acessar, defina um proxy de atualização na página Sobre ou em Configurações → Rede e execução. Ele suporta http://, https:// e socks5://, e tanto a verificação quanto o download passam por ele. Vazio, o Gately conecta diretamente e continua respeitando a variável de ambiente HTTPS_PROXY.
Sem acesso à internet, baixe o tar.gz na página de download e clique em "Enviar pacote de atualização" na página Sobre. Qualquer versão é aceita, então também dá para voltar a uma anterior.
A atualização online só roda quando um administrador a inicia; o Gately nunca baixa nem instala versões por conta própria. Se a nova versão não iniciar, reverta manualmente com a cópia guardada (exemplo com systemd):
mv /usr/local/bin/gately.old /usr/local/bin/gately
systemctl restart gatelySe você concedeu ao binário acesso a portas baixas com setcap, execute setcap de novo após atualizar.
Outras implantações
- Docker: execute
docker pullda nova imagem e recrie o contêiner (mantenha o diretório de configuração montado); - fnOS: instale manualmente o
.fpkmais novo pela Central de aplicativos; a sua configuração é mantida; - Pacotes para OpenWrt: baixe o
.ipk/.apkmais novo e executeopkg install/apk add --allow-untrusted; a sua configuração é mantida (veja OpenWrt); - Windows, macOS, FreeBSD: substitua o executável e reinicie o serviço.
Antes de atualizar, exporte um backup da configuração ou mantenha o diretório de configuração no git. As assinaturas dos arquivos e imagens baixados podem ser conferidas conforme Verificar versões.