So hosten und installieren Sie Ghost selbst auf Ihrem Linux-Server

So hosten und installieren Sie Ghost selbst auf Ihrem Linux-Server

Ghost ist ein Open-Source-Content-Management-Programm, mit dem Sie ganz einfach einen Blog und einen Newsletter-Dienst erstellen können. Sie können den Ghost(Pro)-Dienst abonnieren, um das CMS zu nutzen, oder, wenn Sie technisch versierter sind, es selbst auf Ihrem Server hosten. Hier zeigen wir Ihnen Letzteres – Hosten Sie Ghost selbst auf Ihrem Linux-Server.

Warum Sie Ghost auf Ihrem Server selbst hosten sollten

Einer der Vorteile eines Ghost- Blogs besteht darin, dass es eine integrierte, funktionsreiche Plattform bietet, die sofort einsatzbereit ist. Dazu gehört die Möglichkeit, Analysen zu verfolgen, Beiträge zu monetarisieren und automatische Newsletter für Ihre Abonnenten zu erstellen.

Ein Screenshot des Ghost-Dashboards.

Durch die Installation von Ghost auf Ihrem Server können Sie als Herausgeber fungieren, ohne auf die Verwaltung Ihrer Daten durch Dritte angewiesen zu sein. Dies kann hilfreich sein, wenn Sie ein Journalist sind, der kritische Artikel zu kontroversen Themen veröffentlicht.

Schließlich ist Ghost auch für technisch nicht versierte Benutzer einfach zu implementieren und zu warten. Im Gegensatz zu herkömmlichen CMS-Plattformen bietet Ghost eine Komplettlösung, die Sie auf Ihrem Hosting-Rechner „einrichten und vergessen“ können.

Ghost auf Ihrem Server installieren

Annahme : Bevor wir beginnen, gehen wir davon aus, dass Sie bereits über einen Linux-Server und einen Domänennamen zum Hosten Ihrer Ghost-Installation verfügen. Wenn Sie einen Linux-Server mieten müssen, empfehlen wir DigitalOcean oder Linode .

Da wir Docker verwenden, müssen wir Docker zuerst auf dem Server installieren.

1. Installieren Sie den öffentlichen Repository-Schlüssel des Docker-Projekts:

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

2. Erstellen Sie eine neue Repository-Datei im apt-config-Verzeichnis Ihres Computers:

sudo nano /etc/apt/sources.list.d/docker.list

3. Fügen Sie die folgende Codezeile in Ihre neue Repository-Datei ein:

deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable

4. Aktualisieren Sie die Repository-Listen Ihres Systems und aktualisieren Sie die vorhandenen Binärdateien auf Ihrem Computer:

sudo apt updatesudo apt upgrade

5. Installieren Sie Docker und Docker Compose zusammen mit ihren Abhängigkeiten:

sudo apt install wget docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin

6. Fügen Sie Ihren Benutzer zur Docker-Gruppe hinzu

sudo usermod -aG docker $USER

7. Stellen Sie den Docker-Dienst so ein, dass er beim Start ausgeführt wird:

sudo systemctl enable docker.service

8. Starten Sie den Server neu.

sudo reboot

Einrichten von Gmail für die SMTP-Zustellung

Ghost wird nicht mit einem eigenen E-Mail-Zustellungsclient geliefert, daher müssen wir es für die E-Mail-Zustellung mit Gmail verbinden.

1. Öffnen Sie einen Webbrowser und melden Sie sich bei dem Gmail-Konto an, das Sie mit Ihrer Ghost-Instanz verknüpfen möchten.

2. Klicken Sie auf das Profilsymbol Ihres Kontos und dann auf „Ihr Google-Konto verwalten“.

3. Wählen Sie die Kategorie „Sicherheit“ und klicken Sie dann in der Unterkategorie „So melden Sie sich bei Google an“ auf die Option „Bestätigung in zwei Schritten“.

Ein Screenshot, der den zweistufigen Verifizierungsprozess für Gmail-Konten hervorhebt.

4. Bestätigen Sie Ihre Telefonnummer und aktivieren Sie die Bestätigung in zwei Schritten .

5. Gehen Sie zurück zur Kategorie „Sicherheit“ und klicken Sie dann erneut auf die Option „Bestätigung in zwei Schritten“. Dadurch wird ein neuer Menübildschirm geöffnet, in dem Sie neue Sekundärschlüssel für Ihr Konto festlegen können. Scrollen Sie zum Ende der Seite und klicken Sie dann auf „App-Passwörter“.

Ein Screenshot, der das zeigt

6. Wählen Sie „Mail“ für die erste Dropdown-Liste und dann „Andere“ für die zweite.

7. Schreiben Sie „Gmail for Ghost“ in das Textfeld und klicken Sie dann auf „Generieren“. Dadurch wird ein Fenster mit einem gelben Textfeld geöffnet, das Ihr benutzerdefiniertes Anwendungskennwort enthält.

Ein Screenshot, der das generierte Anwendungspasswort für Ghost zeigt.

Aufbau des Docker-Containers

1. Erstellen Sie ein neues Verzeichnis für die Docker-Dateien Ihrer Ghost-Installation:

mkdir ~/ghost
cd ~/ghost

2. Erstellen Sie mit Ihrem bevorzugten Texteditor eine neue docker-compose.yml-Datei:

nano. /docker-compose.yml

3. Fügen Sie den folgenden Codeblock in Ihre neue docker-compose.yml-Datei ein und speichern Sie ihn.

---
version: "3"
services:
ghost:
image: ghost:latest
restart: always
ports:
- 8080:2368
environment:
database__client: mysql
database__connection__host: db
database__connection__database: ghost
database__connection__user: ghost
database__connection__password: ghost
url: ${GHOST_URL}
mail__transport: ${MAIL_TRANSPORT}
mail__options__host: ${MAIL_HOST}
mail__options__port: ${MAIL_PORT}
mail__options__secureConnection: ${MAIL_SECURE_CONNECTION}
mail__options__auth__user: ${MAIL_USER}
mail__options__auth__pass: ${MAIL_PASSWORD}
volumes:
- ghost-data:/var/lib/ghost/content
links:
- db
db:
image: mysql:8.0
restart: always
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ghost
MYSQL_USER: ghost
MYSQL_PASSWORD: ghost
cap_add:
- SYS_NICE
volumes:
- ghost-db:/var/lib/mysql
volumes:
ghost-data: null
ghost-db: null

4. Erstellen Sie eine „.env“-Datei in Ihrem Ghost-Docker-Verzeichnis:

nano. /.env

5. Fügen Sie den folgenden Codeblock in Ihr neues ein. env-Datei:

# URLGHOST_URL="#REPLACE_ME_WITH_DOMAIN_NAME#"# DatabaseMYSQL_ROOT_PASSWORD="#REPLACE_ME_WITH_SECURE_PASSWORD#"# SMTP variablesMAIL_SERVICE="Gmail"MAIL_TRANSPORT="SMTP"MAIL_USER="#REPLACE_ME_WITH_YOUR_GMAIL_ADDRESS#"MAIL_PASSWORD="#REPLACE_ME_WITH_YOUR_APP_PASSWORD#"MAIL_HOST="smtp.gmail.com"MAIL_PORT="465"MAIL_SECURE_CONNECTION="true"

  • Ändern Sie den Wert für die Variable „GHOST_URL“ von „#REPLACE_ME_WITH_DOMAIN_NAME#“ in Ihren vollständigen Domainnamen.
Ein Terminal, das die URL für eine Remote-Ghost-Instanz anzeigt.
  • Ersetzen Sie den Wert von „MYSQL_ROOT_PASSWORD“ durch ein ausreichend zufälliges Passwort.
  • Ändern Sie den Wert von „MAIL_USER“ und „MAIL_PASSWORD“ durch die E-Mail-Adresse Ihres Gmail-Kontos und dessen Anwendungskennwort.

6. Erstellen Sie den Ghost Docker-Container, indem Sie den folgenden Befehl ausführen:

sudo docker compose up -d

Einrichten eines Reverse-Proxys

Da Ghost im Backend läuft, müssen wir einen Reverse-Proxy einrichten, um öffentlich auf Ghost zugreifen zu können. In diesem Fall verwenden wir den Reverse-Proxy von Nginx .

1. Installieren Sie das Nginx-Webserverpaket. Dies dient als Ihr Reverse-Proxy-Daemon, der Verbindungen aus dem Internet entgegennimmt und an Ghost umleitet.

sudo apt install nginx

2. Erstellen Sie mit Ihrem bevorzugten Texteditor eine neue Nginx-Site-Konfigurationsdatei:

sudo nano /etc/nginx/sites-available/ghost

3. Fügen Sie den folgenden Codeblock in Ihre neue Site-Konfigurationsdatei ein:

server {
listen 80;
listen [::]:80;

root /var/www/html;
server_name ghost.myvpsserver.top;


location / {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:8080;
}}

4. Erstellen Sie einen symbolischen Link für Ihre Ghost-Site-Konfiguration:

sudo ln -s /etc/nginx/sites-available/ghost /etc/nginx/sites-enabled/

5. Aktivieren Sie den Nginx-Webserverdienst mit systemctl:

sudo systemctl enable --now nginx.service

Aktivieren von SSL auf Ihrem Nginx Reverse Proxy

1. Stellen Sie sicher, dass das „Core“-Snap-Paket auf Ihrem Computer vorhanden ist:

sudo snap install core

2. Installieren Sie das Certbot-Snap-Paket:

sudo snap install certbot --classic

3. Registrieren Sie Ihre Certbot-Installation mit Ihrer E-Mail-Adresse, indem Sie den folgenden Befehl ausführen:

sudo certbot register --agree-tos --email ramces@email.invalid

4. Fordern Sie ein neues SSL-Zertifikat für Ihr Ghost-Blog an:

sudo certbot --nginx -d ghost.myvpsserver.top

5. Testen Sie, ob auf Ihre neue Ghost-Instanz über SSL zugegriffen werden kann, indem Sie einen Webbrowser öffnen und Ihren Domainnamen laden.

Ein Screenshot, der eine funktionierende Ghost-Instanz von einem Remote-Server zeigt.

Ghost auf einem lokalen Computer ausführen

Wenn Sie keinen Server haben und Ghost auf Ihrem lokalen Computer installieren möchten, können Sie dies auch tun. Darüber hinaus können Sie Tailscale nutzen, um überall in Ihrem Browser darauf zuzugreifen.

1. Installieren Sie den Tailscale VPN-Daemon auf Ihrem Computer und verknüpfen Sie ihn mit Ihrem Tailscale-Konto. Gehen Sie zu Ihrer Tailscale-Administratorkonsole und klicken Sie in der oberen Leiste der Konsole auf die Registerkarte „DNS“.

Ein Screenshot, der die Registerkarte „DNS“ in der Tailscale-Administratorkonsole hervorhebt.

2. Klicken Sie auf die Schaltfläche „Rename tailnet…“ unter der Unterkategorie „Name des Tailnet“.

Ein Screenshot, der das hervorhebt

3. Stellen Sie den Hostnamen Ihres Computers auf „ghost“ ein, gefolgt von der neuen Subdomain für Ihr Tailscale-Netzwerk:

sudo hostnamectl set-hostname ghost.your-tailnet.ts.net

Aktivieren des Tailscale-Trichters

1. Öffnen Sie die Tailscale-Administratorkonsole und klicken Sie auf die Registerkarte „DNS“.

2. Scrollen Sie nach unten auf der Seite und klicken Sie dann auf „HTTPS aktivieren…“.

Ein Screenshot, der die HTTPS-Option für Tailscale-Hosts zeigt.

3. Scrollen Sie zurück zum Anfang der Seite und klicken Sie dann auf die Registerkarte „Zugriffskontrolle“.

Ein Screenshot, der das hervorhebt

4. Klicken Sie auf die Schaltfläche „Trichter zur Richtlinie hinzufügen“.

Ein Screenshot, der das hervorhebt

5. Führen Sie den folgenden Befehl aus, um einen Reverse-Proxy zwischen Tailscale und Ihrem lokalen Docker-Container zu erstellen:

sudo tailscale serve https / http://127.0.0.1:8080

6. Aktivieren Sie den Tailscale-Trichter für Ihren Reverse-Proxy, indem Sie den folgenden Befehl ausführen:

sudo tailscale funnel 443 on

7. Testen Sie, ob Ihre neue Ghost-Instanz über Ihren Tailscale-Trichter zugänglich ist, indem Sie einen Webbrowser öffnen und Ihre Tailscale-Adresse laden.

Ein Screenshot, der eine funktionierende Ghost-Installation über Tailscale zeigt.

Ghost zum ersten Mal verwenden

1. Öffnen Sie einen Webbrowser und navigieren Sie zu Ihrer Ghost-Installations-URL, gefolgt vom Unterverzeichnis „/ghost“.

Ein Screenshot der Adressleiste eines Webbrowsers mit der korrekten URL für die Ghost-Setup-Seite.

2. Klicken Sie auf das erste Feld und geben Sie einen Namen für Ihren neuen Ghost-Blog ein. Füllen Sie die restlichen Felder mit Details zu Ihrem Admin-Benutzer aus und klicken Sie dann auf „Konto erstellen und mit der Veröffentlichung beginnen“.

Ein Screenshot, der das zeigt

Erstellen Sie Ihren ersten Beitrag in Ghost

1. Klicken Sie auf der Ghost-Onboarding-Seite auf die Schaltfläche „Ersten Beitrag schreiben“.

Ein Screenshot, der die Onboarding-Seite „Erste Schritte“ für Ghost zeigt.

2. Dadurch wird ein Nur-Text-Editor geöffnet, in dem Sie einen einfachen Textbeitrag schreiben können. Klicken Sie auf „Veröffentlichen“, wenn Sie fertig sind, um einen neuen Testbeitrag zu erstellen.

3. Überprüfen Sie auf Ihrer Ghost-Startseite, ob der neue Beitrag angekommen ist.

Hinzufügen eines neuen Benutzers zu Ghost

1. Gehen Sie zurück zu Ihrer Ghost Administrator Console und klicken Sie dann in der linken Seitenleiste der Seite auf „Mitglieder“.

2. Klicken Sie oben rechts auf der Seite auf die Schaltfläche „Neues Mitglied“.

Ein Screenshot, der die Liste der Mitglieder der aktuellen Ghost-Instanz zeigt.

3. Geben Sie die Daten Ihres neuen Mitglieds ein und klicken Sie dann auf „Speichern“, um es zum Newsletter-Feed des Blogs hinzuzufügen.

Häufig gestellte Fragen

Gibt es für Tailscale Funnel irgendwelche Einschränkungen?

Ja. Standardmäßig können Sie Datenverkehr auf Tailscale nur über drei Ports offenlegen: 443, 8443 und 10000 und nur über TCP. Dies bedeutet, dass Sie keine Echtzeit-Onlinedienste wie VoIP und Spieleserver verfügbar machen können.

Kann ich den Tailscale-Domainnamen personalisieren?

Nein. Dies liegt daran, dass jede Tailscale-DNS-Adresse auf Ihr spezifisches Konto zugeschnitten ist. Dadurch kann der Dienst Ihre Maschinen von anderen innerhalb des größeren Tailscale-Netzwerks unterscheiden.

Wird mein Ghost-Blog nicht mehr ausgeführt, wenn mein Computer offline ist?

Ja. Einer der Nachteile des Hostings auf Ihrer eigenen Hardware besteht darin, dass die Betriebszeit Ihrer Website von der Betriebszeit Ihres Computers abhängt. Das bedeutet, dass immer dann, wenn Ihr Host-Rechner ausfällt, auch Ihr Ghost-Blog ausfällt.

Bildnachweis: ARBEITSBÜRO-KOMMUNIKATIONSLEUTE MIT COMPUTER-BLOG-KONZEPT und traditionellem Halloween-Geisterkeks von 123RF.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert