deploy
Come pubblicare una piccola web app su un VPS senza DevOps
La tua app gira benissimo sul portatile — la parte difficile è la distanza tra «funziona sul mio computer» e «online su internet». Ecco cosa significa davvero pubblicarla, le quattro cose di cui ogni app ha bisogno e come saltare tutta la configurazione.
Hai costruito qualcosa. Gira sul tuo portatile — digiti un comando, apri localhost, ed eccolo lì. Ora vuoi che lo vedano anche gli altri, a un indirizzo vero, su internet. È in quest'ultimo passaggio che un numero sorprendente di progetti personali si arena in silenzio.
Il codice è pronto. Quello che resta è tutto ciò che gli sta intorno: portare l'app su un server, tenerla in funzione anche dopo che hai chiuso il portatile e renderla raggiungibile a un indirizzo come si deve, con tanto di lucchetto. Quell'insieme di incombenze ha un nome — DevOps — ed è la parte per cui nessuno si era iscritto.
Cosa significa davvero «pubblicare»
Pubblicare significa solo spostare la tua app da «gira sul mio computer» a «gira su una macchina che il mondo intero può raggiungere». Perché succeda, devono essere vere tre cose:
- il codice deve stare sul server,
- deve continuare a funzionare — anche dopo un crash o un riavvio,
- e i visitatori devono poterlo raggiungere a un dominio, via HTTPS.
Sul portatile le prime due le ottieni quasi gratis: avvii l'app e gira finché non la fermi. Un server è un'altra cosa — ed è proprio quella differenza a essere tutto il lavoro.
Il muro tra la tua app e internet
Ecco la pila di piccoli pezzi poco familiari che di solito si mette in mezzo:
- Un gestore di processi — la tua app deve avviarsi da sola e tornare su dopo un crash o un riavvio. Se la avvii a mano, muore nel momento in cui esci dalla sessione.
- Un reverse proxy — la tua app è in ascolto su una porta interna come la 3000, ma i visitatori arrivano sulla 80 e sulla 443. Qualcosa deve stare davanti e instradarli dentro.
- HTTPS — il lucchetto. Un certificato, emesso e rinnovato, altrimenti i browser etichettano il tuo sito come «Non sicuro».
- Un dominio e una porta aperta — il nome deve puntare al server, e il firewall deve lasciar passare il traffico web.
Nessuno di questi è difficile preso da solo. Insieme, per la prima pubblicazione, sono un muro — quattro strumenti che non hai mai incontrato, ognuno con il suo file di configurazione e il suo modo di fallire in silenzio.
Di cosa ha davvero bisogno la tua app
Togli di mezzo gli strumenti e i requisiti sono semplici. La tua app ha bisogno di un posto dove girare, di un modo per restare in funzione, di un percorso dall'indirizzo pubblico alla sua porta interna e di un certificato perché la connessione sia privata. È tutta qui la lista. Ogni strumento nel mucchio del DevOps esiste per fornire una di queste quattro cose.
Tienilo a mente e pubblicare smette di sembrare magia. Sono quattro necessità — in qualunque modo tu scelga di soddisfarle.
La scorciatoia
Puoi montare ogni pezzo da solo: scegli un gestore di processi, configuri un reverse proxy, imposti i certificati, fai puntare il dominio, apri la porta. È una vera scuola, e un vero pomeriggio — o tre. Oppure puoi lasciare che se ne occupi Server Manager: gli dici che hai una web app e l'indirizzo a cui deve vivere, e lui mette la tua app sul server, la tiene in funzione attraverso crash e riavvii, instrada il tuo dominio verso di lei e attiva l'HTTPS — le quattro necessità, gestite, senza un file di configurazione in vista.
L'unico prerequisito è il dominio. Se non l'hai ancora fatto, parti da come collegare un dominio al server — e il lucchetto arriva da solo una volta che il nome si risolve.
La tua app, il tuo server
La distanza tra «funziona sul mio computer» e «è online» è il punto in cui tante buone idee finiscono ad aspettare per sempre. Non deve andare così. Il codice era la parte difficile, e l'hai già fatta — metterlo online dovrebbe essere la parte facile, non il muro che ti ferma. La tua app, sul tuo server, al tuo indirizzo: è tutta qui la ricompensa.
Le guide di aiuto ti accompagnano passo passo nella pubblicazione di un'app quando sei pronto.