# Instalação passo a passo

A instalação inteira é feita por um único comando, `./draften install`, executado
no pacote descompactado. Aqui está o procedimento, de um servidor vazio até o
primeiro login. O que uma instalação contém e onde fica cada coisa está descrito
em [Instalação no seu próprio servidor](/pt/admin/self-hosting).

## Passo 1: Prepare o servidor

- x86-64 com Linux (um Synology ou outro NAS com Docker também serve),
- Docker Engine 24 ou mais recente com o plugin compose – confira com
  `docker compose version`,
- 4 GB de memória e 20 GB de espaço em disco,
- as ferramentas `tar`, `base64` e `sha256sum` (ou `shasum`), que quase todo
  sistema tem.

O servidor não precisa de internet para a instalação: o pacote traz todas as
imagens.

## Passo 2: Confira se o pacote é nosso

Para cada pacote de versão `draften-<version>.tar` publicamos o checksum dele.
Calcule-o e compare:

```
sha256sum draften-<version>.tar
```

Cada atualização posterior a instalação confere sozinha com as nossas chaves. A
primeira instalação, porém, não tem com o que comparar – esta é a verificação
dela. Se os checksums forem diferentes, não instale o pacote e fale com a gente.

## Passo 3: Descompacte o pacote e execute o instalador

Escolha o diretório em que a instalação vai ficar, descompacte o pacote nele e
execute o instalador:

```
mkdir /srv/draften
tar -xf draften-<version>.tar -C /srv/draften
cd /srv/draften
./draften install
```

O instalador carrega as imagens, confere o pacote e pergunta o que precisa.

## Passo 4: Responda às perguntas do instalador

- **O endereço** em que as pessoas abrem o draften, como `https://draften.firma.cz`.
  Precisa ser o endereço que elas realmente usam – os endereços de redirecionamento
  para entrar com a Microsoft e o Google são montados a partir dele.
- **A organização** e o **nome curto** dela (letras minúsculas, dígitos,
  hífens).
- **O primeiro administrador**: e-mail, nome e idioma (`cs` ou `en`). Ele se
  torna o proprietário da organização e o operador da instalação inteira.
- **O updater** (sim / não) – um serviço que permite atualizar, alterar o
  número de processos e trocar a chave de criptografia pela interface web. Ele
  tem acesso ao Docker, o que significa direitos de root nesta máquina. Sem
  ele, tudo funciona pela linha de comando.
- **O certificado HTTPS** – o arquivo do certificado e a chave dele (PEM), se o
  HTTPS for terminar diretamente no draften. Deixe vazio quando um proxy reverso
  ou um túnel na frente do draften cuidar do HTTPS (veja o passo 7).

Cada resposta também pode ser dada diretamente no comando, para que você possa
automatizar a instalação com um script; `./draften help` lista as opções. Por
exemplo:

```
./draften install --url https://draften.firma.cz --org "Firma Ltda." \
  --admin-email jan@firma.cz --admin-name "Jan Novák" --locale cs --updater yes
```

## Passo 5: Guarde uma cópia do `.env` fora do servidor

O instalador grava as configurações e os segredos no arquivo `.env`, no
diretório da instalação. **Copie-o – pelo menos o valor de `MASTER_KEY` – para
um lugar seguro fora do servidor.** Essa chave criptografa o acesso às caixas de
e-mail, as chaves dos modelos e as senhas para envio de e-mails. Sem ela ninguém
consegue lê-los, nem a partir de um backup – e nós não a temos.

## Passo 6: Defina sua senha e entre

No final, o instalador mostra um link para definir a senha do primeiro
administrador. Abra-o em um navegador, defina a senha e você já estará dentro. O
link funciona uma vez e vale por 7 dias. Como é a página da senha você vê no
guia [Entrar](/pt/signing-in).

!> Só o instalador mostra o link. Não o copie para lugar nenhum nem o repasse a
ninguém – quem tiver o link define a senha do administrador.

## Passo 7: Publique o endereço

Dependendo do que você escolheu no passo 4:

- **Com um certificado**, o próprio draften escuta na porta 443 e redireciona
  da porta 80 para HTTPS. Basta que o endereço aponte para este servidor no DNS.
- **Sem um certificado**, o draften escuta em `127.0.0.1:8085` e o seu proxy
  reverso ou túnel na frente dele termina o HTTPS. Quando o proxy roda em
  outra máquina, defina `WEB_BIND=0.0.0.0:8085` no `.env`.
- **Com um Cloudflare Tunnel**, nenhuma porta aberta é necessária: coloque o
  token do túnel no `.env` (`CLOUDFLARE_TUNNEL_TOKEN`), adicione `tunnel` a
  `COMPOSE_PROFILES` (por exemplo `COMPOSE_PROFILES=updater,tunnel`) e execute
  `docker compose up -d`. Na Cloudflare, aponte o túnel para `http://127.0.0.1:8085`.

Um certificado também pode ser adicionado depois:

```
./draften certificate cert.pem key.pem --url https://draften.firma.cz
```

## Passo 8: Carregue a licença

Enviamos a licença como um arquivo `licence-<number>.json`. Na interface, abra
**Instalação → Instalação**, escolha o arquivo no cartão **Licença**, na parte
de baixo, e carregue-o. Enquanto a instalação não tiver licença, os assistentes
não processam e-mails e não é possível criar caixa de e-mail nem assistente.
Mais em [A licença](/pt/admin/licence).

## Passo 9: Defina as chaves padrão e o envio de e-mails

Na mesma página **Instalação**, defina as **Chaves de API padrão** para os
modelos e o **Envio de e-mails padrão** (de onde saem os convites e os links de
senha). Eles valem para todas as organizações que não definirem os seus.
Detalhes: [Chaves de API dos modelos](/pt/admin/api-keys) e
[Envio de e-mails](/pt/admin/outgoing-mail).

## Passo 10: Conecte uma caixa de e-mail e configure um assistente

Daqui em diante você segue como em qualquer outra instalação:

1. [Adicione e conecte uma caixa de e-mail](/pt/admin/adding-a-mailbox).
2. [Configure um assistente com a configuração guiada](/pt/new-assistant).
3. Convide mais pessoas – [Pessoas e perfis de acesso](/pt/admin/people-and-roles).

## Passo 11: Confira se tudo está rodando

```
./draften status
```

mostra a versão, a saúde da interface web e dos workers, o status do HTTPS e os
dumps do banco de dados. Na interface, a página **Operação** mostra se os
workers dão sinal – veja [Operação e capacidade](/pt/admin/operations).

## Passo 12: Cuide dos backups

Com o updater, o banco de dados recebe backup automaticamente, todos os dias às
01:00, na pasta `backups/` do diretório da instalação; você muda o horário em
**Instalação → Instalação**, no cartão **Backups do banco de dados**. Sem o
updater, execute `./draften backup` pelo cron. Os backups, porém, ficam no
mesmo disco que o banco de dados: **configure a cópia de `backups/` e do `.env`
para fora do servidor.** Detalhes:
[Backup e restauração](/pt/admin/backup-and-restore).

## Próximos passos

- [Atualizar com o updater](/pt/admin/updating-with-the-updater) – uma nova
  versão com um único botão,
- [Atualizar pela linha de comando](/pt/admin/updating),
- [Backup e restauração](/pt/admin/backup-and-restore),
- [Solução de problemas](/pt/admin/troubleshooting).
