Suite à la mésaventure du kernel panic, j'ai décidé d'ouvrir un billet sur l'installation de ghost CMS sur un serveur debian 9 et la sauvegarde/restauration de celui-ci pour faire le plein de bonne pratique.
Installer le CMS
Installer les paquets nécessaires
apt-get update && apt-get install build-essential sudo mysql-server nginx unzip curl
Créer l'utilisateur dédié à ghost
adduser ghostcli
usermod -aG sudo ghostcli
Installer nodejs & npm
su ghostcli
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash #Veillez à utiliser la derniere verison
sudo apt-get install -y nodejs
sudo npm install ghost-cli@latest -g
Sécurisez MySQL
#en root
mysql_secure_installation
#répondez aux questions
#Se connecter en root pour la suite
mysql -u root -p
Créer & configurer la base de donnée ghost
create database ghost;
create user 'ghostcli'@'localhost' identified by 'VOTREPASSWORD';
grant all privileges on ghost.* to 'ghostcli'@'localhost';
flush privileges;
sudo mkdir -p /var/www/ghost
sudo chown ghostcli:ghostcli /var/www/ghost
sudo chmod 775 /var/www/ghost
su ghostcli
cd /var/www/ghost
ghost install
#Répondez aux questions
# Attention au nom de la base de donnée il s'agit de la base ghost
# et non ghost_prod
BONUS : Fonctionnalité de colorie syntaxique
Rendez vous sur prismjs.com, choisissez les langages (perso je prend tout) et générez la conf de votre rêve
https://prismjs.com/download.html#themes=prism-dark&languages=markup+css+clike+javascript
Copiez les fichiers dans ghost
cp prism.css /var/www/ghost/content/themes/$votretheme/assets/css/prism.css
cp prism.js /var/www/ghost/content/themes/$votretheme/assets/js/prism.css
chown ghost.ghost /var/www/ghost/content/themes/$votretheme/assets/css/prism.css
chown ghost.ghost /var/www/ghost/content/themes/$votretheme/assets/js/prism.css
chmod 644 /var/www/ghost/content/themes/$votretheme/assets/js/prism.css
chmod 644 /var/www/ghost/content/themes/$votretheme/assets/js/prism.css
Intégrez la fonctionnalité dans le CMS
#Copiez le fichier avant /!\ (Au cas ou)
/var/www/ghost/content/themes/casper-custom/default.hbs /root/
vim /var/www/ghost/content/themes/casper-custom/default.hbs
#Dans la balise <head>
#Ajoutez les lignes suivantes sous {{!-- Styles'n'Scripts --}}
<link rel="stylesheet" type="text/css" href="{{asset "css/prism.css"}}" />
#A la fin du fichier avant </body>
#Ajouter la ligne suivante sous la balise {{{block "scripts"}}}
<script type="text/javascript" src="{{asset "js/prism.js"}}"></script>
Sauvegarder le CMS
Sauvegarder la base SQL
mysqldump -u root -p ghost > /root/GhostBackup.sql #Adaptez avec le nom de votre base
Sauvegardez l'application Ghost
cp -a /var/www/ghost /root/ghostbakup
#vous pouvez accessoirement créer une archive
tar czf /root/Backup.tar.gz /root/ghostbackup
J'ai fais un script pour automatiser le process, vous pouvez le scheduler via cron si besoin (N'oubliez pas d'externaliser les sauvegardes sinon aucun intérêt)
A consommer sans modération
https://github.com/k-lfa/Backup-Ghost
Restaurer le CMS
Réinstallez le CMS ghost (Comme plus haut)
Supprimez le dossier /var/www/ghost (De la fresh install)
rm -rf /var/www/ghost
Récupérez votre archive de backup et copiez le dossier ghost sauvegardé dans le dossier web
cp -a ghost /var/www/ghost
Supprimez la base de donnée fresh install et créez la nouvelle
mysql -u root -p
drop database ghost;
create database ghost;
Restaurez la base sauvegardée
mysql -u root -p --database=ghost < GhostBackup.sql
Reconfigurez ghost
su ghostcli
cd /var/www/ghost
ghost setup
#Repondez aux questions
#Attention au nom de la base de donnée
#ghost au lieu de ghost_prod
Mettre à jours le CMS
Sauvegardez avant toute chose !
Procédure ci-haute ou utilisez mon script :)
Snapshot du serveur (si vous le pouvez)
Updatez Ghost
sudo -u ghostcli ghost update -d /var/www/ghost
Updatez le serveur
systemctl stop ghost_k-lfa.info #Adaptez selon le nom de votre service
systemctl stop nginx
systemctl stop mariadb
apt-get update && apt-get upgrade #Un conseil : Rebooter le serveur
#Commande à entrer en cas de non redémarrage
systemctl start nginx
systemctl start mariadb
systemctl start ghost_k-lfa.info #Adaptez selon le nom de votre service