De standaard

Al enige tijd is er een nieuwe major release van Ghost (de software van deze blog) gepubliceerd met mooie nieuwe features en een sterk verbeterd systeem voor installatie en configuratie.

Ghost veronderstelt nu standaard een systeem met de volgende elementen:

  • Ubuntu 16.04 (besturingssysteem)
  • MySQL (database)
  • NGINX (webserver)
  • Systemd (servicemanager)
  • Node v6 geïnstalleerd via NodeSource

Eerdere systeemeisen voor Ghost waren minder specifiek en restrictief. Tegelijkertijd waren de procesmanager en de webserver (als proxyserver) volledig buiten beeld van de installatie, waardoor het installeren van volledig functionele Ghost-instantie relatief complex was. Dit is nu voorbij.

De nieuwe installatieprocedure van Ghost draagt namelijk zorg voor een complete installatie en configuratie, het configureert de database, de webserver en installeert een ssl-certificaat. Hiervoor heeft Ghost een apart programma geschreven Ghost-CLI. Met dit programma is het mogelijk om eenvoudig meerdere Ghost blogs te installeren, te configureren, starten, stoppen, verwijderen etc. Om dit waar te maken heeft Ghost wel moeten standaardiseren tot de bovengenoemde stack met Ubuntu, Systemd, MySQL en NGINX.

Maatwerk

Voldoet jouw systeem niet aan de standaard eisen of wil je Ghost anders installeren en beheren, dan is dat met wat meer moeite ook mogelijk. Zo kan nu nog gebruik gemaakt worden van de SQLite3- database, de NIGX-configuratie is niet noodzakelijk en ook de Systemd-integratie is optioneel. Ghost-CLI heeft een eigen ingebouwde procesmanager, maar het is ook mogelijk om een procesmanager naar keuze te gebruiken. Ghost-CLI heeft een uitgebreide set aan opties beschikbaar om dit te realiseren.

Deze blog maakt bijboorbeeld gebruik van SQLite3-database. Verder maak ik gebruik van de procesmanager Pm2. Ik wil dus niet gebruik maken van SystemD-integratie of van de ingebouwde procesmanager in Ghost-CLI. Ik gebruik wel SSL en NGINX, maar wil deze niet door Ghost-CLI laten configureren. Verder wil ik dat de installatie programmatisch (niet-interactief en volautomatisch) verloopt.

Het commando voor mijn niet-interactieve Ghost installatie met Ghost-CLI zag er dan ook zo uit:

ghost install --no-start --dir blog.yaats-advies.nl --no-stack --process local --url https://blog.yaats-advies.nl --no-setup-mysql --no-setup-linux-user --no-setup-nginx --no-setup-systemd --db sqlite3 --dbpath ./content/data/ghost.db

Poortconfiguratie

Standaard configureert Ghost-CLI de applicatie op poort 2368 of op de eerstvolgende beschikbare (lees op dat moment niet in gebruik zijnde) poort. Wil je zelf de poort configureren, dan kan dat eenvoudig met het volgende commando. (Voer dit commando uit in de directory waarin Ghost geïnstalleerd is en wijzig hetnummer naar met het gewenste poortnummer.):

ghost config server.port 3000

E-mailconfiguratie

De Ghost documentatie voor de e-mailconfiguratie gaat er van uit dat we een externe e-mailservice gebruiken. Het is echter goed mogelijk om gewoon de lokale sendmail (compatible) mailserver te gebruiken. Dit is alsvolgt in te stellen. (Voer onderstaande commando's uit in de directory waarin Ghost geïnstalleerd is.)

ghost config mail.transport SMTP
ghost config mail.options.sendmail true

Het afzenderadres kan alsvolgt ingesteld worden:

ghost config mail.from sender@email.domain

Procesmanager

Je Ghost blog kan worden gestart en gestop met behulp van Ghost-CLI. Ghost kan echter ook uitstekend gebruikt worden met de procesmanager pm2. In dat geval is het wel van belang dat Ghost gestart wordt in de directory waarin Ghost is geïnstalleerd. Zie onderstaand voorbeeld.

mijn@server:~/blogs/mijnblog> pm2 start current/index.js --name mijnblog

Documentatie

Bekijk hier de heldere en uitgebreide documentatie van Ghost.

Op moment van schrijven gebruikt Ghost een verouderde versie van Nodemailer (0.7.1). De documentatie daarvoor is hier te vinden.

Documentatie van Pm2 is hier te vinden.