Implantar o Potato na Hetzner, na Vultr ou na Linode
Coloque um estudo do Potato em uma VM da Hetzner, da Vultr ou da Linode com o potato deploy, a partir de cerca de €6 ao mês, com HTTPS e um disco persistente.
potato deploy up --provider hetzner coloca um estudo de anotação em uma máquina virtual do Hetzner Cloud por cerca de €6 ao mês, o menor preço padrão entre os destinos de VM pagos do Potato. --provider vultr e --provider linode fazem o mesmo na Vultr e na Linode da Akamai por $10 e $12 ao mês. Cada um é uma máquina virtual comum com um disco que sobrevive a reinicializações, então um estudo roda nela por semanas sem um serviço de backup. O Potato configura os três da mesma forma: um firewall que abre apenas as portas 22, 80 e 443, o Docker, o servidor web Caddy com um certificado Let's Encrypt e o Potato rodando como serviço do sistema. Esta página exige o Potato 2.10 ou posterior e uma configuração que você já executou com potato start.
Escolhendo entre os três
Os três diferem em preço, memória, moeda de cobrança e local onde a máquina roda por padrão. A tabela mostra o tamanho que o Potato cria se você não passar --size, com o preço mensal que ele exibe:
--provider hetzner | --provider vultr | --provider linode | |
|---|---|---|---|
| Tamanho padrão | cx23, 2 vCPU e 4 GB | vc2-1c-2gb, 1 vCPU e 2 GB | g6-standard-1, 1 vCPU e 2 GB |
| Preço mensal | cerca de €6, com o endereço IPv4 | $10 | $12 |
| Local padrão | nbg1, Nuremberg | ewr, Nova Jersey | us-east, Newark |
| Variável do token | HCLOUD_TOKEN | VULTR_API_KEY | LINODE_TOKEN |
A Hetzner oferece mais memória pelo preço, e o Potato mantém o conjunto de itens em memória, então a Hetzner serve para um corpus grande com um orçamento pequeno. A Hetzner cobra em euros, a partir de uma empresa na Alemanha, o que as regras de compras de algumas instituições não permitem. A Vultr e a Linode cobram em dólares americanos.
Criando um token de API
Cada provedor se autentica com um token de API que você cria no console dele e coloca no seu ambiente:
- Hetzner. No console do Hetzner Cloud, abra a seção Security do projeto e crie um token de API com permissão de leitura e escrita.
- Vultr. Crie uma chave de API no painel da Vultr e adicione o endereço IP da sua máquina à lista de controle de acesso da chave, ou a Vultr rejeita todas as requisições.
- Linode. Crie um token de acesso pessoal com acesso de leitura e escrita a Linodes, Firewalls e Volumes.
Instale o extra de implantação, exporte o token e verifique se o Potato consegue usá-lo:
pip install 'potato-annotation[deploy]'
export HCLOUD_TOKEN=...
potato deploy providers --verifyDecidindo quem pode fazer login
potato deploy não altera as suas configurações de login, e o endereço da máquina é público. Se a configuração permite que qualquer pessoa se cadastre, a simulação abaixo informa o aviso D003, "Anyone who finds the URL can register and annotate." (Qualquer pessoa que encontrar a URL pode se cadastrar e anotar.) Em um estudo de crowdsourcing, o cadastro aberto costuma ser intencional. Para anotadores nominais, liste-os em user_config.users com allow_all_users: false (Gerenciamento de Senhas) ou faça com que entrem pelo Google, pelo GitHub ou pela sua instituição (Autenticação SSO e OAuth) antes de implantar.
Conferindo o plano e implantando
Uma simulação não precisa de conta e não cria nada. Ela exibe cada passo, o custo estimado e qualquer configuração arriscada no arquivo de configuração:
potato deploy up myproject/config.yaml --provider hetzner --dry-run
potato deploy up myproject/config.yaml --provider hetznerO segundo comando implanta depois que você confirma o plano. Ao terminar, ele exibe a URL, um endereço https:// no IP da máquina, e o caminho do arquivo da chave de administrador, .potato/secrets.json, ao lado da sua configuração. A chave de administrador abre o painel do administrador em /admin. Executar up de novo depois de editar a configuração envia a nova versão para a mesma máquina. Durante o estudo, potato deploy logs myproject/config.yaml -f acompanha o log do servidor nos três provedores.
--region e --size mudam o local e a máquina, e --volume-gb acrescenta um disco separado para os dados da tarefa. A Hetzner vende as máquinas cx apenas nos seus locais europeus, então uma implantação nos locais dela nos EUA, ash e hil, precisa de um tipo cpx passado com --size. Se o tipo não for vendido no local escolhido, o Potato para antes de criar qualquer coisa e lista os locais que o vendem.
Certificados sem nome de domínio
Sem um nome de domínio, o Let's Encrypt emite o certificado para o endereço IP da máquina. Ele dura cerca de seis dias e é renovado automaticamente. potato deploy status informa uma renovação que falha, então verifique-o a cada poucos dias se o estudo roda sem supervisão. Para usar o seu próprio domínio, aponte um registro DNS A para o IP da máquina e implante de novo com --domain annotate.example.edu. A conta do Let's Encrypt usa o endereço do seu git config user.email como contato, e --acme-email define outro.
Detalhes de cada provedor
A Linode exige uma senha de root quando uma máquina é criada, mesmo quando chaves SSH são fornecidas. O Potato gera uma, guarda-a em .potato/secrets.json e desativa o login por senha via SSH, então a senha não pode ser usada para entrar. Na Vultr, um disco separado criado com --volume-gb é anexado depois que a máquina inicia, e a configuração espera o dispositivo aparecer antes de formatá-lo e montá-lo.
Encerrando o estudo
As anotações ficam no disco da máquina, que é apagado junto com a máquina. Primeiro baixe-as para o seu computador, confira-as e só então remova o servidor:
potato deploy pull myproject/config.yaml
potato deploy destroy myproject/config.yamlpull grava tudo o que a implantação coletou em um novo diretório potato-pull-<name>-<timestamp> e copia os bancos de dados com o comando de backup do SQLite. destroy não roda em uma implantação da qual nunca foi feito um pull.
Leitura adicional
- Executar o Potato localmente ou na nuvem, para os outros destinos na nuvem, incluindo a DigitalOcean
- Implantar um servidor de anotação, para escolher um host
- Referência dos provedores de VM