Categoria Sem categoria

Integração Typebot com Chatwoot via N8N

Roteiro para criação de chatbot.

Pré requisitos
  • Ter instaldo e configurado o n8n.
  • Ter instaldo e configurado o TypeBot.
  • Ter instaldo e configurado o EvolutionAPI.

Passo 1 – Criar instância com EvolutionAPI

curl -X POST http://127.0.0.1:8081/instance/create \
-H "Content-Type: application/json" \
-H "apikey: Lqxb8hZvimasdfadsfIqQEYikZEmN5gYg3LKiHT" \
-d '{
    "instanceName": "TypeBot",
    "token": "",
    "qrcode": true,
    "number": "55629841xxxx6"
}'

Passo 2 – Configurar instância criada para conectar com TypeBot

curl -X POST http://127.0.0.1:8081/typebot/set/TypeBot \
-H "Content-Type: application/json" \
-H "apikey: Lqxb8hZvimZi2L0OXOxdfgsdfgdsgIqQEYikZEmN5gYg3LKiHT" \
-d '{
    "enabled": true,
    "url": "https://bot.meutypebot.com.br",
    "typebot":  "NomeDoFlowDoTypeBot",
    "expire": 20,
    "keyword_finish": "#SAIR",
    "delay_message": 1000,
    "unknown_message": "Mensagem não reconhecida",
    "listening_from_me": false
}'

Passo 3 – Ao concluir fluxo do TypeBot redirecionar conversa para o ChatWoot via N8N

  • Criar variável remoteJid para pegar o número do remetente.
  • Criar variável numeroLimpo para remover sufixo.
  • Após construir todo fluxo criar um Webhook com as seguintes variáveis
    • URL do Webhook – https://n8n.minhaempresa.com.br/webhook-test/typebot
    • Method POST
    • Body:
      {
        "number": "{{numeroLimpo}}",
        "name": "{{name}}"
      }

Passo 4- Configurar N8N para receber o webhook e enviar para Chatwoot

  • Fazer downlaod do flow n8n
  • Em Infobase1 Configurar
    • Token (Chatwoot)
    • Url Chatwoot
    • ID Conta
    • ID Caixa
    • NomeContato
      • TypeBot Minha Empresa
    • MensagemEnvio
      • ” Contato recebido via TypeBot “

Basicamente é isso.

Como instalar Chatwoot via Docker + Codechat + API Whatsapp

Passo 1  – Instalação Docker

  • Remover possíveis versões anteriores
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done
  • Add Docker’s official GPG key
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
  • Add the repository to Apt sources
echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

  • Instalação docker
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
curl -SL https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

Passo 2 – Instalação do Chatwoot via Docker Compose

  • Download the env file template
  • Download the Docker compose template
  • Rename .env file
cd /root
mkdir chatwoot
wget -O .env https://raw.githubusercontent.com/chatwoot/chatwoot/develop/.env.example
wget -O docker-compose.yaml https://raw.githubusercontent.com/chatwoot/chatwoot/develop/docker-compose.production.yaml
  • Ajustando o .env file
  • Atenção para senha do postgres
Main
SECRET_KEY_BASE - criar senha segura
FRONTEND_URL=https://app.sacbr.com.br
DEFAULT_LOCALE=pt_BR

Postgres
    POSTGRES_HOST=postgres
    POSTGRES_USERNAME=postgres
    POSTGRES_PASSWORD=908AS7DF89ASIUAFSDAS89034K
    RAILS_ENV=development
Mail
    MAILER_SENDER_EMAIL=SacBR <[email protected]>
    SMTP_DOMAIN=smtp.gmail.com
    SMTP_ADDRESS=smtp.gmail.com
    SMTP_PORT=465
    SMTP_USERNAME=sacbr{at}sacbr.com.br
    SMTP_PASSWORD=Senha123
    SMTP_AUTHENTICATION=plain
    SMTP_ENABLE_STARTTLS_AUTO=true
    SMTP_OPENSSL_VERIFY_MODE=peer
    SMTP_SSL=true
  • Ajustando o docker-compose.yml
  • Atenção para senha do postgres
version: '3'
services:
  base: &base
    image: chatwoot/chatwoot:latest
    env_file: .env ## Change this file for customized env variables
    volumes:
      - ./data/storage:/app/storage

  rails:
    <<: *base
    depends_on:
      - postgres
      - redis
    ports:
      - '127.0.0.1:3000:3000'
    environment:
      - NODE_ENV=production
      - RAILS_ENV=production
      - INSTALLATION_ENV=docker
    entrypoint: docker/entrypoints/rails.sh
    command: ['bundle', 'exec', 'rails', 's', '-p', '3000', '-b', '0.0.0.0']

  sidekiq:
    <<: *base
    depends_on:
      - postgres
      - redis
    environment:
      - NODE_ENV=production
      - RAILS_ENV=production
      - INSTALLATION_ENV=docker
    command: ['bundle', 'exec', 'sidekiq', '-C', 'config/sidekiq.yml']

  postgres:
    image: postgres:12
    restart: always
    ports:
      - '5432:5432'
    volumes:
      - ./data/postgres:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=chatwoot
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=SENHA SUPER SEGURA AQUI

  redis:
    image: redis:alpine
    restart: always
    command: ["sh", "-c", "redis-server --requirepass \"$REDIS_PASSWORD\""]
    env_file: .env
    volumes:
      - ./data/redis:/data
    ports:
      - '127.0.0.1:6379:6379'
  • Preparar banco de dados
docker compose run --rm rails bundle exec rails db:chatwoot_prepare
  • Levantando o serviço
docker compose up -d
  • Instalando Nginx e Configurando Proxy Reverso
sudo apt-get install nginx
cd /etc/nginx/sites-enabled
vim yourdomain.com.conf
  • Configurando Virtual Host
  • Em server name: chatwoot.minhaempresa.com.br
server {
  server_name <yourdomain.com>;

  # Point upstream to Chatwoot App Server
  set $upstream 127.0.0.1:3000;

  # Nginx strips out underscore in headers by default
  # Chatwoot relies on underscore in headers for API
  # Make sure that the config is set to on.
  underscores_in_headers on;
  location /.well-known {
    alias /var/www/ssl-proof/chatwoot/.well-known;
  }

  location / {
    proxy_pass_header Authorization;
    proxy_pass http://$upstream;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-Ssl on; # Optional

    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    proxy_http_version 1.1;
    proxy_set_header Connection “”;
    proxy_buffering off;

    client_max_body_size 0;
    proxy_read_timeout 36000s;
    proxy_redirect off;
  }
  listen 80;
}
  • Checando as configurações
nginx -t
systemctl reload nginx
  • Instalando Certbot e gerando certififcado
apt  install certbot
apt install python3-certbot-nginx
mkdir -p /var/www/ssl-proof/chatwoot/.well-known
certbot --webroot -w /var/www/ssl-proof/chatwoot/ -d yourdomain.com -i nginx
  • Ao chegar nessa etapa do processo de instalação do Chatwoot deverá estar rodando na porta 3000.
  • O nginx deverá estar rodando nas portas 80 e 443.
  • Proxy reverso deverá estar funcional e buscando chatwoot no localhost.
  • Crie sua conta.
  • Faça Login para seguir adiante.

Passo 3 – Instalando NodeJS versão 16 (Obrigatório)

–> Adicionar repositório

sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg

–> Instalar versão 16

NODE_MAJOR=16
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list

Passo 4 – Instalar Codechat

git clone https://github.com/w3nder/chatwoot-codechat.git
mv chatwoot-codechat/ codechat
cd codechat
mv .env.example .env

–> Pegar token do usuário dentro do Chatwoot e atualizar
–> Gerar uma chave particular e colocar no CODECHAT_API_KEY Ex: ” 301803677cd97069a55a79038fb0a2ebd4be1e49 ”
–> Se desejar assinar as mensagens como o nome de usuário mude para TOSIGN=true
–> Se desejar receber mensagens enviadas fora do chatwoot mude para IMPORT_MESSAGES_SENT=false

####################################  EXEMPLO ############################
        PORT = 1234
        CHATWOOT_TOKEN = wV7yJG7q28h3RdQY7m4sDzVM
        CHATWOOT_BASE_URL = http://localhost:3000
        CODECHAT_BASE_URL = http://localhost:8080
        CODECHAT_API_KEY = 301803677cd97069a55a79038fb0a2ebd4be1e49
        TOSIGN=true
        IMPORT_MESSAGES_SENT=true
####################################  EXEMPLO ############################

Explicando em sequência:

  • Instalar dependências
  • Construir aplicação (bildar)
  • Rodar aplicação, o prompt ficará preso, assim poderá acompanhar os logs.
npm install
npm run build 
npm start

Passo 5 – Instalar API

  • Baixando API
  • Renomeando dev-env.yml para env.yml
cd
git clone https://github.com/code-chat-br/whatsapp-api.git
cd whatsapp-api
mv src/dev-env.yml src/env.yml
  • Ajustar Server Port
  • Ajustar Server URL
  • Habilitar Webhook
  • Ajustar Client
  • Usar chave de acesso configurada no Codechat
vim src/env.yml

Server Port 8080 http
Webhook --> URL: Colocar o link da url webhook: http://0.0.0.0:1234/webhook/codechat
Webhook Enabled: True

Client: Sac BR
--> Autehtication ( PEGAR A CHAVE DO CODECHAT EM cat /root/codechat/.env )
  • Explicando em sequência:

    • Instalar dependências
    • Construir aplicação (bildar)
    • Rodar aplicação, o prompt ficará preso, assim poderá acompanhar os logs.
npm install
npm run build
npm run start

Passo 6 – Instalar PM2

  • Instalar PM2
  • Configurar Codechat como Serviço
  • Configurar API como Serviço
npm install pm2 -g

cd /root/codechat
pm2 start dist/app.js --name codechat

cd /root/whatsapp-api
pm2 start 'npm run start prod' --name whatsapp-api

Passo 7 – Criando caixa de entrada no Chatwoot

  • Configurações
  • Caixa de Entrada
  • Adicionar Caixa de Entrada
  • API
URL: http://192.168.0.254:1234/webhook/chatwoot

PS. Usar endereço IP do Host. Não Usar Localhost - Não Usar 127.0.0.1
  • Criar contato para chamar o bot
  • Contatos
  • Novo Contato
    • Nome: Bot
    • Número: +123456
  • Abrir contato
    • Nova Mensagem
    • Caixa de Entrada: Whatsapp
    • Mensagem: /iniciar

 

  • Comandos do Code Chat
    • /iniciar
      • Este comando irá criar uma nova instância e gerar um QR code
    • /status
      • Este comando irá verificar o status da instância
    • /desconectar
      • Este comando irá desconectar o WhatsApp da instância

Passo 7 – Liberando personalização do chatwoot

  • Instalar PostgreSQL Client
apt install postgresql-client postgresql-client-common
  • Logar no banco de dados
  • Selecionar o chatwoot_production
  • Atualizar update installation_configs set locked = false;
psql -U postgres -h localhost -w
\c chatwoot_production
update installation_configs set locked = false;
\q

 

Script Backup Robocopy com Relatórios por e-mail

Nesse breve tutorial iremos aprender como configurar um Script de Backup para Windows usando o robocopy em Power Shell com relatório sendo enviado por e-mail.

Ler mais

Tutorial e2guardian com Squid Proxy Autenticando no com SSL e Blacklist no Debian 11

1 – Preparando o Ambiente

Adicionar as repos contrib e non-free no sources.list do apt.

vim /etc/apt/sources.lists
deb http://debian.pop-sc.rnp.br/debian/ bullseye main contrib non-free
deb-src http://debian.pop-sc.rnp.br/debian/ bullseye main contrib non-free

2 – Instalar e Testar o Squid

apt install squid

Configurar o squid com essas configurações

auth_param basic program /usr/lib/squid/basic_ldap_auth -R -b “DC=minhaempresa,DC=local” -D “cn=e2guardian,cn=Users,dc=minhaempresa,dc=local” -w “Senha123” -f sAMAccountName=%s -h 192.168.200.3

auth_param basic children 20
auth_param basic realm Autentique-se no proxy para acessar a internet.
auth_param basic credentialsttl 360 minutes

### –> Aqui é o momento quer o squid envia as requisições para o E2guardian

cache_peer 127.0.0.1 parent 8080 0 login=*:password
always_direct deny all
never_direct allow all

acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.200.0/24 # RFC1918 possible internal network
acl localnet src fc00::/7 # RFC 4193 local private network range
acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines

acl SSL_ports port 8080
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 8080 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT

acl password proxy_auth REQUIRED

http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager

http_access allow password localnet

http_access deny localnet
http_access deny localhost
http_access deny all

http_port 3128
cache_mgr [email protected]
coredump_dir /var/spool/squid
access_log /var/log/squid/access.log
error_default_language pt-br
visible_hostname proxy.minhaempresa.local

Habilitar e Iniciar os serviços

systemctl enable squid

systemctl start squid

Realizar todos os testes antes de partir para o e2guardian, nesse momento vc ja deve autenticar no AD e navegar livremente com usuário e senha, se for o caso comente as linhas em que o o squid chama o e2guardian na porta 8080.

realize testes de consulta com AD com a seguinte linha de comando.

/usr/lib/squid/basic_ldap_auth -R -b “DC=minhaempresa,DC=local” -D “cn=e2guardian,cn=Users,dc=minhaempresa,dc=local” -w “Senha123” -f sAMAccountName=%s -h 192.168.200.3

quando a sessão estiver establecida, digite o usuário e senha aperte Enter, uma resposta de OK deve ser apresentada.

3 – Instalando e Configurando o e2guardian

apt install e2guardian

Habilitar e Iniciar os serviços

systemctl enable e2guardian

systemctl start e2guardian

Crie o diretório dos certificados e dê as permissões.

mkdir -p /etc/e2guardian/ssl/generatedcerts
chmod 777 /etc/e2guardian/ssl/generatedcerts

Crie o arquivo /etc/e2guardian/ssl/mkcert.sh e o execute:

touch /etc/e2guardian/ssl/mkcert.sh
chmod 777 /etc/e2guardian/ssl/mkcert.sh

Insira o seguinte script

#!/bin/bash
openssl genrsa 4096 > ca.key
openssl req -new -x509 -days 3650 -key ca.key -out ca.pem
openssl x509 -in ca.pem -outform DER -out ca.der
openssl genrsa 4096 > cert.key

Edite o e2guardian.conf e configure as respectivas diretivas.

enablessl = on
cacertificatepath = ‘/etc/e2guardian/ssl/ca.pem’
caprivatekeypath = ‘/etc/e2guardian/ssl/ca.key’
certprivatekeypath = ‘/etc/e2guardian/ssl/cert.key’
generatedcertpath = ‘/etc/e2guardian/ssl/generatedcerts/’

language = ‘ptbrazilian’
logfileformat = 3

Edite o e2guardianf1.conf e habilite a seguinte diretiva.

sslmitm = on

Realize o download da blacklist extraia e salve em

https://www.shallalist.de/Downloads/shallalist.tar.gz

/etc/e2guardian/lists/blacklists/

Edite o arquivo bannedsitelist em /etc/e2guardian/lists/ e habilite as categorias desejada

.Include</etc/e2guardian/lists/blacklists/downloads/domains>
.Include</etc/e2guardian/lists/blacklists/aggressive/domains>
.Include</etc/e2guardian/lists/blacklists/fortunetelling/domains>
.Include</etc/e2guardian/lists/blacklists/movies/domains>
.Include</etc/e2guardian/lists/blacklists/radiotv/domains>
.Include</etc/e2guardian/lists/blacklists/chat/domains>
.Include</etc/e2guardian/lists/blacklists/sex/lingerie/domains>
.Include</etc/e2guardian/lists/blacklists/spyware/domains>
.Include</etc/e2guardian/lists/blacklists/dating/domains>
.Include</etc/e2guardian/lists/blacklists/anonvpn/domains>
.Include</etc/e2guardian/lists/blacklists/drugs/domains>
.Include</etc/e2guardian/lists/blacklists/socialnet/domains>
.Include</etc/e2guardian/lists/blacklists/porn/domains>
.Include</etc/e2guardian/lists/blacklists/gamble/domains>
.Include</etc/e2guardian/lists/blacklists/hacking/domains>

Obs importante caso ocorra algum erro de digitção ou alguma lista de domínios não for encontrada por daemon, o serviço continuará ativo porém a bannedsitelist desabilitará todas as listas que estão corretas.

 

Imap Sync CentOS7 RPM

Download

  • wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

Install

  • yum install ./epel-release-latest-*.noarch.rpm

Fonte

https://www.liquidweb.com/kb/enable-epel-repository/

 

Conectividade Social Caixa Erro no ICP de “Mensagem de erro do certificado”,

Erro ao acessar Conectividade Social

Certificado Revogado

Navegar:

Opções da Internet –> Avançadas –> Verificar Revogação de Certificado do Servidor

Opções da Internet –> Avançadas –> Verificar se há certificados Revogados do Fornecedor

 

[Resolvido] falha: mmc.exe GPOAdmin.dll Application Erro ID 1000

Application Error ID 1000 GPO Admin

Group Police Admin

Nome do aplicativo com falha: mmc.exe, versão: 10.0.14393.3750, carimbo de data/hora: 0x5ed5e019
Nome do módulo com falha: GPOAdmin.dll, versão: 10.0.14393.3986, carimbo de data/hora: 0x5f7800d6
Código de exceção: 0xc0000005
Deslocamento da falha: 0x00000000000be366
ID do processo com falha: 0x1864
Hora de início do aplicativo com falha: 0x01d6be7c97503e4b
Caminho do aplicativo com falha: C:\Windows\system32\mmc.exe
Caminho do módulo com falha: C:\Windows\System32\GPOAdmin.dll
ID do Relatório: 6ff003ed-c126-4199-8ea9-26754a4970d9
Nome completo do pacote com falha:
ID do aplicativo relativo ao pacote com falha:

 

To Clear cache , Just delete the contents of %userprofile%\AppData\Roaming\Microsoft\MMC

A resposta não é um JSON válido – WordPress Permalink Nome do Post

Para corrigir o erro no wordpress A resposta não é um JSON válido ao tentar fazer criar um página com permalink configurado para Nome do Post, proceda com a seguinte configuração.

Dentro de /etc/http/conf/httpd.conf

Dentro da sessão <directory /var/www/html> altere de AllowOverride None para AllowOverride All

 <Directory /var/www/html>
    AllowOverride All
 </Directory>

Então reinicie o apache.
sudo systemctl restart httpd

			

Reset Senha DVR Intelbras Bateria Fixa

Como resetar senha admin DVR Intelbras modelos da série 1000 e 3000 com bateria fixa.

Ler mais

OpenVPN Windows 10 Não Resolve DNS Externo

Dica rápida para configurar clientes OpenVPN que param de responder DNS cujo o endereço termina com TLD Público. EX: .com, .com.br, adv.br. Com a recente atualização do Windows o Windows tem forçado esses DNS para servidores Públicos para reverter esse quadro e forçar DNS do servidor OpenVPN acrescentar a seguinte diretiva.

block-outside-dns

Sua conf openvpn deve ficar assim

proto tcp-client
dev tun
persist-tun
persist-key
cipher AES-128-CBC
auth SHA1
tls-client
client
resolv-retry infinite
remote net.minhaempresa.com.br 1194
auth-user-pass auth.cfg
remote-cert-tls server
auth SHA1
auth-nocache
route 192.168.200.0 255.255.255.0
script-security 2
block-outside-dns
dhcp-option DOMAIN minhaempresa.com.br
dhcp-option DNS 192.168.200.9