Ce tutoriel a pour objectif d'apprendre à mettre en ligne une application web, dans le cadre du cycle 1 des ateliers Women On Rails.
- C'est quoi Heroku ?
- Comment l'utiliser ?
- Installer Heroku
- Créer un compte Heroku
- Connecter son projet à son compte Heroku
- Changer le type de base de données utilisé
- Installer PostGreSql
- Mettre à jour la configuration de la base de données
- Envoyer les modifications sur Github
- Envoyer les modifications sur Heroku
- Visualiser son application en production
- Liens Utiles
Heroku est un outil, administrable à partir d'un navigateur, qui permet d'héberger une application web dans le but de la rendre accessible à tous.
Voici quelques liens pour mieux comprendre ce service:
Nous allons utiliser ce service pour mettre en production notre application Curiosities
.
Mettre en prodution une application, c'est déployer la version 'finale' de l'application (ou d'une fonctionnalité de l'application) pour la rendre accessible aux futurs utilisateurs, après avoir effectué les développements et tous les tests nécessaires (unitaires, fonctionnels, charge et autres) à son bon fonctionnement. C'est en général une version stable de l'application, sur laquelle aucun développement n'est effectué directement.
Ouvrez votre projet. Heroku est installé de base sur Cloud9. Il faut en premier lieu vérifier qu'il est bien à jour. Pour cela, tapez dans le terminal la commande suivante qui fera les mises à jour automatiquement si besoin :
wget -O- https://toolbelt.heroku.com/install-ubuntu.sh | sh
Astuce : Pour taper le symbole
|
, faites Alt + Shift + L sur Mac ; ou retrouvez les raccourcis pour les autres claviers ici
Installez la version de Heroku qui vous correspond en vous aidant de ce lien.
Allez sur le site d'Heroku et créez-vous un compte.
Astuce : Pour connaître la version de Heroku installée sur votre machine (si vous rencontrez des soucis), vous pouvez taper la commande suivante dans votre terminal :
heroku --version
Retournez sur votre projet Cloud9 et tapez la commande suivante dans le terminal : heroku login
Cette commande permet de vous authentifier par rapport à Heroku.
Il vous sera demandé l'adresse email et le mot de passe que vous avez utilisés pour créer votre compte Heroku.
Puis, pour initialiser votre projet du coté de Heroku, tapez la commande suivante dans votre terminal : heroku create
Si vous retournez sur votre compte heroku, onglet 'dashboard', une nouvelle application devrait être apparue.
Heroku génère un nom aléatoire pour chaque application qu'il crée. Ici par exemple, l'application créée se nomme peaceful-refuge-57279
.
N'hésitez pas à cliquer sur cette nouvelle application et à naviguer à travers les catégories (ressources, déploiement, activité, etc).
Vous pouvez notamment proposer un nouveau nom pour votre application dans Settings > Name
. Attention, il faudra choisir un nom qui n’est pas déjà pris !
Heroku ne supporte malheureusement pas le type de base de données sqlite
car ce n'est pas un type de base de données adapté pour une utilisation intensive et stable (nécessaire dans notre application déployée en 'production'). Nous allons donc le changer pour utiliser postgreSQL
.
Vous pouvez trouver plus d'informations ici concernant ce changement de base de données.
Dans votre application, ouvrez le fichier gemfile
.
On veut installer l'adaptateur PostGreSQL
et l'utiliser en mode production
à la place de l'adaptateur SQLite
.
Pour cela, spécifiez que la ligne gem 'sqlite3'
doit être utilisée seulement pour les modes development
et test
.
Puis, ajoutez la ligne gem 'pg'
en spécifiant qu'elle doit être utilisée seulement pour le mode production
.
Ensuite, lancez la commande suivante dans votre terminal pour mettre à jour vos gems : bundle install
.
L'installation terminée, ouvrez le fichier config/database.yml
. Il devrait actuellement ressembler à cela :
Dans la section production
, changez la ligne adapter: sqlite3
par adapter: postgresql
.
Puis changez le nom de votre base de données de production. Par exemple, db/production.sqlite3
devient curiosities_production
.
Ici, on choisit d'appeler notre base de données curiosities_production
car elle contient toutes les données de production pour le projet Curiosities
.
N'oubliez pas ensuite de sauvegardez votre fichier.
N'oubliez pas d'enregistrer vos modifications, de les committer et de les envoyer sur votre répertoire distant (GitHub). Vous pouvez vous aider de ce tutoriel.
Pour faire en sorte qu'Heroku prenne en compte vos nouvelles modifications, committez les (si ce n'est pas déjà fait à l'étape précédente) puis tapez la commande suivante dans votre terminal: git push heroku master
.
Tout comme pour GitHub, cela envoie vos nouveaux commits à votre répertoire distant sur Heroku.
Lorsque vous avez lancé cette commande, une URL s'est affichée dans votre terminal. C'est l'URL de production de votre application !
Si vous consultez cette URL maitenant, vous n'y trouverez pas grand-chose car l'application ne sait pas encore où trouver les données à afficher.
Nous avons maintenant besoin de mettre à jour notre base de données PostGreSql
pour ajouter les tables qui la composent (dans notre cas, il y a une table nommée curiosities
).
Pour cela, tapez la commande heroku run rake db:migrate
dans votre terminal.
Vous pouvez maintenant cliquer sur l'URL de production de votre application et vérifier que votre application tourne.
Puis, utilisez-la pour créer de nouvelles curiosités dans votre base de données!
- La documentation de Ruby : http://ruby-doc.org/core-2.3.1/
- La documentation de Ruby On Rails : http://api.rubyonrails.org/
- Heroku : https://www.heroku.com/
- La documentation pour déployer via Cloud9 : https://docs.c9.io/docs/deploying-via-cli
- La documentation d'Heroku pour Ruby On Rails 4 : https://devcenter.heroku.com/articles/getting-started-with-rails4
N'hésitez pas à faire un tour sur le guide des Women On Rails pour des rappels de commandes, de l'aide ou de nouveaux tutoriels.
Pour en découvrir plus sur le monde du Web et la communauté Ruby On Rails, n'hésitez pas à venir aux ateliers libres des Women On Rails, aux meetups de (Rails thematic Workshops)[https://www.meetup.com/fr-FR/rails-thematic-workshops/], aux meetups de (Paris Ruby Workshop)[https://www.meetup.com/fr-FR/Paris-Ruby-Workshop/] ou encore à découvrir les rendez-vous mensuels de (ParisRB)[https://www.meetup.com/fr-FR/parisrb/] !