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

7 commenti:

  1. Dopo una mattinata a capire perchè non mi faceva fare il push (usavo la shell di windows e non quella di git) forse credo di avercela fatta :)

    https://guarded-earth-6361.herokuapp.com/

    RispondiElimina
    Risposte
    1. Grande Cristian. Sò soddisfazioni :)))

      Elimina
  2. Dopo aver scritto git push heroku master mi chiede user e pass, ma scrivo quelle di login non me le accetta.
    Grazie

    RispondiElimina
  3. Devi eseguire il comando dalla Git Shell che dovresti avere sul pc e non da una finestra dos normale di windows.

    RispondiElimina
  4. alla fine ce l'ho fatta :)
    https://sheltered-lowlands-1120.herokuapp.com/

    RispondiElimina
    Risposte
    1. https://sheltered-lowlands-1120.herokuapp.com/
      ho corretto qualcosina, ed aggiunto anche qualche funzioncina in più.
      p.s. è possibile che dovete consentire l'esecuzione dello script per la nuova pagina

      Elimina