Strapi Installation · 11 min read · Oct 19, 2025
So installieren Sie Strapi CMS auf Ubuntu 22.04

Strapi ist ein Open-Source, headless Content Management System (CMS), das mit JavaScript erstellt wurde. Wie andere headless CMS kommt Strapi nicht mit einem Frontend aus der Box. Es verwendet eine API für sein Frontend, sodass Sie die Website mit beliebten Frameworks wie React und Next.js erstellen können. Basierend auf einem Plug-in-System ist Strapi ein flexibles CMS, dessen Admin-Panel und API erweiterbar sind - und dessen jeder Teil an jeden Anwendungsfall anpassbar ist. Strapi verfügt auch über ein integriertes Benutzersystem, um im Detail zu verwalten, auf was die Administratoren und Endbenutzer Zugriff haben.
In diesem Tutorial lernen Sie, wie Sie die Community-Version von Strapi CMS auf einem Ubuntu 22.04-Server installieren, zusammen mit Nginx als Reverse-Proxy-Server.
Voraussetzungen
- Ein Server, der Ubuntu 22.04 ausführt.
- Ein Nicht-Root-Benutzer mit Sudo-Rechten.
- Ein vollqualifizierter Domainname (FQDN) wie
strapi.example.com. - Stellen Sie sicher, dass alles aktualisiert ist.
$ sudo apt update $ sudo apt upgrade - Einige Pakete, die Ihr System benötigt.
$ sudo apt install wget curl nano software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release ubuntu-keyring unzip -yEinige dieser Pakete sind möglicherweise bereits auf Ihrem System installiert.
Schritt 1 - Firewall konfigurieren
Der erste Schritt besteht darin, die Firewall zu konfigurieren. Ubuntu wird standardmäßig mit ufw (Uncomplicated Firewall) geliefert.
Überprüfen Sie, ob die Firewall läuft.
$ sudo ufw status
Sie sollten die folgende Ausgabe erhalten.
Status: inactive
Erlauben Sie den SSH-Port, damit die Firewall die aktuelle Verbindung beim Aktivieren nicht unterbricht.
$ sudo ufw allow OpenSSH
Erlauben Sie auch die HTTP- und HTTPS-Ports.
$ sudo ufw allow http
$ sudo ufw allow https
Aktivieren Sie die Firewall
$ sudo ufw enable
Befehl kann bestehende SSH-Verbindungen stören. Mit der Operation fortfahren (y|n)? y
Firewall ist aktiv und beim Systemstart aktiviert
Überprüfen Sie den Status der Firewall erneut.
$ sudo ufw status
Sie sollten eine ähnliche Ausgabe sehen.
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
Schritt 2 - PostgreSQL installieren und konfigurieren
Strapi funktioniert mit PostgreSQL 11 und höher. Ubuntu 22.04 wird standardmäßig mit PostgreSQL 14 ausgeliefert. Wir werden PostgreSQL 15 für unser Tutorial verwenden.
Führen Sie den folgenden Befehl aus, um den PostgreSQL GPG-Schlüssel hinzuzufügen.
$ curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql-key.gpg >/dev/null
Fügen Sie das APT-Repository zu Ihrer Quellenliste hinzu.
$ sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/postgresql-key.gpg arch=amd64] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
Aktualisieren Sie das System-Repository.
$ sudo apt update
Jetzt können Sie PostgreSQL mit dem folgenden Befehl installieren.
$ sudo apt install postgresql postgresql-contrib
Das Paket postgresql-contrib enthält einige zusätzliche Dienstprogramme.
Überprüfen Sie den Status des PostgreSQL-Dienstes.
$ sudo systemctl status postgresql
? postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since Wed 2022-12-28 18:03:03 UTC; 17s ago
Main PID: 4119 (code=exited, status=0/SUCCESS)
CPU: 2ms
Dec 28 18:03:03 strapi systemd[1]: Starting PostgreSQL RDBMS...
Dec 28 18:03:03 strapi systemd[1]: Finished PostgreSQL RDBMS.
Sie können sehen, dass der Dienst standardmäßig aktiviert und ausgeführt wird.
Starten Sie die PostgreSQL-Shell.
$ sudo -i -u postgres psql
Erstellen Sie die Strapi-Datenbank.
postgres=# CREATE DATABASE strapidb;
Erstellen Sie den Strapi-Benutzer und wählen Sie ein sicheres Passwort.
postgres-# CREATE USER strapiuser WITH PASSWORD 'Your_Password';
Ändern Sie den Datenbankbesitzer in den Strapi-Benutzer.
postgres-# ALTER DATABASE strapidb OWNER TO strapiuser;
Verlassen Sie die Shell.
postgres-# \q
Überprüfen Sie, ob Ihre Anmeldeinformationen funktionieren.
$ psql --username strapiuser --password --host localhost strapidb
Password:
psql (15.1 (Ubuntu 15.1-1.pgdg22.04+1))
SSL-Verbindung (Protokoll: TLSv1.3, Chiffre: TLS_AES_256_GCM_SHA384, Bits: 256, Kompression: aus)
Geben Sie "help" für Hilfe ein.
strapidb=>
Verlassen Sie die Shell, indem Sie \q eingeben.
Schritt 3 - Node.js installieren
Ubuntu 22.04 wird mit Node v12 ausgeliefert, das veraltet ist. Wir werden die neueste LTS-Version von Node installieren, die zum Zeitpunkt des Schreibens dieses Tutorials v18 ist.
Laden Sie den Node v18-Installer von Nodesource herunter.
$ curl -sL https://deb.nodesource.com/setup_18.x -o nodesource_setup.sh
Führen Sie das Installationsskript aus.
$ sudo bash nodesource_setup.sh
Installieren Sie Node.js.
$ sudo apt install nodejs
Überprüfen Sie die Node.js-Version.
$ node -v
v18.12.1
Löschen Sie die Installationsdatei.
$ rm nodesource_setup.sh
Schritt 4 - Strapi installieren
Führen Sie den folgenden Befehl aus, um Strapi zu installieren.
$ npx create-strapi-app@latest howtoforge-project
Need to install the following packages:
[email protected]
Ok to proceed? (y) y
Geben Sie y ein, um mit der Installation fortzufahren. Als Nächstes werden Sie aufgefordert, den Installationstyp auszuwählen. Wählen Sie Benutzerdefiniert, um fortzufahren, und beantworten Sie die Fragen wie folgt.
? Wählen Sie Ihren Installationstyp Benutzerdefiniert (manuelle Einstellungen)
? Wählen Sie Ihre bevorzugte Sprache JavaScript
? Wählen Sie Ihren Standard-Datenbank-Client postgres
? Datenbankname: strapidb
? Host: 127.0.0.1
? Port: 5432
? Benutzername: strapiuser
? Passwort: Your_Password
? SSL-Verbindung aktivieren: Nein
Je nach Ihren Anforderungen können Sie entweder TypeScript oder JavaScript als Sprache für Strapi wählen.
Sobald die Installation abgeschlossen ist, sind Sie bereit, Ihr Strapi-Projekt zu erstellen.
Wechseln Sie in das Projektverzeichnis.
$ cd howtoforge-project
Führen Sie den folgenden Befehl aus, um das Projekt zu erstellen, einschließlich der Strapi Admin UI.
$ NODE_ENV=production npm run build
Starten Sie den Strapi-Server mit dem folgenden Befehl.
$ node ~/howtoforge-project/node_modules/.bin/strapi start
Ihre Anwendung sollte unter der URL http:// sichtbar sein. Öffnen Sie jedoch zuerst den Port in der Firewall.
$ sudo ufw allow 1337
Sobald Sie die URL öffnen, sollten Sie den folgenden Bildschirm sehen.

Drücken Sie Strg + C im Terminal, um den Server zu stoppen. Sie sollten die Firewallregel löschen, da wir sie nicht mehr benötigen.
$ sudo ufw delete allow 1337
Schritt 5 - PM2 installieren und konfigurieren
Anstatt den Server manuell zu starten, können wir PM2 (Process Manager 2) verwenden, um den Prozess zu verwalten und einen systemd-Dienst dafür zu erstellen.
Wechseln Sie in das Home-Verzeichnis.
$ cd ~
Installieren Sie PM2.
$ sudo npm install pm2@latest -g
Erstellen und öffnen Sie die PM2-Konfigurationsdatei zur Bearbeitung.
$ sudo nano ecosystem.config.js
Fügen Sie den folgenden Inhalt in die Datei ein. Stellen Sie sicher, dass Sie den richtigen Verzeichnisnamen zusammen mit den Postgres-Anmeldeinformationen eingeben.
module.exports = {
apps: [
{
name: 'strapi',
cwd: '/home/navjot/my-project',
script: 'npm',
args: 'start',
env: {
NODE_ENV: 'production',
DATABASE_HOST: 'localhost',
DATABASE_PORT: '5432',
DATABASE_NAME: 'strapidb',
DATABASE_USERNAME: 'strapiuser',
DATABASE_PASSWORD: 'Your_Password',
},
},
],
};
Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Führen Sie Ihre Strapi-Instanz im Hintergrund mit PM2 aus.
$ pm2 start ecosystem.config.js
Sie erhalten die folgende Ausgabe.
-------------
__/\\\\\\\\\____/\\\____________/\\\____/\\\\\\\_____
_\/\\\\/////////\\\_\/\\\\\________/\\\\\__/\\\\///////\\\___
_\/\\\_______\/\\\_\/\\\//\\\____/\\//\\\_\///______\//\\\__
_\/\\\\\\\\\\\\\\\/__\/\\\///\\\/\\\/__\/\\\___________/\\\/___
_\/\\\\/////////____\/\\\__\///\\\/___\/\\\________/\\\//_____
_\/\\\_____________\/\\\____\///_____\/\\\_____/\\\//________
_\/\\\_____________\/\\\_____________\/\\\___/\\\/___________
_\/\\\_____________\/\\\_____________\/\\\__/\\\\\\\\\\\\\\\_
_\///______________\///______________\///__\///////////////__
Runtime Edition
PM2 ist ein Produktionsprozessmanager für Node.js-Anwendungen
mit einem integrierten Lastenausgleich.
Starten und Daemonisieren Sie jede Anwendung:
$ pm2 start app.js
Lastenausgleich 4 Instanzen von api.js:
$ pm2 start api.js -i 4
Überwachen in der Produktion:
$ pm2 monitor
Lassen Sie pm2 beim Neustart des Servers automatisch starten:
$ pm2 startup
Um weiter zu gehen, schauen Sie sich an:
http://pm2.io/
-------------
[PM2] PM2-Daemon mit pm2_home=/home/navjot/.pm2 wird gestartet
[PM2] PM2 erfolgreich daemonisiert
[PM2][WARN] Anwendungen strapi laufen nicht, starten...
[PM2] App [strapi] gestartet (1 Instanzen)
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
? id ? name ? namespace ? version ? mode ? pid ? uptime ? ? ? status ? cpu ? mem ? user
? watching ?
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
? 0 ? strapi ? default ? N/A ? fork ? 4824 ? 0s ? 0 ? online ? 0% ? 31.9mb ? navjot ? disabled ?
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
Anwendungen, die unter PM2 ausgeführt werden, starten automatisch neu, wenn sie abstürzen oder beendet werden.
Erstellen Sie ein Startsystemd-Skript mit dem folgenden Befehl.
$ pm2 startup
Sie erhalten die folgende Ausgabe.
[PM2] Init-System gefunden: systemd
[PM2] Um das Startskript einzurichten, kopieren/einfügen Sie den folgenden Befehl:
sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u navjot --hp /home/navjot
Kopieren Sie den Befehl aus der obigen Ausgabe und führen Sie ihn aus.
$ sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u navjot --hp /home/navjot
Speichern Sie die PM2-Prozessliste.
$ pm2 save
Ihr Strapi-Dienst läuft jetzt im Hintergrund im Produktionsmodus.
Schritt 6 - Nginx installieren
Ubuntu 22.04 wird mit einer älteren Version von Nginx ausgeliefert. Um die neueste Version zu installieren, müssen Sie das offizielle Nginx-Repository herunterladen.
Importieren Sie den Signaturschlüssel von Nginx.
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Fügen Sie das Repository für die stabile Version von Nginx hinzu.
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
Aktualisieren Sie die System-Repositorys.
$ sudo apt update
Installieren Sie Nginx.
$ sudo apt install nginx
Überprüfen Sie die Installation.
$ nginx -v
nginx version: nginx/1.22.1
Starten Sie den Nginx-Server.
$ sudo systemctl start nginx
Schritt 7 - SSL installieren
Wir müssen Certbot installieren, um das SSL-Zertifikat zu generieren. Sie können Certbot entweder über das Repository von Ubuntu installieren oder die neueste Version mit dem Snapd-Tool herunterladen. Wir werden die Snapd-Version verwenden.
Ubuntu 22.04 wird standardmäßig mit Snapd installiert. Führen Sie die folgenden Befehle aus, um sicherzustellen, dass Ihre Version von Snapd auf dem neuesten Stand ist. Stellen Sie sicher, dass Ihre Version von Snapd auf dem neuesten Stand ist.
$ sudo snap install core
$ sudo snap refresh core
Installieren Sie Certbot.
$ sudo snap install --classic certbot
Verwenden Sie den folgenden Befehl, um sicherzustellen, dass der Certbot-Befehl ausgeführt wird, indem Sie einen symbolischen Link zum Verzeichnis /usr/bin erstellen.
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Führen Sie den folgenden Befehl aus, um ein SSL-Zertifikat zu generieren.
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d strapi.example.com
Der obige Befehl lädt ein Zertifikat in das Verzeichnis /etc/letsencrypt/live/strapi.example.com auf Ihrem Server herunter.
Generieren Sie ein Diffie-Hellman-Gruppen-Zertifikat.
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Führen Sie einen Testlauf des Prozesses durch, um zu überprüfen, ob die SSL-Erneuerung einwandfrei funktioniert.
$ sudo certbot renew --dry-run
Wenn Sie keine Fehler sehen, sind Sie bereit. Ihr Zertifikat wird automatisch erneuert.
Schritt 8 - Nginx konfigurieren
Öffnen Sie die Datei /etc/nginx/nginx.conf zur Bearbeitung.
$ sudo nano /etc/nginx/nginx.conf
Fügen Sie die folgende Zeile vor der Zeile include /etc/nginx/conf.d/*.conf; hinzu.
server_names_hash_bucket_size 64;
Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Erstellen und öffnen Sie die Datei /etc/nginx/conf.d/strapi.conf zur Bearbeitung.
$ sudo nano /etc/nginx/conf.d/strapi.conf
Fügen Sie den folgenden Code ein.
server {
# Leiten Sie alle http-Anfragen zu https um
listen 80;
listen [::]:80;
server_name strapi.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name strapi.example.com;
access_log /var/log/nginx/strapi.access.log;
error_log /var/log/nginx/strapi.error.log;
# TLS-Konfiguration
ssl_certificate /etc/letsencrypt/live/strapi.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/strapi.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/strapi.example.com/chain.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:50m;
ssl_session_timeout 1d;
# OCSP Stapling ---
# Holen Sie sich OCSP-Datensätze von der URL im ssl_certificate und cachen Sie sie
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:1337;
}
}
Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Überprüfen Sie die Syntax der Nginx-Konfigurationsdatei.
$ sudo nginx -t
nginx: die Konfigurationsdatei /etc/nginx/nginx.conf Syntax ist ok
nginx: Konfigurationsdatei /etc/nginx/nginx.conf Test war erfolgreich
Starten Sie den Nginx-Dienst neu.
$ sudo systemctl restart nginx
Sie können jetzt auf Strapi CMS über die URL https://strapi.example.com zugreifen. Sie sehen die folgende Seite, die zeigt, dass Strapi im Produktionsmodus läuft.

Besuchen Sie die URL https://strapi.example.com/admin, um einen Administratorbenutzer zu erstellen.

Füllen Sie Ihre Admin-Daten aus und klicken Sie auf die Schaltfläche Loslegen, um zum Administrations-Dashboard-Bildschirm zu gelangen.

Von hier aus können Sie mit der Erstellung von Inhalten in Strapi beginnen.
Schritt 9 - Strapi aktualisieren
Der erste Schritt beim Aktualisieren von Strapi besteht darin, den Server zu stoppen.
$ cd ~
$ pm2 stop ecosystem.config.js
Wechseln Sie in das Projektverzeichnis und öffnen Sie die Datei package.json zur Bearbeitung.
$ cd howtoforge-project
$ nano package.json
Aktualisieren Sie alle Versionsnummern der Strapi-Pakete auf die neueste stabile Strapi-Version. Sie können die neueste verfügbare Version von der GitHub-Release-Seite von Strapi abrufen.
"devDependencies": {},
"dependencies": {
"@strapi/strapi": "4.5.5",
"@strapi/plugin-users-permissions": "4.5.5",
"@strapi/plugin-i18n": "4.5.5",
"pg": "8.6.0"
},
Hier müssen Sie 4.5.5 auf die neueste stabile Version ändern. Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Installieren Sie die aktualisierte Version.
$ npm install
Bauen Sie das Administrationspanel neu.
$ NODE_ENV=production npm run build
Starten Sie den Server erneut.
$ cd ~
$ pm2 start ecosystem.config.js
Ihre Strapi-Installation ist jetzt aktualisiert und läuft.
Fazit
Damit endet unser Tutorial zur Installation von Strapi CMS auf einem Ubuntu 22.04-Server und Nginx als Reverse-Proxy-Server. Wenn Sie Fragen haben, posten Sie diese in den Kommentaren unten.
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.