Déployez l’application avec Heroku

Créé par Terence Lee, @hone02

Installez Heroku

COACH: Parler des avantages d’Heroku par rapport aux serveurs traditionnels.

Premièrement, inscrivez-vous sur Heroku.

Ensuite, installez la Heroku Toolbelt (boîte à outils pour Heroku) sur votre système.

Si l’installation s’est bien passée, vous devriez avoir accès à la commande heroku dans votre terminal. Authentifiez-vous avec l’email et le mot de passe de votre compte Heroku en tapant heroku login:

Enter your Heroku credentials.
Email: adam@example.com
Password: 
Could not find an existing public key.
Would you like to generate one? [Yn] Y
Generating new SSH public key.
Uploading ssh public key /Users/adam/.ssh/id_rsa.pub

Un mot sur les clés SSH : elles permettent de vous identifier au serveur de manière plus sécurisée qu’avec un mot de passe, pour transférer les fichiers. Heroku peut en créer une pour vous et l’ajouter dans votre compte. Si vous en avez déjà une, utilisez heroku keys:add.

traduit d'après le quickstart guide d'Heroku. (en)

Préparez l’application

Mettez à jour la base de données

Tout d’abord, changez le type de base de données pour celle utilisée sur Heroku. Remplacez les lignes suivantes dans le Gemfile :

gem 'sqlite3'

par

group :development do
  gem 'sqlite3'
end
group :production do
  gem 'pg'
end

Lancez bundle install --without production pour re-configurer les dépendances.

COACH: vous pouvez introduire les concepts des bases de données et leurs différences ainsi que les concepts d’environnements de développement.

Système de contrôle de versions

Vous devez versionner votre code grâce à un système de contrôle de versions. Vous pouvez le faire en exécutant ces commandes dans le terminal :

git init
git add .
git commit -m "initial commit"

COACH: expliquez un peu git et les systèmes de gestion de version.

Déployez votre application

Création de l’app

Vous devez créer l’app Heroku en tapant heroku create dans le terminal et vous devriez voir le texte suivant s’afficher :

Creating evening-sky-7498... done, stack is cedar
http://evening-sky-7498.herokuapp.com/ | git@heroku.com:evening-sky-7498.git
Git remote heroku added

Dans ce cas “evening-sky-7498” est le nom de votre app.

Pusher le code

Ensuite, vous devez pusher le code sur Heroku en tapant git push heroku master. Vous devriez voir le texte suivant s’afficher :

Counting objects: 134, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (115/115), done.
Writing objects: 100% (134/134), 35.29 KiB, done.
Total 134 (delta 26), reused 0 (delta 0)

-----> Heroku receiving push
-----> Ruby/Rails app detected
-----> Installing dependencies using Bundler version 1.1.2
       Running: bundle install --without development:test --path vendor/bundle --binstubs bin/ --deployment
       Fetching gem metadata from https://rubygems.org/.......
...
-----> Launching... done, v4
       http://evening-sky-7498.herokuapp.com deployed to Heroku

Vous saurez que l’application a été pushé lorsque vous verez le texte “Launching…” comme ci-dessus.

Migration de la base de données

Enfin, vous devez migrer la base de données sur le serveur, comme vous l’avez fait précédement en local :

heroku run rake db:migrate

Quand cette commande a fini de s’exécuter, vous pouvez voir votre application en ligne. Dans cet exemple, vous pouvez aller sur http://evening-sky-7498.herokuapp.com/. Vous pouvez aussi taper heroku open dans le terminal pour ouvrir directement la page.