Installer Ghost sur une instance Simple Hosting NodeJS / PostgreSQL

Nous verrons dans ce tutoriel comment installer en quelques minutes Ghost sur une instance Simple Hosting NodeJS / PostgreSQL.

Dans ce tutoriel, nous utiliserons le CLI Gandi pour simplifier l'installation et le déploiement, pour l'installer et le configurer, vous pouvez vous rendre à l'adresse http://cli.gandi.net

Création de l'instance et préparation de l'installation

Dans un premier temps, nous créons l'instance :

$ gandi paas create --name Ghost --type nodejspgsql --duration 1m

Nous clonons ensuite le dépôt (qui sera vide étant donné que nous venons de créer l'instance) :

$ gandi paas clone Ghost

On se rend ensuite dans le répertoire 'default' où doit se trouver l'application, puis on télécharge et décompresse depuis le site officiel de Ghost.

$ cd default
$ wget https://ghost.org/zip/ghost-0.6.4.zip
$ unzip ghost-0.6.4.zip && rm ghost-0.6.4.zip

Création de la base de donnée et de l'utilisateur associé

Nous allons maintenant nous connecter à l'instance en console afin de créer la base de donnée et l'utilisateur Ghost :

$ gandi paas console Ghost
$ psql
> create database db_ghost;
> create user user_db_ghost with password 'pass_db_ghost';
> grant all privileges on database db_ghost to user_db_ghost;
> \q
$ exit
$ ~. 

Configuration de Ghost

Nous copions le fichier de configuration d'exemple fournit par Ghost :

$ cp config.example.js config.js

Puis nous éditons le fichier afin de :

  • Écouter sur le port de PostgreSQL, définir l'utilisateur, le mot de passe et le nom de la base de donnée
  • Indiquer l'adresse du site
  • Définir le port d'écoute sur 8080
config = {
    // ### Production
    // When running Ghost in the wild, use the production environment
    // Configure your URL and mail settings here
    production: {
        url: http://1234abcd.url-de-test.ws',                                       
        mail: {},
database: {
    client: 'postgres',                                                     
    connection: {                                                           
          host: 'localhost',                                                
          user: 'user_ghost',                                            
          password: 'pass_ghost',                                        
          database: 'db_ghost',                                            
          port: '5432'                                                      
    },
            debug: false
        },
        server: {
            // Host to be passed to node's `net.Server#listen()`
            host: '127.0.0.1',                                                
            // Port to be passed to node's `net.Server#listen()`, 
            port: '8080'                                                      
        }
    },

Suivant les recommandations de la documentation de Ghost :

Make sure you've installed Node.js - We recommend the latest Node v0.10.x release. Ghost is also compatible with Node v0.12 and io.js v1.2, but please note that these versions are more likely to run into installation problems. May contain nuts.

Il faut modifier le fichier 'package.json'

Dans la section engines pour supprimer la version 0.12 :

 "engines": {
    "node": "~0.10.0",

Et déplacer la ligne “pg” de “optional_dependencies” vers “dependencies” pour la modifier en :

"dependencies": {
       "pg": "latest"

Déploiement de l'application

Nous sommes désormais prêt pour le déploiement de l'application sur l'instance :

$ git add .
$ git commit -am "First commit with Ghost source files and setup"
$ git push origin master
$ gandi deploy

Une fois ceci effectué, votre application devrait alors être disponible à l'adresse que vous avez indiqué. Dans cet exemple, nous n'avons pas déclaré de nouvel hôte virtuel mais utilisé celui fourni par défaut à la création de l'instance.

Dernière modification: le 31/08/2015 à 17:27 par Alexandre L. (Gandi)