💾 Archived View for dryusdan.space › installer-ghost-sans-ghost-cli captured on 2024-12-17 at 11:54:43. Gemini links have been rewritten to link to archived content
-=-=-=-=-=-=-
2018-12-13
⚠️
La ghost-cli a énormement évolué et l'installation sans ghost-cli s'approche maintenant de l'enfer. Mais avec la ghost-cli c'est tout doux et ça fonctionne mieux
En une petite commande pour installer ghost tout seul :
ghost install --dir www --no-prompt --no-setup --no-stack --db mysql --dbhost 127.0.0.1
--------------------------------------------------------------------------------
Ghost ?
Hé, on se calme, j'ai même pas eu le temps de commencer à écrire qu'il y a déjà des questions è_é Ghost est une plateforme de blogging, dédiée uniquement au blog et rien d'autre. Vous n'en ferez pas un site d'e-commerce comme peut le faire Wordpress (La différence entre CMS et plateforme de blogging). L'outil est écrit en NodeJS et possède un design relativement épuré, que cela soit au niveau de l'administration du site ou de l'espace public. J'avoue qu'il manque un espace de commentaire mais facilement patchable en installant Isso.
Ghost c'est un peu mon coup de coeur, facile à utiliser, agréable, fluide (contrairement à WordPress), les thèmes facilement intégrable. Pendant une longue période il était également facile à installer... Puis l'équipe de développement à décidé de créer une ligne de commande « ghost-cli ». Autant vous dire que cela était une purge pour faire des updates automatique ou autre. Il fallait être présent sur l'ordi, avoir un utilisateur, des droits sudoers... Ce n'était plus gérable via des scripts de façon officielle. Mais ça se gère ! Et c'est le but de cet article, reprendre la main sur Ghost !
Tout d'abord il faut installer mysql, curl, unzip, nodejs, yarn et knex-migrator :
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash - curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list sudo apt-get update && sudo apt-get -y install nodejs yarn mysql curl unzip npm i -g knex-migrator
Une fois cela fait, félicitation, vous avez téléchargé 30% de l'internet mondial, il vous reste maintenant 70%. Avec npm ça devrait aller vite :p
Bon, ne trainons pas, on a quand même 70% à télécharger. Mais avant, un petit peu de sécurité : On crée un utilisateur pour Ghost
useradd -d /var/www/ghost/ -m ghost mkdir /var/www/ghost/www
Puis un pour MySQL
CREATE DATABASE ghost; CREATE USER 'ghost'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON ghost . * TO 'ghost'@'localhost';
Une fois cela fait : télécharger Ghost
cd /tmp curl -L https://ghost.org/zip/ghost-latest.zip -o ghost-latest.zip
Le dézipper et lui affecter les bons droits
unzip ghost-latest.zip -d ghost mv ghost/* /var/www/ghost/www/ chown -R ghost: /var/www/ghost/www/
On édite le fichier /var/www/ghost/www/config.production.json
{ "url": "https://www.blog.tld", "server": { "port": 2368, "host": "127.0.0.1" }, "database": { "client": "mysql", "connection": { "host": "localhost", "user": "ghost", "password": "password", "database": "ghost" } }, "privacy": { "useTinfoil": true }, "mail": { "transport": "Direct" }, "logging": { "path": "/var/log/ghost/", "level": "debug", "transports": [ "file" ] }, "process": "systemd", "paths": { "contentPath": "/var/ghost/www/content" } }
Puis on installe :
cd /var/www/ghost/www/ sudo -u ghost NODE_ENV=production npm i sudo -u ghost NODE_ENV=production yarn install sudo -u ghost NODE_ENV=production knex-migrator init sudo -u ghost NODE_ENV=production knex-migrator migrate
IL ne reste plus qu'à faire le fichier d'init pour SystemD. Pour cela, créez un fichier `/etc/systemd/system/www_blob_tld.service` et tapez :
[Unit] Description=www.blog.tld (Ghost) After=network.target [Service] Type=simple User=ghost WorkingDirectory=/var/www/ghost/www Environment="NODE_ENV=production" ExecStart=/usr/bin/node index.js TimeoutSec=15 Restart=always [Install] WantedBy=multi-user.target
Ensuite on recharge Systemd et on lance Ghost
systemctl daemon-reload systemctl start www_blog_tld
L'installation est maintenant terminée. Vous n'avez plus qu'à aller sur l'url 127.0.0.1:2368 pour profiter de votre blog. Bien entendu vous pouvez utiliser un reverse proxy pour avoir une vraie URL ;)
Vous n'avez plus qu'à découvrir Ghost.
En tout cas, on passe à une autre étape du tutoriel : les mises à jour !
Sur le coup rien de bien compliqué (je vais même vous filer un script).
Déjà pour éviter les coupures trop longues on va déjà télécharger la dernière version de Ghost et la dézipper :
cd /tmp curl -L https://ghost.org/zip/ghost-latest.zip -o ghost-latest.zip unzip ghost-latest.zip -d ghost && cd ghost
Ensuite on copie les données importantes dans un endroit sûr, c'est à dire le
/content
et le
config.production.json
cp -R /var/www/ghost/www/content /var/tmp cp /var/ghost/www/config.production.json /var/tmp
Ensuite on éteint le blog
systemctl stop www-dryusdan-fr
Les étapes de la migration sont identiques aux étapes d'installation. Donc on migre !
rm -rf /var/www/ghost/www/ cp -R /var/www/ghost/www/ cd /var/www/ghost/www/ rm -rf /var/www/ghost/www/content cp -R /var/tmp/content /var/www/ghost/www/ cp /var/tmp/config.production.json /var/www/ghost/www/ chown -R ghost: /var/www/ghost/www/ sudo -u ghost NODE_ENV=production npm i sudo -u ghost NODE_ENV=production yarn install sudo -u ghost NODE_ENV=production knex-migrator init sudo -u ghost NODE_ENV=production knex-migrator migrate
Puis on fait du ménage et on relance le tout
rm -rf /var/tmp/content rm -rf /var/tmp/config.production.json systemctl start ghost
Et voilà, vous avez un blog tout frais tout beau tout neuf, et avec le bon script de migration on a plus grand chose à faire :)
D'ailleurs, voici ce script :
#!/bin/sh echo "**** Download and prepare ghost ****" cd /tmp curl -L https://ghost.org/zip/ghost-latest.zip -o ghost-latest.zip unzip ghost-latest.zip -d ghost && cd ghost cp -R /var/www/ghost/www/content /var/tmp/ cp /var/www/ghost/www/config.production.json /var/tmp/ echo "**** Shutdown ghost ****" systemctl stop ghost echo "**** MIGRATION !!!!! ****" rm -rf /var/www/ghost/www/ cp -R /tmp/ghost/ /var/www/ghost/www/ cd /var/www/ghost/www/ rm -rf /var/www/ghost/www//content cp -R /var/tmp/content /var/www/ghost/www/ cp /var/tmp/config.production.json /var/www/ghost/www/ chown -R ghost: /var/www/ghost/www/ sudo -u ghost NODE_ENV=production npm i sudo -u ghost NODE_ENV=production yarn install sudo -u ghost NODE_ENV=production knex-migrator init sudo -u /var/www/ghost/www/ NODE_ENV=production knex-migrator migrate rm -rf /var/tmp/content rm -rf /var/tmp/config.production.json echo "**** Starting ghost ****" systemctl start ghost echo "**** Ghost started****" echo "**** Migration done ****"
Maintenant vous pouvez installer Ghost sans vous battre avec la CLI.
Article corrigé par Von Photo by Lucas Ludwig on Unsplash
--------------------------------------------------------------------------------