Ghost On Debian 12

Dieser Blog wird betrieben mit Ghost, einer schnellen und einfachen Blog-Software.
Weil es viele verschiedene Anleitungen zur Installation von Ghost gibt, musste ich dennoch aus den vielen Angeboten ein bisserl "mergen", um an das gewünschte Ziel zu kommen - eine Ghost Installation unter Debian 12, mit einem Ghost-Benutzer und MariaDB als Datenbank.

Ghost gibt es als Turnkey Variante, als Docker Alternative und zur manuellen Installation mit node. Für eine manuelle Installation braucht man lediglich ein Debian 12 Image auf einem Host. Zum Zwecke wurde Debian 12 als Container unter Proxmox installiert und die nachfolgende Anleitung ist für eine manuelle Ghost-Installation.

Ausgehend von einem vorinstallierten Debian 12, auf das via SSH oder Tastatur als root-Benutzer zugegriffen werden kann, aktualisieren wir zuerst das System und installieren benötigte Pakete.

apt update && apt upgrade -y && apt install sudo curl net-tools wget mariadb-server gnupg yarn gcc g++ make nginx python3-certbot-nginx -y

IPv6 ausschalten

nano /etc/sysctl.conf

Am Ende der Datei folgendes eintragen

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
net.ipv6.conf.tun0.disable_ipv6 = 1

Linux neu starten

reboot

Datenbank-Server vorbereiten

mysql -u root

Wir führen zeilenweise aus

ALTER USER 'root'@'localhost' IDENTIFIED by 'DEIN-PASSWORT';
FLUSH PRIVILEGES;
exit;

Datenbank Server einrichten

sudo mysql_secure_installation

Mit folgenden Antworten

Switch to unix_socket authentication [Y/n] n
Change the root password? [Y/n] n
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y

Einrichten von Datenbank-Benutzer und Datenbank. Bitte auf die richtigen (Deine eigenen) Angaben achten.

mysql -u root -p

Wir führen zeilenweise aus

CREATE DATABASE ghostDB;
CREATE USER ghost_user@localhost IDENTIFIED BY 'DEIN-PASSWORT';
GRANT ALL PRIVILEGES ON ghostDB.* TO ghost_user@localhost IDENTIFIED BY 'DEIN-PASSWORT';
FLUSH PRIVILEGES;
exit;

Wir führen zeilenweise aus, zum Einrichten des Ghost-Benutzers

useradd -m -s /bin/bash ghost_user
passwd ghost_user
usermod -a -G sudo ghost_user
su ghost_user -
cd /home/ghost_user
curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs
sudo npm install -g ghost-cli@latest
mkdir DEINE-WEBSEITE
cd DEINE-WEBSEITE
ghost install
reboot

Nach dem Neustart wird Ghost unter der von Dir angegebenen URL zur Verfügung stehen, für gewöhnlich unter http(s)://Deine-Webseite-URL(/ghost)
Natürlich bitte an eventuelle Firewall-Regeln denken, falls keine Verbindung aufgebaut werden kann.
Direkt getestet werden kann immer mit http(s)://Server-IP(/ghost)