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.
- Suivre les indications pour l'installation sur Linux : Installing Ghost on Linux.
- Configurer le serveur de courriel : Mail Configuration on self-hosted version of Ghost
- Ajouter un enregistrement DNS pour le blogue (ex: blog.sgy.io).
- Ajouter le fichier de
config.js
pour modifier le port, connexion de base de données, etc. - Configurer Apache
- 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>
- Mettre en marche le site:
$ a2ensite blog.sgy.io.conf
et$ service apache2 reload
.
- Configurer Ghost comme voulu
- Installer et faire le
npm install
- Configurer le email.
- Déployer Ghost (faire en sorte que ce soit un service) : Deploying Ghost.
- 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
apt-get install supervisor
- 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"
service supervisor start
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