Ghost est une application Node qui permet de livrer des articles.
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/
.
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.
config.js
pour modifier le port, connexion de base de données, etc./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>
$ a2ensite blog.sgy.io.conf
et $ service apache2 reload
.npm install
ghost
: sudo adduser --shell /bin/bash --gecos 'Ghost application' ghost sudo chown -R ghost:ghost /var/www/ghost/
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]
apt-get install supervisor
/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
.
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.
$ docker run -it --name ghost-test ubuntu:latest /bin/bash
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