Para administradores
← Todos os tópicos

Instalação no seu próprio servidor

Como uma instalação é montada: o pacote e a licença, os serviços, HTTPS, o updater, as configurações do .env e onde fica cada coisa.

Você pode rodar o draften no seu próprio servidor. Os e-mails, os rascunhos e as chaves ficam então com você; só sai o que você envia ao provedor do modelo de linguagem (ou nada, com um modelo local).

Esta página é uma visão geral de como uma instalação é montada. O procedimento em si está em Instalação passo a passo.

O pacote e a licença

Cada versão do draften é um único pacote, um arquivo draften-<version>.tar. Ele contém as imagens de todos os serviços, os arquivos que os iniciam, uma lista assinada de tudo o que está dentro e o comando ./draften, que gerencia a instalação. O servidor não precisa de nada além do Docker.

Para rodá-lo você precisa de uma licença – um arquivo que você recebe de nós e carrega na interface. Ela limita o número de caixas de e-mail e de assistentes, e a chave dela também é usada para baixar novas versões. Mais em A licença.

Do que uma instalação é feita

Tudo roda no Docker por meio do docker compose:

ServiçoO que faz
dbo banco de dados MariaDB – guarda tudo: configurações, instruções, mensagens, rascunhos, segredos criptografados. Nada de outra máquina tem acesso a ele
workerlê as caixas de e-mail, chama os modelos, escreve rascunhos, aprende, executa os passos da configuração guiada. Podem rodar vários
web-blue, web-greena interface web e a API em duas cores: uma atende, a outra espera a próxima versão – é por isso que as atualizações não causam interrupção
proxya porta de entrada de fora: alterna entre as cores da interface web e, opcionalmente, termina o HTTPS
updateropcional: executa o que o operador pede em Instalação (atualização, volta para a versão anterior, número de processos, troca da chave)
cloudflaredopcional: publicação da interface por um Cloudflare Tunnel

A interface e o worker não conversam diretamente – os dois trabalham com o mesmo banco de dados; o que precisa dos e-mails ou de um modelo, a interface coloca na fila como um job para o worker.

Do que você vai precisar

HTTPS

O updater

O updater é um serviço opcional que executa o que o operador pede em Instalação → Instalação: uma atualização para uma nova versão, a volta para a anterior, a alteração do número de processos de worker e a troca da chave de criptografia. Para isso ele executa o mesmo ./draften que você executaria.

O updater tem acesso ao Docker, o que significa direitos de root no servidor. A interface em si nunca mexe no Docker – ela só grava uma solicitação no banco de dados para o updater. Ele é ativado na instalação (COMPOSE_PROFILES=updater no .env); sem ele, tudo funciona pela linha de comando.

Configurações no .env

O arquivo .env, no diretório da instalação, é gravado pelo instalador e só pode ser lido pelo proprietário dele. Ele guarda a infraestrutura e os segredos; tudo o que diz respeito aos assistentes fica no banco de dados e é definido na interface.

VariávelPara quê
DRAFTEN_VERSION, DRAFTEN_EDITIONa versão em execução e a edição (onprem)
DB_ROOT_PASSWORD, DB_PASSWORDsenhas do banco de dados
MASTER_KEYa chave que criptografa os segredos no banco de dados (chaves de API, acesso às caixas de e-mail, clientes de login). Guarde uma cópia fora do servidor
MASTER_KEY_PREVIOUSa chave anterior depois da troca, enquanto backups/ tiver dumps de antes dela
WEB_APP_SECRETuma sequência aleatória que assina as sessões
WEB_PUBLIC_URLo endereço em que as pessoas abrem a interface; os endereços de redirecionamento do login são montados a partir dele
WEB_BIND, DRAFTEN_TLS, WEB_TLS_BINDonde o HTTP e o HTTPS escutam
COMPOSE_PROFILESserviços opcionais: updater, tunnel
DRAFTEN_BACKUPSquantos dumps do banco de dados de antes de uma atualização manter em backups/ (padrão 3)
CLOUDFLARE_TUNNEL_TOKENsó com um Cloudflare Tunnel
INTERVAL_SECONDS, WORKER_CONCURRENCYo intervalo padrão de verificação e as verificações simultâneas (melhor definir na interface)
WORKER_REPLICASquantos processos worker rodam nesta máquina (padrão 1), veja Operação e capacidade

Um valor com o sinal $ precisa ser escrito como $$ no .env – caso contrário, a parte depois do cifrão se perde sem aviso. Chaves geradas com openssl rand -hex 32 nunca contêm cifrão.

Onde fica cada coisa

.envas configurações e os segredos da instalação
compose.yaml, proxy/como os contêineres rodam; cada atualização os substitui
backups/dumps do banco de dados de antes das atualizações
data/o log e os relatórios do worker
updates/pacotes esperando para ser instalados; o updater também baixa para cá
NOTES.mdo que a versão instalada mudou

Próximos passos

Versão em texto