Pular para o conteúdo

Configuração Manual

Este é o procedimento de instalação manual para usuários técnicos que preferem não usar o assistente guiado. Se você deseja um caminho mais passo a passo, use o assistente de configuração, pois ele cria o .env, gera um CRYPTO_SECRET seguro, configura o PostgreSQL e executa a instalação para você.

  • Bun
  • Node.js v20+ (usado para as ferramentas MCP)
  • PostgreSQL instalado nativamente ou executado em um contêiner Docker (veja o passo 2)

O esquema do PostgreSQL, pgcrypto, sementes e migrações são inicializados automaticamente na inicialização do bot.

Terminal window
git clone https://github.com/Bredrumb/TomoriBot.git
cd TomoriBot
bun install --frozen-lockfile

Crie seu arquivo de ambiente a partir do exemplo e preencha os valores obrigatórios:

Terminal window
cp .env.example .env

Obrigatórios:

  • DISCORD_TOKEN: o token do seu bot do Discord (ative as intents privilegiadas GuildMembers, MessageContent e GuildPresences).
  • CRYPTO_SECRET: uma chave de criptografia de 32 caracteres (usada para criptografar as chaves de API armazenadas).
  • Conexão com o PostgreSQL: POSTGRES_HOST, POSTGRES_PORT, POSTGRES_USER, POSTGRES_PASSWORD, POSTGRES_DB.

Ajustes opcionais ficam em .env.optional.example. Copie quaisquer valores que você queira personalizar (limites, tempos limite, alternância de recursos, URLs de sidecars, etc.).

Terminal window
bun run dev

Quando você ver TomoriBot up and running!, vá para o Discord e execute /setup no seu servidor para conectar um provedor de IA e inicializar o bot. O comando abre um painel de lista de verificação guiado, e nada é escrito até que você pressione Finalizar Configuração; veja O comando /setup para os passos e o Início Rápido para a parte dentro do Discord.

Use bun run launch em vez de bun run dev se você quiser que sidecars opcionais (SearXNG, Crawl4AI, TTS/STT local) sejam iniciados junto com o bot:

Terminal window
bun run launch --searxng --crawl4ai
bun run launch --help # ver todas as flags

Extras opcionais (a “Instalação Completa” manual)

Seção intitulada “Extras opcionais (a “Instalação Completa” manual)”

O caminho de Instalação Completa do assistente de configuração sobrepõe quatro extras leves em cima da instalação base. Nenhum deles é necessário para executar o bot, mas cada um desbloqueia um recurso. Se você estiver instalando manualmente, adicione o que quiser:

RAG (upload de documentos e recall entre canais) armazena embeddings em uma coluna vector, o que precisa da extensão pgvector. Instale-a para a sua versão principal do PostgreSQL:

Terminal window
# Debian/Ubuntu, ex. para PostgreSQL 16
sudo apt-get install -y postgresql-16-pgvector

Em seguida, habilite-a uma vez no seu banco de dados. Conecte-se com psql usando os valores POSTGRES_* do seu .env: ele solicitará o POSTGRES_PASSWORD:

Terminal window
# psql Nativo / host (substitua pelos seus próprios POSTGRES_USER e POSTGRES_DB):
psql -h localhost -p 5432 -U tomori -d tomodb
# Ou, se o banco de dados rodar no contêiner Docker do passo 2:
docker exec -it tomori-db psql -U tomori -d tomori

Uma vez conectado, execute:

CREATE EXTENSION vector;

Sem o pgvector, o bot ainda funciona, mas os recursos de RAG ficam completamente indisponíveis. Esta extensão também é necessária no banco de dados de destino antes de restaurar um backup; veja Migração Segura para detalhes.

O pg_cron possibilita a manutenção periódica opcional do banco de dados (limpeza de linhas de lembrete/tempo de recarga). O Docker Compose deste repositório já o configura.

Para um PostgreSQL gerenciado por você mesmo, encontre seu arquivo de configuração ativo:

SHOW config_file;

Habilite a extensão no postgresql.conf: anexe a shared_preload_libraries se já listar outras bibliotecas:

shared_preload_libraries = 'pg_cron' # ex. 'pg_stat_statements,pg_cron'
cron.database_name = 'seu_bd'

Reinicie o PostgreSQL, depois:

CREATE EXTENSION IF NOT EXISTS pg_cron;

Ativos do tokenizador : logit bias compatível com o modelo

Seção intitulada “Ativos do tokenizador : logit bias compatível com o modelo”

Logit bias (penalidades de repetição de emoji/palavra) precisa de ativos de tokenizador locais:

Terminal window
bun run setup:tokenizers

Algumas famílias (ex. Gemma) são restritas e requerem um token do HuggingFace após você aceitar sua licença:

Terminal window
# Windows (PowerShell)
$env:HF_TOKEN="hf_xxx"; bun run setup:tokenizers
# macOS/Linux
HF_TOKEN=hf_xxx bun run setup:tokenizers

Sem esta etapa, o logit bias é silenciosamente desativado e tudo mais funciona normalmente.

O fallback seguro fetch_url é executado no processo e não precisa de nenhum pacote Python. DuckDuckGo/IAsk web_search vem com bun install --frozen-lockfile, então ele também não precisa de nenhuma instalação extra.

Depois de instalado, os scripts do lado do host (bun run update, bun run backup, bun run restore-backup, bun run nuke-db, bun run rotate-keys, …) e os procedimentos de atualização e backup estão todos na página de Manutenção e Backups. Se você está prestes a obter uma nova versão, comece com a Migração Segura.