Einleitung
Strapi präsentiert sich als ein anpassbares und flexibles Headless Content Management System (CMS), das Entwicklern die Möglichkeit gibt, maßgeschneiderte APIs sowie administrative Oberflächen zu entwerfen. Durch seine Open-Source-Natur und den modularen Aufbau erweist es sich als ideale Lösung für die individualisierte Inhaltsverwaltung in unterschiedlichen Anwendungsszenarien.
In diesem Tutorial wird Schritt für Schritt erläutert, wie Strapi unter Ubuntu 22.04 für den produktiven Einsatz installiert und eingerichtet wird. Wir werden dabei die empfohlene Methode der Bereitstellung mittels Docker nutzen, welche eine isolierte und sichere Umgebung für Ihre Strapi-Anwendung bereitstellt.
Vorbedingungen
- Ein Ubuntu 22.04 Server
- Ein Benutzer ohne Root-Rechte, der Sudo-Privilegien besitzt
- Das Root-Passwort für die Datenbank
- Die Installation von Docker Engine und Docker Compose
Installation von Docker und Docker Compose
1. Docker installieren
sudo apt update
sudo apt install docker.io
2. Docker Compose installieren
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Datenbank erstellen
1. MySQL-Server installieren
sudo apt install mysql-server
2. Passwort für den MySQL-Root-Benutzer festlegen
sudo mysql -u root
SET PASSWORD FOR root@'localhost' = '
EXIT;
3. Datenbank und Benutzer erstellen
Ersetzen Sie strapidb
und strapiuser
mit dem Namen Ihrer gewünschten Datenbank bzw. Ihres Datenbankbenutzers:
CREATE DATABASE strapidb;
CREATE USER strapiuser@'%' IDENTIFIED BY '
GRANT ALL PRIVILEGES ON strapidb.* TO strapiuser@'%';
FLUSH PRIVILEGES;
Strapi mit Docker bereitstellen
1. Strapi-Docker-Compose-Datei erstellen
Erstellen Sie eine Datei mit dem Namen docker-compose.yml
in Ihrem Projektverzeichnis:
yaml
version: '3.8'
services:
strapi:
image: strapi/strapi:latest
volumes:
- .:/srv/app
env_file:
- .env
environment:
DATABASE_CLIENT: mysql
DATABASE_HOST: db
DATABASE_PORT: 3306
DATABASE_NAME: strapidb
DATABASE_USERNAME: strapiuser
DATABASE_PASSWORD: '
ports:
- "1337:1337"
depends_on:
- db
db:
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: '
MYSQL_USER: strapiuser
MYSQL_PASSWORD: '
MYSQL_DATABASE: strapidb
2. Umgebungsvariablen festlegen (.env-Datei)
Legen Sie eine Datei mit dem Namen .env
in Ihrem Projektverzeichnis an und fügen Sie folgende Umgebungsvariablen hinzu:
NODE_ENV=production
JWT_SECRET=<your_secret>
3. Strapi mit Docker Compose starten
Führen Sie den folgenden Befehl aus, um Strapi mit Docker Compose zu starten:
docker-compose up -d
4. Zugriff auf die Strapi-Oberfläche
Öffnen Sie Ihren Webbrowser und navigieren Sie zur Adresse https://<your_server_ip>:1337/admin
. Melden Sie sich mit den Standard-Anmeldedaten username: admin
und password: admin
an.
Konfiguration von Strapi für den Produktionsbetrieb
1. Rewrite-Regeln einfügen
Standardmäßig verwendet Strapi Apache-Rewrite-Regeln, welche auf einem Webserver konfiguriert sein müssen. Wenn Sie einen Webserver wie Nginx oder Apache verwenden, fügen Sie die folgenden Regeln Ihrer Konfiguration hinzu:
location / {
try_files $uri $uri/ /index.html;
}
location /admin {
try_files $uri $uri/ /index.html;
}
2. HTTP-Header konfigurieren
Um die Sicherheit Ihrer Strapi-Anwendung zu erhöhen, konfigurieren Sie die folgenden HTTP-Header in Ihrer Webserverkonfiguration:
- Strict-Transport-Security (HSTS): Erzwingt die Nutzung von HTTPS.
- Content-Security-Policy (CSP): Beschränkt die Ausführung von Skripten, Stylesheets und anderen MIME-Typen.
- X-Frame-Options: Verhindert die Einbettung Ihrer Anwendung in andere Webseiten.
3. Caching aktivieren
Aktivieren Sie Caching auf Ihrem Webserver, um die Leistung zu verbessern. Konfigurieren Sie die folgenden Header:
- Cache-Control: Definiert die Caching-Richtlinien.
- Expires: Gibt das Ablaufdatum für zwischengespeicherte Inhalte an.
- ETag: Hilft bei bedingten GET-Anfragen, um unnötige Downloads zu vermeiden.
4. TLS/SSL aktivieren
Aktivieren Sie TLS/SSL auf Ihrem Webserver, um die Kommunikation zwischen Client und Server zu verschlüsseln. Konfigurieren Sie ein TLS-Zertifikat und richten Sie Weiterleitungen ein, die alle HTTP-Anfragen auf HTTPS umleiten.
Überwachung und Fehlerbehebung
- Überwachen Sie Ihre Strapi-Anwendung mithilfe von Tools wie Prometheus oder Grafana.
- Aktivieren Sie die Protokollierung für Ihre Strapi-Anwendung und den Webserver zur Fehlerbehebung.
- Nutzen Sie Sentry oder ähnliche Tools für die Fehlerberichterstattung.
Fazit
Durch die Umsetzung der in diesem Tutorial beschriebenen Schritte haben Sie Strapi erfolgreich auf Ihrem Ubuntu 22.04-Server für den Produktionsbetrieb eingerichtet und installiert. Sie verfügen nun über eine sichere und zuverlässige API- sowie Verwaltungsoberfläche zur Verwaltung Ihrer Inhalte.
Um Ihre Strapi-Bereitstellung weiter zu optimieren, empfehlen wir die Aktivierung des Caching, die Konfiguration von HTTP-Headern sowie die Implementierung von Überwachungs- und Fehlerbehebungsmaßnahmen. Durch die Anwendung dieser bewährten Methoden stellen Sie eine zuverlässige und leistungsstarke Strapi-Anwendung für Ihre Produktionsumgebung sicher.
Häufig gestellte Fragen
1. Kann Strapi ohne Docker bereitgestellt werden?
Ja, Strapi kann ohne Docker bereitgestellt werden. Allerdings erfordert dies eine manuelle Installation und Konfiguration.
2. Welches Datenbanksystem wird für den Produktionseinsatz mit Strapi empfohlen?
Für den produktiven Einsatz werden MySQL oder PostgreSQL empfohlen.
3. Wie kann ich die Leistung meiner Strapi-Anwendung verbessern?
Sie können die Leistung durch Aktivierung von Caching, Konfiguration von HTTP-Headern und die Verwendung eines CDN verbessern.
4. Wie kann ich meine Strapi-Anwendung absichern?
Sie können Ihre Strapi-Anwendung durch die Aktivierung von TLS/SSL, Konfiguration von HTTP-Headern und Implementierung von Sicherheitsabfragen absichern.
5. Wie kann ich ein Backup meiner Strapi-Daten erstellen?
Sie können ein Backup Ihrer Strapi-Daten durch die Sicherung des Docker-Volumes oder mittels des Befehls strapi dump
erstellen.
6. Wie kann ich meine Strapi-Anwendung aktualisieren?
Sie können Ihre Strapi-Anwendung mit dem Befehl docker-compose up -d --build
aktualisieren.
7. Wie kann ich auf die Strapi-Konsole zugreifen?
Sie können auf die Strapi-Konsole mit dem Befehl docker-compose exec strapi strapi console
zugreifen.
8. Wie kann ich Strapi in einer Kubernetes-Umgebung bereitstellen?
Sie können Strapi in einer Kubernetes-Umgebung durch Nutzung des Helm-Charts oder des offiziellen Docker-Images bereitstellen.