DOE AGORA Qualquer valor

Proxy de bate-papo do WhatsApp

Whatsapp/proxy

Proxy de bate-papo do WhatsApp

github IC

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á

  1. Docker (ative o Docker na inicialização se o seu sistema host permitir)
  2. 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.0para fácil referência.

Observe que /path_to_cloned_repositorydeve 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 dockercomando

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 -dsinalizador 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 systemdserviço (se o seu ambiente de hospedagem for compatível).

Fornecemos uma docker_boot.servicedefinição de serviço de amostra para você, que você deve personalizar para seu próprio ambiente.

Para instalar e configurar o systemdserviç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.ymlarquivo 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:

  1. 80: Tráfego da web padrão (HTTP)
  2. 443: Tráfego da web padrão, criptografado (HTTPS)
  3. 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.

  1. 8080: Tráfego da web padrão (HTTP) com protocolo PROXY esperado
  2. 8443: Tráfego da web padrão, criptografado (HTTPS) com protocolo PROXY esperado
  3. 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 :8199qual pode ser conectado diretamente com http://<host-ip>:8199o 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_DNSlista separada por vírgula de nomes de host alternativos, sem padrão
  • SSL_IPlista 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

Ebook

Postagens mais visitadas