Visualizzazione post con etichetta heroku. Mostra tutti i post
Visualizzazione post con etichetta heroku. Mostra tutti i post

giovedì, dicembre 18, 2014

"Installiamo" le nostre web app node.js su Heroku!

Prima di proseguire, affrontiamo il problema di rendere accessibile la nostra webapp al mondo intero senza spendere una lira :)

Io utilizzo da un pò la piattaforma heroku, ideale per piccole applicazioni di sviluppo che non necessitano di particolari risorse: se poi un giorno la vostra applicazione dovesse diventare "famosa" ecco che potrete al volo comprare dei dyno aggiuntivi, dove il dyno è la singola unità di computazione come spiegato a questo indirizzo; se nessuno naviga la vostra applicazione, essa va automaticamente in standby, sospendendo il conteggio per il calcolo del costo finale: si pagano le risorse che vengono effettivamente utilizzate.

Tranquilli, per i nostri scopi non pagheremo nulla: obiettivo di questo post è installare (nel gergo informatico anglosassone si dice : to deploy) l'applicazione del post precedente su heroku.

Ecco i passi necessari
  1. Prerequisiti:  node.js e github gia installati (e spero che a questo punto lo siano :))
  2. Dopo aver installato github, usate la git shell per i prossimi comandi, in modo da non avere problemi di variabili d'ambiente. 
  3. Createvi un account su heroku
  4. Fate il download e installate il toolbelt heroku per la vostra piattaforma
  5. Aprite una shell e digitate heroku login inserendo le credenziali di accesso del vostro account
  6. Installate in locale un template di progetto creato da heroku su github per avere i file di configurazione necessari: digitate  git clone https://github.com/heroku/node-js-getting-started.git
  7. Posizionatevi nella cartella  di progetto node-js-getting-started e digitate heroku create per creare l'applicazione da installare su heroku: heroku creerà un nome random per la vostra applicazione e un repository git remoto dal nome heroku 
  8. Per installare effettivamente l'applicazione sulla piattaforma heroku,digitate git push heroku master
  9. Per vedere l'applicazione in esecuzione digitate heroku open:  si aprirà il vostro browser che punterà all'indirizzo scelto da heroku per la vostra applicazione
Partendo da questo scheletro di progetto, potete fare tutte le modifiche che volete e reinstallare il tutto.

Facciamo ad esempio queste modifiche:
  • Inseriamo una semplice pagina index.html nella cartella public
 <!DOCTYPE html>  
 <html lang="en">  
 <head>  
      <meta charset="UTF-8">  
      <title>Node js</title>  
 </head>  
 <body>  
      <p>Applicazione node.js su heroku ok!</p>  
 </body>  
 </html>  
  • Rinominiamo il file index.js in app.js e apportiamo le seguenti modifiche
 var express = require('express');  
 var app = express();  
   
 app.set('port', (process.env.PORT || 8000));  
   
 app.use(express.static(__dirname + '/public'));  
   
 app.listen(app.get('port'), function() {  
  console.log("Node app is running at localhost:" + app.get('port'));  
 });  

Poichè la porta su cui andrà in esecuzione è decisa da heroku, non possiamo mandare in esecuzione il server su una porta qualsiasi ma utilizzeremo la porta definita dalla piattaforma in process.env.PORT: se tale porta non è definita, perchè magari eseguiamo noi in locale l'applicazione, verrà utilizzata la porta 8000.
  • Sostituire nel file Procfile e in package.json il riferimento a index.js con app.js
Ora dobbiamo aggiornare il repository git remoto digitando, sempre dalla cartella root del progetto e usando la git shell
  1. git add --all
  2. git commit -m "apportate modifiche ... "
  3. git push heroku master
Riaprite il browser all'indirizzo dell'applicazione o direttamente o digitando heroku open.

La mia applicazione è installata a questo indirizzo: https://whispering-peak-1284.herokuapp.com/

Ovviamente è possibile, in un secondo momento, acquistare un dominio e associarlo all'applicazione.

Provate a ripetere i passi precedenti e ad installare su heroku una vostra applicazione: il primo che posterà nei commenti l'indirizzo della sua applicazione ... contribuirà semplicemente alla mia soddisfazione personale :)

In questo post le istruzioni su come usare github, nel caso non lo abbiate mai utilizzato.

E per qualsiasi dubbio, commentate :))

Alla prox.
Ivan