Proxy de bate-papo do WhatsApp
Whatsapp/proxy
Última confirmação
arquivos
Proxy de bate-papo do WhatsApp
Se você não conseguir se conectar diretamente ao WhatsApp, um proxy pode ser usado como um gateway entre você e nossos servidores. Para ajudar você ou outras pessoas a restabelecer a conexão com o WhatsApp, você pode configurar um servidor proxy.
Se você já possui um proxy para usar, pode conectá-lo ao WhatsApp seguindo as etapas deste artigo .
Perguntas frequentes
POR FAVOR, LEIA ISSO ANTES DE ABRIR UMA EDIÇÃO Temos um FAQ, que você pode encontrar aqui: FAQ.md
O que você precisará
- Docker (ative o Docker na inicialização se o seu sistema host permitir)
- Composição do Docker (opcional)
Configurando seu proxy
1. Clone o repositório em sua máquina local
2. Instale o Docker para o seu sistema
3. Instale a composição do Docker
Para usuários do Linux, se sua versão do Docker não vier pré-instalada com o Docker Compose, você poderá instalar uma versão única (para Linux).
# Download the pkg
sudo curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m) -o /usr/bin/docker-compose
# Enable execution of the script
sudo chmod +x /usr/bin/docker-compose
3. Crie o contêiner de host do proxy
Crie o contêiner do host proxy com
docker build /path_to_cloned_repository/proxy/ -t whatsapp_proxy:1.0
O contêiner será compilado e marcado whatsapp_proxy:1.0
para fácil referência.
Observe que /path_to_cloned_repository
deve ser a mesma pasta onde você clonou este repositório na etapa 1 acima. Além disso, o Dockerfile para criar o contêiner está em um proxy de subpasta do repositório.
Executando o proxy
Executar manualmente o contêiner
Você pode executar manualmente o contêiner do Docker com o seguinte docker
comando
docker run -it -p 80:80 -p 443:443 -p 5222:5222 -p 8080:8080 -p 8443:8443 -p 8222:8222 -p 8199:8199 whatsapp_proxy:1.0
Automatize o ciclo de vida do contêiner com o Docker Compose
O Docker Compose é uma ferramenta automatizada para executar implantações de vários contêineres, mas também ajuda a automatizar os argumentos de linha de comando necessários para executar um único contêiner. É um arquivo de definição YAML que denota todas as configurações para iniciar e executar o contêiner. Ele também possui estratégias de reinicialização no caso de o contêiner travar ou reiniciar automaticamente. O Docker Compose ajuda a gerenciar a configuração do contêiner e os encaminhamentos de porta necessários sem interação do usuário. Recomendamos a utilização do Docker Compose porque você geralmente não deseja executar manualmente o contêiner fora dos cenários de teste.
Fornecemos um arquivo docker-compose.yml de amostra para você, que define uma implantação padrão do contêiner de proxy.
Depois que o Docker Compose estiver instalado, você poderá testar sua configuração específica executando o Docker Compose interativamente com:
docker compose -f /path/to/this/repo/docker-compose.yml up
Isso permitirá que você veja a saída do processo de hospedagem build + container e verifique se tudo está configurado corretamente.
Quando estiver pronto para executar o contêiner como um serviço, faça*:
docker compose -f /path/to/this/repo/docker-compose.yml up -d
*Observe o -d
sinalizador que significa "daemonizar" e executar como um serviço.
Para parar o contêiner, você pode fazer da mesma forma:
docker compose down
Automatize as reinicializações do host com o Docker Compose
Depois de configurar a composição do Docker, você também pode automatizar a implantação para reinicializações do host utilizando um systemd
serviço (se o seu ambiente de hospedagem for compatível).
Fornecemos uma docker_boot.service
definição de serviço de amostra para você, que você deve personalizar para seu próprio ambiente.
Para instalar e configurar o systemd
serviço*:
# Copy the service definition to systemd folder
cp -v docker_boot.service /etc/systemd/system/
# Enable starting the service on startup
systemctl enable docker_boot.service
# Start the service (will docker compose up the container)
systemctl start docker_boot.service
# Check container status with
docker ps
*Certifique-se de atualizar o caminho para seu docker-compose.yml
arquivo específico na definição do serviçodocker_boot.service
Implantação do Kubernetes
Se você deseja configurar seu proxy usando o Kubernetes ou executar o tempo de execução do Docker por meio do Kubernetes, consulte nosso LEIA-ME do gráfico do Helm
Uma visão geral da arquitetura de proxy do WhatsApp
Dependendo do cenário em que você utiliza seu proxy, o contêiner do proxy expõe várias portas. As portas básicas podem incluir:
- 80: Tráfego da web padrão (HTTP)
- 443: Tráfego da web padrão, criptografado (HTTPS)
- 5222: Tráfego do protocolo Jabber (padrão do WhatsApp)
Também existem portas configuradas que aceitam cabeçalhos de proxy de entrada (versão 1 ou 2) nas conexões. Se você tiver um balanceador de carga de rede, poderá preservar o endereço IP do cliente, se desejar.
- 8080: Tráfego da web padrão (HTTP) com protocolo PROXY esperado
- 8443: Tráfego da web padrão, criptografado (HTTPS) com protocolo PROXY esperado
- 8222: Tráfego do protocolo Jabber (padrão do WhatsApp) com protocolo PROXY esperado
Além disso, o contêiner expõe uma porta de estatísticas na :8199
qual pode ser conectado diretamente com http://<host-ip>:8199
o qual você pode usar para monitorar as estatísticas do HAProxy.
Geração de certificado para portas criptografadas SSL
As portas 443 e 8443 são protegidas por um certificado de criptografia autoassinado gerado na hora de início do contêiner. Existem algumas opções personalizadas, caso você deseje ajustar as configurações dos certificados gerados
SSL_DNS
lista separada por vírgula de nomes de host alternativos, sem padrãoSSL_IP
lista separada por vírgula de IPs alternativos, sem padrão
Eles podem ser configurados com comandos como
docker build . --build-arg SSL_DNS=test.example.com
Contribuintes
Os autores deste código são Sean Lawlor ( @slawlor ).
Para saber mais sobre como contribuir para este projeto, consulte este documento .
Licença
Este projeto é licenciado pelo MIT .
Comentários
Postar um comentário