Table des matières

Installer Ghost sur une instance Simple Hosting NodeJS / MySQL

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

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 nodejsmysql --duration 1m
password: 
Repeat for confirmation: 
Creating your PaaS instance.

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://github.com/TryGhost/Ghost/releases/download/0.11.9/Ghost-0.11.9.zip
$ unzip Ghost-0.11.9.zip && rm Ghost-0.11.9.zip

Ghost conseille la dernière version LTS de Node qu'il est possible de définir avec le fichier .nvmrc :

$ echo "4.5.0" > .nvmrc

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

hosting-user@Ghost:~$ mysql -u root

mysql> CREATE DATABASE ghost;
Query OK, 1 row affected (0.01 sec)

mysql> CREATE USER ghost;
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL ON ghost.* to 'ghost'@'localhost' identified by 'RRTCPDK%';
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

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 :

    production: {
        url: 'http://38bc76daec.url-de-test.ws',
        mail: {},
        database: {
            client: 'mysql',
            connection: {
                socketPath  : '/srv/run/mysqld/mysqld.sock',
                user        : 'ghost',
                password    : 'RRTCPDK%' ,
                database    : 'ghost',
                charset     : 'utf8'
            },
            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()`, for iisnode set this to `process.env.PORT`
            port: '8080'
        }
    },

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.