Table des matières

Un blog avec Ghost

Ghost est une application Node qui permet de livrer des articles.

Installation locale

Le https://docs.ghost.org/docs/install-local

Installation de Ghost-CLI:

$ npm i -g ghost-cli@latest
$ cd /var/www
$ sudo mkdir <ghost>
$ sudo chown <user>:<group> <ghost-dir>
$ sudo chmod 775 <ghost-dir>
$ cd <ghost-dir>
$ ghost install local

Ghost devrait être démarrer, pour vérifier, faire:

$ ghost ls

Le serveur est disponible par défaut sur http://localhost:2368/.

Installation pré-1.x

L'installation ici implique que l'on veut utiliser HTTPS. C'est donc un serveur Apache avec Reverse Proxy.

On installe Ghost en méthode dite self-hosted sur le serveur.

  1. Suivre les indications pour l'installation sur Linux : Installing Ghost on Linux.
  2. Configurer le serveur de courriel : Mail Configuration on self-hosted version of Ghost
  3. Ajouter un enregistrement DNS pour le blogue (ex: blog.sgy.io).
  4. Ajouter le fichier de config.js pour modifier le port, connexion de base de données, etc.
  5. Configurer Apache
    1. Utiliser une configuration de site dans /etc/apache2/sites-available :
      <VirtualHost *:443>
              ServerName blog.sgy.io
      
              SSLProxyEngine On
              SSLProxyVerify none
              SSLProxyCheckPeerCN off
              SSLProxyCheckPeerName off
              SSLProxyCheckPeerExpire off
      
              SSLEngine On
              SSLCertificateFile /etc/ssl/certs/sgy.io.crt
              SSLCertificateKeyFile /etc/ssl/private/sgy.io.key
              SSLCertificateChainFile /etc/ssl/certs/sgy.io.chained.crt
      
              ProxyRequests Off
              ProxyPreserveHost On
      
              ProxyPass / http://localhost:2368/
              ProxyPassReverse / http://localhost:2368/
      
              <Location />
                      Order allow,deny
                      Allow from all
              </Location>
      
      </VirtualHost>
    2. Mettre en marche le site: $ a2ensite blog.sgy.io.conf et $ service apache2 reload.
  6. Configurer Ghost comme voulu
    1. Installer et faire le npm install
    2. Configurer le email.
  7. Déployer Ghost (faire en sorte que ce soit un service) : Deploying Ghost.
    1. Créer un utilisateur ghost:
      sudo adduser --shell /bin/bash --gecos 'Ghost application' ghost
      sudo chown -R ghost:ghost /var/www/ghost/

Méthode avec pm2

Il faut d'abord être connecté en tant qu'autre utilisateur que root.

La gestion des processus node sont plus simples avec pm2 qu'avec Supervisor.

$ npm install pm2 -g

ou

$ npm install pm2@latest -g

Changer le propriétaire du répertoire de Ghost pour un autre utilisateur, par exemple ghost qui appartient au groupe ghost.

# chown -R ghost:ghost /path/to/ghost

Donner les permissions au groupe ghost aux fichiers du répertoire de l'installation Ghost:

# chmod -R g+rwx /path/to/ghost

Après pour ajouter un processus Ghost à pm2, en étant dans le répertoire de Ghost:

$ NODE_ENV=production pm2 start index.js --name "Ghost"

Utiliser startup pour que pm2 redémarre automatiquement après un redémarrage:

$ pm2 startup [platform]

Méthode avec Supervisor

  1. apt-get install supervisor
  2. Créer le fichier configuration pour Ghost dans /etc/supervisor/conf.d :
    [program:ghostsgy]
    command = node /var/www/blog.sgy.io/index.js
    directory = /var/www/blog.sgy.io
    user = ghost
    autostart = true
    autorestart = true
    stdout_logfile = /var/log/supervisor/ghost-blog-sgy-io.log
    stderr_logfile = /var/log/supervisor/ghost-blog-sgy-io_err.log
    environment = NODE_ENV="production"
  3. service supervisor start
  4. supervisorctl start ghostsgy

Si le supervisorctl start ghostsgy ne fonctionne pas, faire:

supervisorctl reread

On devrait voir : ghostsgy: available. Ensuite refaire la commande supervisorctl start ghostsgy.

Mises à jour

Considérant un répertoire d'installation comme /var/www/ghost.

$ cd ~
$ tar --exclude='/var/www/ghost/node_modules' -zcvf /backup/filename.tgz /var/www/ghost
$ curl -LOk https://ghost.org/zip/ghost-latest.zip
$ unzip ghost-latest.zip -d /var/www/ghost
$ cd /var/www/ghost
$ npm install
$ npm start

Vérifier la recherche sur le site.

Installer Ghost avec Docker

$ docker run -it --name ghost-test ubuntu:latest /bin/bash

Image de Docker

Installer node LTS :

curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
sudo apt-get install -y nodejs

Installer les fichiers contenu de Ghost dans un répertoire:

$ curl -L https://ghost.org/zip/ghost-latest.zip -o ghost.zip
$ unzip -uo ghost.zip -d /var/www/ghost
$ mkdir /var/www/ghost
$ docker run --name some-ghost -v /path/to/ghost/blog:/var/lib/ghost ghost

Système de commentaires

Themes

Références