Vous êtes à la recherche d’un système de gestion de contenu (CMS) flexible et personnalisable pour développer un site web moderne? Ne cherchez pas plus loin que Strapi CMS. Dans cet article, nous vous guiderons à travers le processus d’installation de Strapi CMS sur un serveur Ubuntu 22.04, avec Nginx comme serveur proxy inverse.
Prérequis
Avant de commencer, assurez-vous d’avoir tout ce dont vous avez besoin :
- Un serveur fonctionnant sous Ubuntu 22.04.
- Un utilisateur non root avec des privilèges sudo.
- Un nom de domaine pleinement qualifié (FQDN) comme strapi.example.com.
Mettez à jour votre système en exécutant les commandes suivantes :
sudo apt update sudo apt upgrade
Ensuite, installez certains packages nécessaires en exécutant la commande suivante :
sudo apt install wget curl nano software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release ubuntu-keyring unzip -y
Étape 1 – Configurer le Pare-feu
La première étape consiste à configurer le pare-feu pour garantir la sécurité de votre serveur. Ubuntu est livré avec ufw (Uncomplicated Firewall) par défaut. Vérifions si le pare-feu est en marche :
sudo ufw status
Vous devriez voir le résultat suivant :
Status: inactive
Pour autoriser les connexions SSH, exécutez la commande suivante :
sudo ufw allow OpenSSH
Ensuite, ouvrez les ports HTTP et HTTPS :
sudo ufw allow http sudo ufw allow https
Activez le pare-feu :
sudo ufw enable
Vous serez invité à poursuivre l’opération. Tapezy
et appuyez sur Entrée.
Pour vérifier que le pare-feu est actif, exécutez :
sudo ufw status
La sortie devrait montrer que le pare-feu est actif et que les ports nécessaires sont autorisés.
Étape 2 – Installer et Configurer PostgreSQL
Strapi CMS fonctionne avec PostgreSQL 11 et plus. Comme Ubuntu 22.04 est livré avec PostgreSQL 14, nous utiliserons cette version. Commençons par ajouter la clé GPG de PostgreSQL :
curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql-key.gpg >/dev/null
Maintenant, ajoutez le dépôt APT à votre liste de sources :
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'
Mettez à jour le dépôt système :
sudo apt update
Installez PostgreSQL et son package contrib :
sudo apt install postgresql postgresql-contrib
Pour vérifier l’état du service PostgreSQL, exécutez :
sudo systemctl status postgresql
Vous devriez voir que le service est actif et en marche.
Ensuite, lancez le shell PostgreSQL :
sudo -i -u postgres psql
Dans le shell, créez la base de données Strapi :
CREATE DATABASE strapidb;
Créez un utilisateur pour Strapi CMS et définissez un mot de passe fort :
CREATE USER strapiuser WITH PASSWORD 'Your_Password';
Changez le propriétaire de la base de données pour le nouvel utilisateur créé :
ALTER DATABASE strapidb OWNER TO strapiuser;
Quittez le shell PostgreSQL :
q
Pour vérifier que vos identifiants fonctionnent, exécutez :
psql --username strapiuser --password --host localhost strapidb
Vous serez invité à entrer le mot de passe que vous avez défini précédemment. Si tout est correct, vous devriez pouvoir accéder au shell PostgreSQL.
Étape 3 – Installer Node.js
Ubuntu 22.04 est livré avec une version obsolète de Node.js. Pour installer la dernière version LTS de Node.js, suivez ces étapes :
Tout d’abord, récupérez l’installateur de Node.js v18 depuis Nodesource :
curl -sL https://deb.nodesource.com/setup_18.x-o nodesource_setup.sh
Exécutez le script d’installation :
sudo bash nodesource_setup.sh
Installez Node.js :
sudo apt install nodejs
Vérifiez la version de Node.js :
node -v
Vous devriez voir la dernière version LTS de Node.js installée.
Supprimez le fichier d’installation :
rm nodesource_setup.sh
Étape 4 – Installer Strapi
Maintenant que tous les prérequis sont en place, il est temps d’installer Strapi CMS. Exécutez la commande suivante :
npx create-strapi-app@latest my-project
Remplacez my-project
par le nom souhaité pour votre projet Strapi. Cette commande créera un nouveau projet Strapi dans le répertoire courant.
Pendant le processus d’installation, vous serez invité à choisir le type d’installation, la langue préférée, le client de base de données par défaut, et d’autres options de configuration. Faites les sélections appropriées en fonction de vos besoins.
Une fois l’installation terminée, naviguez vers le répertoire du projet :
cd my-project
Construisez le projet, y compris l’interface d’administration de Strapi :
NODE_ENV=production npm run build
Démarrez le serveur Strapi :
node_modules/.bin/strapi start
Votre Strapi CMS est maintenant opérationnel ! Vous pouvez accéder au panneau d’administration de Strapi en ouvrant l’URL suivante dans votre navigateur : http://:1337/admin
.
Étape 5 – Installer et Configurer PM2
Au lieu de démarrer manuellement le serveur Strapi à chaque fois, nous pouvons utiliser PM2 (Process Manager 2) pour gérer le processus et créer un service systemd pour un démarrage automatique.
Passez au répertoire home :
cd ~
Installez PM2 globalement :
sudo npm install pm2@latest -g
Créez et ouvrez le fichier de configuration PM2 pour l’édition :
sudo nano ecosystem.config.js
Collez le contenu suivant dans le fichier, en remplaçant le chemin du répertoire et les identifiants de la base de données par les vôtres :
module.exports = { apps: [ { name: 'strapi', cwd: '/home/shapehost/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', }, }, ], };
Enregistrez le fichier et quittez l’éditeur.
Démarrez votre instance Strapi en arrière-plan en utilisant PM2 :
pm2 start ecosystem.config.js
Pour s’assurer que PM2 démarre automatiquement au démarrage du serveur, exécutez la commande suivante :
pm2 startup
Suivez les instructions fournies pour configurer le script de démarrage.
Enregistrez la liste des processus PM2 :
pm2 save
Votre Strapi CMS est maintenant exécuté en tant que processus en arrière-plan géré par PM2.
Étape 6 – Installer Nginx
Pour diffuser votre Strapi CMS sur internet, nous devons installer Nginx en tant que serveur proxy inverse. Ubuntu 22.04 est livré avec une version plus ancienne de Nginx, nous allons donc installer la dernière version. Voici comment :
Tout d’abord, importez la clé de signature de Nginx :
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \\\| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Ensuite, ajoutez le dépôt pour la version stable de Nginx :
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
Mettez à jour les dépôts système :
sudo apt update
Installez Nginx :
sudo apt install nginx
Vérifiez l’installation :
nginx -v
Vous devriez voir la version de Nginx installée.
Démarrez le serveur Nginx :
sudo systemctl start nginx
Étape 7 – Installer SSL
Pour sécuriser votre Strapi CMS avec un certificat SSL, nous utiliserons Certbot pour générer et gérer le certificat. Voici comment installer Certbot en utilisant Snapd :
Comme Ubuntu 22.04 est livré avec Snapd installé par défaut, assurez-vous que votre version de Snapd est à jour :
sudo snap install core sudo snap refresh core
Installez Certbot :
sudo snap install --classic certbot
Créez un lien symbolique vers la commande Certbot :
sudo ln -s /snap/bin/certbot /usr/bin/certbot
Générez un certificat SSL pour votre domaine :
sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m test@example.com -d strapi.example.com
Remplacez strapi.example.com
par votre propre domaine. Les fichiers du certificat seront stockés dans le répertoire /etc/letsencrypt/live/strapi.example.com
de votre serveur.
Générez un certificat de groupe Diffie-Hellman pour une sécurité renforcée :
sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Pour tester le processus de renouvellement SSL, exécutez la commande suivante :
sudo certbot renew --dry-run
S’il n’y a pas d’erreurs, votre certificat se renouvellera automatiquement si nécessaire.
Étape 8 – Configurer Nginx
Pour configurer Nginx en tant que proxy inversé pour votre Strapi CMS, suivez ces étapes :
Ouvrez le fichier de configuration Nginx pour l’édition :
sudo nano /etc/nginx/nginx.conf
Ajoutez la ligne suivante avant la ligne include /etc/nginx/conf.d/*.conf;
:
server_names_hash_bucket_size64;
Enregistrez le fichier et quittez l’éditeur.
Créez un nouveau fichier de configuration Nginx pour votre Strapi CMS :
sudo nano /etc/nginx/conf.d/strapi.conf
Collez le code suivant dans le fichier, en remplaçant strapi.example.com
par votre propre domaine et en ajustant d’autres chemins et paramètres si nécessaire :
server { # Redirect any http requests to https 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 configuration 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 ssl_stapling on; ssl_stapling_verify on; # Diffie-Hellman group certificate 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; } }
Enregistrez le fichier et quittez l’éditeur.
Vérifiez la syntaxe du fichier de configuration Nginx :
sudo nginx -t
Si la syntaxe est correcte, redémarrez le service Nginx :
sudo systemctl restart nginx
Félicitations! Votre Strapi CMS est maintenant accessible sur internet via l’URL sécurisée https://strapi.example.com
. Vous pouvez maintenant créer un utilisateur administrateur et commencer à construire votre contenu.
Étape 9 – Mettre à jour Strapi
Périodiquement, de nouvelles versions de Strapi CMS sont publiées avec des corrections de bugs et de nouvelles fonctionnalités. Pour mettre à jour votre installation de Strapi, suivez ces étapes :
Tout d’abord, arrêtez le serveur :
cd ~ pm2 stop ecosystem.config.js
Naviguez vers le répertoire du projet et ouvrez le fichier package.json
pour l’édition :
cd my-project nanopackage.json
Mettez à jour les numéros de version de tous les packages Strapi vers la dernière version stable. Vous pouvez trouver la dernière version sur la page des versions de Strapi sur GitHub.
Par exemple, mettez à jour la section dependencies
comme ceci :
"dependencies": { "@strapi/strapi": "4.5.5", "@strapi/plugin-users-permissions": "4.5.5", "@strapi/plugin-i18n": "4.5.5", "pg": "8.6.0" },
Enregistrez le fichier et quittez l’éditeur.
Installez la version améliorée de Strapi :
npm install
Reconstruisez le panneau d’administration :
NODE_ENV=production npm run build
Redémarrez le serveur :
cd ~ pm2 start ecosystem.config.js
Votre Strapi CMS est maintenant mis à jour et fonctionne avec les dernières fonctionnalités et améliorations.
N’oubliez pas de consulter Shape.host pour des services d’hébergement VPS Linux SSD fiables, évolutifs et sécurisés. Shape.host est votre partenaire de confiance pour tous vos besoins en matière d’hébergement cloud.