Distribuire Potato su Hetzner, Vultr o Linode
Porta uno studio Potato su una macchina virtuale Hetzner, Vultr o Linode con potato deploy, da circa €6 al mese, con HTTPS e un disco persistente.
potato deploy up --provider hetzner porta uno studio di annotazione su una macchina virtuale Hetzner Cloud per circa €6 al mese, il prezzo predefinito più basso tra le destinazioni VM a pagamento di Potato. --provider vultr e --provider linode fanno lo stesso su Vultr e su Linode di Akamai per $10 e $12 al mese. Ciascuna è una normale macchina virtuale con un disco che sopravvive ai riavvii, quindi uno studio può girarci per settimane senza un servizio di backup. Potato le configura tutte e tre allo stesso modo: un firewall che apre solo le porte 22, 80 e 443, Docker, il server web Caddy con un certificato Let's Encrypt e Potato in esecuzione come servizio di sistema. Questa pagina richiede Potato 2.10 o successivo e una configurazione che hai già eseguito con potato start.
Scegliere tra i tre
I tre differiscono per prezzo, memoria, valuta di fatturazione e luogo in cui la macchina gira per impostazione predefinita. La tabella riporta la dimensione che Potato crea se non passi --size, con il prezzo mensile che stampa:
--provider hetzner | --provider vultr | --provider linode | |
|---|---|---|---|
| Dimensione predefinita | cx23, 2 vCPU e 4 GB | vc2-1c-2gb, 1 vCPU e 2 GB | g6-standard-1, 1 vCPU e 2 GB |
| Prezzo mensile | circa €6, indirizzo IPv4 incluso | $10 | $12 |
| Località predefinita | nbg1, Norimberga | ewr, New Jersey | us-east, Newark |
| Variabile del token | HCLOUD_TOKEN | VULTR_API_KEY | LINODE_TOKEN |
Hetzner offre più memoria a parità di prezzo, e Potato tiene in memoria l'insieme degli item, quindi Hetzner è adatto a un corpus grande con un budget ridotto. Hetzner fattura in euro da una società con sede in Germania, cosa che le regole di acquisto di alcune istituzioni non consentono. Vultr e Linode fatturano in dollari statunitensi.
Creare un token API
Ogni provider si autentica con un token API che crei nella sua console e metti nel tuo ambiente:
- Hetzner. Nella console di Hetzner Cloud, apri la sezione Security del progetto e crea un token API con permessi di lettura e scrittura.
- Vultr. Crea una chiave API nella dashboard di Vultr e aggiungi l'indirizzo IP della tua macchina alla lista di controllo degli accessi della chiave, altrimenti Vultr rifiuta ogni richiesta.
- Linode. Crea un token di accesso personale con accesso in lettura e scrittura a Linodes, Firewalls e Volumes.
Installa l'extra di deploy, esporta il token e verifica che Potato possa usarlo:
pip install 'potato-annotation[deploy]'
export HCLOUD_TOKEN=...
potato deploy providers --verifyDecidere chi può accedere
potato deploy non modifica le tue impostazioni di accesso, e l'indirizzo della macchina è pubblico. Se la configurazione permette a chiunque di registrarsi, l'esecuzione di prova qui sotto segnala l'avviso D003, "Anyone who finds the URL can register and annotate." (Chiunque trovi l'URL può registrarsi e annotare.) Per uno studio in crowdsourcing la registrazione aperta di solito è voluta. Per annotatori nominativi, elencali sotto user_config.users con allow_all_users: false (Gestione delle password) oppure falli accedere con Google, GitHub o la tua istituzione (Autenticazione SSO e OAuth) prima del deploy.
Controllare il piano e distribuire
Un'esecuzione di prova non richiede alcun account e non crea nulla. Stampa ogni passaggio, il costo stimato e qualsiasi impostazione rischiosa della configurazione:
potato deploy up myproject/config.yaml --provider hetzner --dry-run
potato deploy up myproject/config.yaml --provider hetznerIl secondo comando esegue il deploy dopo che hai confermato il piano. Termina stampando l'URL, un indirizzo https:// sull'IP della macchina, e il percorso del file della chiave di amministrazione, .potato/secrets.json accanto alla tua configurazione. La chiave di amministrazione apre la dashboard di amministrazione su /admin. Eseguire di nuovo up dopo aver modificato la configurazione carica la nuova versione sulla stessa macchina. Durante lo studio, potato deploy logs myproject/config.yaml -f segue il log del server su tutti e tre i provider.
--region e --size cambiano la località e la macchina, e --volume-gb aggiunge un disco separato per i dati del task. Hetzner vende le sue macchine cx solo nelle località europee, quindi un deploy nelle sue località statunitensi, ash e hil, richiede un tipo cpx passato con --size. Se il tipo non è in vendita nella località scelta, Potato si ferma prima di creare qualsiasi cosa ed elenca le località che lo vendono.
Certificati senza nome di dominio
Senza un nome di dominio, Let's Encrypt emette il certificato per l'indirizzo IP della macchina. Dura circa sei giorni e si rinnova automaticamente. potato deploy status segnala un rinnovo non riuscito, quindi controllalo ogni pochi giorni se lo studio gira senza supervisione. Per usare un tuo dominio, punta un record DNS A all'IP della macchina ed esegui di nuovo il deploy con --domain annotate.example.edu. L'account Let's Encrypt usa come contatto l'indirizzo del tuo git config user.email, e --acme-email ne imposta un altro.
Dettagli dei provider
Linode richiede una password di root alla creazione di una macchina, anche quando vengono fornite chiavi SSH. Potato ne genera una, la salva in .potato/secrets.json e disattiva l'accesso SSH con password, quindi la password non può essere usata per accedere. Su Vultr, un disco separato creato con --volume-gb viene collegato dopo l'avvio della macchina, e la configurazione attende che il dispositivo compaia prima di formattarlo e montarlo.
Chiudere lo studio
Le annotazioni si trovano sul disco della macchina, che viene eliminato insieme alla macchina. Recuperale prima sul tuo computer, controllale e poi rimuovi il server:
potato deploy pull myproject/config.yaml
potato deploy destroy myproject/config.yamlpull scrive tutto ciò che il deployment ha raccolto in una nuova directory potato-pull-<name>-<timestamp> e copia i database con il comando di backup di SQLite. destroy non si esegue su un deployment su cui non è mai stato eseguito un pull.
Approfondimenti
- Eseguire Potato in locale o nel cloud, per le altre destinazioni cloud, tra cui DigitalOcean
- Distribuire un server di annotazione, per scegliere un host
- Riferimento per i provider di VM