Pular para o conteúdo

Assistente de Configuração

bun run setup é o caminho de hospedagem própria (self-hosting) recomendado para instalações locais baseadas no Bun. Ele cria seu .env, gera um CRYPTO_SECRET, pede o token do seu bot do Discord, configura o PostgreSQL e instala as dependências exatas do bun.lock interativamente, então apenas siga os comandos. É seguro executar novamente; os valores do .env existentes são mantidos, a menos que você escolha reconfigurá-los.

Terminal window
git clone https://github.com/Bredrumb/TomoriBot.git
cd TomoriBot

Depois de executar o comando, você escolherá um de dois caminhos:

Terminal window
bun run setup
CaminhoUsar QuandoO Que Ele Faz
Full InstallVocê deseja a configuração recomendada com extras leves.Executa Base Install e depois tenta os quatro extras abaixo.
Base InstallVocê deseja apenas o bot funcionando com o mínimo.Cria/configura .env, token do Discord, PostgreSQL e dependências.
  • Bun para rodar o bot e o próprio assistente.
  • Node.js v20+ (usado para ferramentas MCP).
  • Um token de bot do Discord com as intents privilegiadas GuildMembers, MessageContent e GuildPresences habilitadas.
  • Um banco de dados. O TomoriBot armazena tudo no PostgreSQL. Você não precisa configurá-lo manualmente pois o assistente faz isso por você: ele usará o PostgreSQL se você já o tiver instalado, ou executará um para você no Docker se não tiver. Apenas certifique-se de que um dos dois está instalado antes de começar.

Se o psql estiver ausente ou o provisionamento falhar, o assistente imprime o SQL para executar manualmente. De qualquer forma, o TomoriBot inicializa seu esquema (schema), seeds, migrações, pgcrypto e o esquema RAG automaticamente na primeira inicialização.

O Full Install executa o Base Install primeiro, depois tenta instalar os extras abaixo. Se algum falhar, ele imprime o comando ou guia para terminar manualmente e continua:

ExtraPropósito
pgvectorBusca vetorial para a memória pessoal/RAG.
pg_cronLimpeza opcional e agendada de linhas de tempo de recarga/lembretes.
Ativos de tokenizadorAtivos locais de tokenizador para bias logit com base no modelo.

Para instalar qualquer um deles manualmente, veja os Extras da Instalação Manual.

Terminal window
bun run dev # apenas o bot
bun run launch --searxng --crawl4ai # bot + sidecars (veja bun run launch --help)

Quando o bot estiver online, execute /setup no Discord para conectar um provedor de IA. Um espaço de trabalho (workspace) que não contém um provedor próprio não pode responder, a menos que ele rode no modo BYOK de Usuário (User BYOK) onde o provedor pessoal de cada membro responde em seu lugar, então este é o último passo de todos os caminhos de instalação.

O /setup abre um painel de checklist efêmero que apenas a pessoa que o executou pode operar. Em um servidor isso exige Gerenciar Servidor (Manage Server); em uma DM (Mensagem Direta) ele está disponível para o próprio espaço de trabalho da pessoa. Cada linha no painel é um valor em rascunho: Finish Setup (Finalizar Configuração) é o único controle que escreve alguma coisa, então abrir, editar, cancelar ou reiniciar deixa todas as linhas do banco de dados intactas.

PassoApareceO que ele coleta
Policies (Políticas)Apenas RUN_ENV=productionAceitação dos Termos de Serviço e da Política de Privacidade, ambos em um modal.
AI Provider (Provedor de IA)Todos os ambientesComo as respostas chegam a um modelo. Um dos três modos de acesso abaixo.
Starting Settings (Configurações Iniciais)Todos os ambientesPersona inicial, estilo de resposta, fuso horário e a predefinição (preset) de prompt de sistema padrão do espaço de trabalho.

Todo outro valor de RUN_ENV renderiza o layout de dois passos e nenhum texto de política. Uma implantação rodando com RUN_ENV=production registra /legal terms-of-service e /legal privacy-policy ao lado de /legal license; todo outro valor registra apenas /legal license.

  • AI Provider (Recomendado): escolha um provedor do catálogo e cole sua chave de API. A chave é validada contra o provedor e criptografada no rascunho; o painel mostra apenas que uma chave está armazenada, nunca a própria chave. Execute /help, depois Setup (Configuração) > Step 1: Get an API Key (Passo 1: Obter uma Chave de API) para o guia passo a passo por provedor.
  • Custom Endpoint (Avançado): uma subárea de dois botões para um endpoint de hospedagem própria ou proxy. Configure Connection (Configurar Conexão) coleta a compatibilidade da API, um rótulo, a URL e um token de autenticação opcional, e verifica se o endpoint responde. Configure Text Model (Configurar Modelo de Texto) coleta o código do modelo, o tamanho de contexto e suas declarações de capacidade (capability declarations), e permanece desabilitado até que uma conexão seja validada. Salvar a conexão novamente limpa a declaração do modelo, porque as declarações dependem da compatibilidade da API escolhida. Este é o mesmo registro que /providers realiza, feito dentro do assistente, e ele não cria nenhuma linha antes de Finish Setup.
  • User BYOK (apenas servidores, nunca em uma DM): o espaço de trabalho não mantém nenhum provedor próprio e todas as respostas ativadas por membros resolvem um provedor pessoal em seu lugar. Confirme isso no modal e, em seguida, peça para os membros registrarem os seus com /personal providers. Veja Server Moderation.

Um modal de quatro linhas coleta a persona, o estilo de resposta, o deslocamento do fuso horário (timezone) e o prompt de sistema padrão. O fuso horário é opcional e o padrão é UTC. O prompt de sistema oferece Built-in Default (Padrão Embutido, Recomendado) além de toda predefinição (preset) no catálogo do espaço de trabalho: a escolha embutida não armazena nenhum texto de prompt, então ela continua rastreando o padrão enviado de fábrica, e uma escolha de predefinição armazena o texto daquela predefinição conforme ele é lido no momento do commit. Excluir uma persona ou prompt armazenado do catálogo reabre o passo até que outro seja escolhido.

Finish Setup permanece desabilitado até que cada passo renderizado esteja completo. Ele revalida os catálogos e o estado do espaço de trabalho, faz o commit de todo o rascunho em uma única transação, e substitui o painel com o recibo. Cancel (Cancelar) descarta o rascunho e expira todo controle no painel.

Um rascunho vive no processo do bot, não no banco de dados, então ele termina apenas quando é cancelado, concluído ou quando o processo é reiniciado. No máximo SETUP_DRAFT_MAX_ENTRIES (padrão 200) rascunhos são mantidos ao mesmo tempo; o mais antigo é descartado no limite. Isso está documentado em .env.optional.example sob Setup wizard drafts. Um controle para uma sessão que não está mais disponível não escreve nada.

Use o comando de atualização com backup primeiro: bun run update

Isso executa bun run backup, em seguida git pull --rebase --autostash, depois bun install --frozen-lockfile. Adicione --build se você rodar a partir de dist/, ou --docker para uma implantação Compose. Detalhes completos na página Manutenção & Backups.