O inemaccbot é um gateway do Telegram com fila durável: você manda o pedido pelo celular e o seu computador (ou uma VPS) executa como agente. Nesta aula você instala, pareia o bot com o seu chat e deixa rodando como serviço.
Objetivo: instalar o inemaccbot, parear com o seu chat e ver o /ping responder no Telegram.
01 · As peças do inemaccbot
Do celular ao resultado.
Clique em cada bloco do diagrama para ver o que ele faz.
Clique em cada bloco. Para instalar e usar, você não precisa mexer no código: só no .env e no Telegram.
02 · A instalação em seis passos
Testado no Ubuntu com Node 24. O atalho ./scripts/instalar.sh faz a parte mecânica e para no que exige você.
1. Pré-requisitos
Node 22 ou mais novo (node -v; o Ubuntu 24.04 traz o 18). claude instalado e logado: confira com claude auth status; instalado não é o mesmo que autenticado. ffmpeg e python3 para as tarefas de áudio e vídeo.
Sem o claude logado o bot sobe e aceita comandos, mas todo trabalho de agente falha. É a falha mais confusa, porque tudo parece certo.
2. Clonar e instalar
Clone o repositório e rode npm ci (não npm install: o ci segue o lockfile e a instalação fica igual em toda máquina).
Clone também os repos de domínio promoavatar e promoavatar3 como pastas irmãs. Sem eles o bot sobe, mas os fluxos quebram na primeira fase e dezenas de testes falham.
3. Criar o bot no Telegram
Fale com o @BotFather, mande /newbot e guarde o token que ele devolve. Esse valor é o BOT_TOKEN.
O token é um segredo: nunca vai para o Git, para print ou para mensagem.
4. Escrever o .env
Copie o .env.example, proteja com chmod 600 e preencha BOT_TOKEN, QUEUE_DB, STATE_DIR e LOG_FILE.
Em ALLOWED_CHAT_IDS, deixe 0. É o modo pareamento: o primeiro /ping cadastra o seu chat como dono e fecha a porta. Vazio não é pareamento: é erro de propósito, o bot não sobe.
CuidadoEnquanto a allowlist for 0, quem mandar /ping primeiro leva o bot. Pareie antes de deixar rodando.
5. Subir e parear
Rode npm test e npm run build, depois suba na mão com ./start.sh para ver qualquer erro na tela.
Mande /ping para o seu bot. Ele responde com o id do chat e grava esse id no .env. A partir daí, só você é atendido.
6. Deixar como serviço
Para o bot sobreviver ao logout e subir sozinho no boot, instale o serviço de usuário e ligue o linger. Numa VPS, use o serviço de sistema (deploy/inemaccbot-sistema.service).
Nunca rode o ./start.sh e o serviço ao mesmo tempo com o mesmo token: os dois disputam as mensagens e cada um perde metade. O start.sh já recusa subir quando o serviço está ativo.
03 · Os comandos da instalação
Na ordem. Troque só o que estiver indicado.
Terminal · clonar, instalar, testar
cd ~/projetos
git clone https://github.com/inematds/inemaccbot.git
git clone https://github.com/inematds/promoavatar.git
git clone https://github.com/inematds/promoavatar3.git
cd inemaccbot
./scripts/instalar.sh --checar # só diz o que falta, não muda nada
npm ci
npm test
npm run build
Terminal · .env e primeira subida
cp .env.example .env
chmod 600 .env
# edite o .env: BOT_TOKEN=<do BotFather> ALLOWED_CHAT_IDS=0
./start.sh # log na tela; Ctrl+C encerra drenando o que estiver rodando
# no Telegram: /ping → o bot responde e grava o seu chat id
No log aparece a linha de recuperação, mesmo numa fila vazia:
boot: recuperação de leases — requeued=0 failed=0
Erro de configuração derruba o processo nesse ponto, de propósito. Leia a mensagem antes de mexer em outra coisa.
config: falta BOT_TOKEN: o .env não tem o token.
Serviço active mas /ping não responde: allowlist com o id errado (o log mostra rejeitada — fora da allowlist).
Bot responde, mas todo job falha: claude não está logado.
tsc: not found no build: refaça com NODE_ENV=development npm ci --include=dev.
O .env do bot guarda configuração: token, allowlist, caminhos. Chaves de outros serviços moram num cofre separado, um arquivo por máquina com chmod 600, nunca versionado. Regra do projeto: o .env guarda caminho e id; segredo de terceiro mora no arquivo do dono dele.
04 · Prática
Reserve uma hora sem interrupção.
E3 · Instalar o inemaccbot
1 h
Siga os passos até o bot responder no Telegram. Pareie com ALLOWED_CHAT_IDS=0 e confira que o .env tem chmod 600. Depois teste /ajuda e /fila.
Pronto quando: /ping responde no seu Telegram e /fila mostra as filas vazias.
O serviço está active (running), mas o bot não responde ao seu /ping. Qual é a causa mais provável?
Correto
Fora da allowlist, a mensagem é rejeitada em silêncio e só aparece no log. Volte para ALLOWED_CHAT_IDS=0, reinicie e pareie de novo.
Não é essa
Fora da allowlist, a mensagem é rejeitada em silêncio e só aparece no log. Volte para ALLOWED_CHAT_IDS=0, reinicie e pareie de novo.Rever: Os comandos da instalação
Pergunta 2 de 3
Para que serve deixar ALLOWED_CHAT_IDS=0 na primeira subida?competência
Correto
É o modo pareamento. Por isso é preciso parear logo: enquanto estiver 0, quem mandar /ping primeiro vira o dono.
Não é essa
É o modo pareamento. Por isso é preciso parear logo: enquanto estiver 0, quem mandar /ping primeiro vira o dono.Rever: A instalação em seis passos
Pergunta 3 de 3
Onde deve ficar a chave de um serviço de terceiros que uma tarefa usa?
Correto
Segredo nunca vai em texto versionado nem em mensagem. O .env do bot guarda configuração; segredo de terceiro mora no cofre.
Não é essa
Segredo nunca vai em texto versionado nem em mensagem. O .env do bot guarda configuração; segredo de terceiro mora no cofre.Rever: Os comandos da instalação
Teste concluído
Você acertou {a} de {n}. Acertando todas, a aula é marcada como concluída.
Escolha uma alternativa. A explicação aparece depois da sua tentativa.