====== 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 : * Écouter sur le socket MySQL, 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 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.