Installer Nextcloud sur un Raspberry Pi
L’auto-hébergement permet de reprendre le contrôle de ses données. Dans cet article, nous verrons comment déployer manuellement Nextcloud avec une pile LAMP (Linux, Apache, MariaDB, PHP) sur un Raspberry Pi.
Prérequis
Avant de commencer l’installation de Nextcloud, assurez-vous de disposer du matériel et du système suivants.
Matériel et réseau
- Un Raspberry Pi 4 ou plus récent. Dans ce guide, la procédure est réalisée sur un Raspberry Pi 4 Model B avec 2 Go de RAM.
- Une carte microSD (minimum 32 Go recommandé) qui hébergera le système et les données de Nextcloud.
- Une connexion réseau fonctionnelle, idéalement filaire.
- Une adresse IP locale fixe (via une réservation DHCP sur votre routeur).
Système et accès
- Raspberry Pi OS installé, basé sur Debian GNU/Linux 13 (Trixie), version Lite (sans interface graphique).
- Un accès SSH opérationnel.
- Un compte utilisateur disposant des privilèges d'administration via la commande
sudo.
Stockage, nom de domaine et HTTPS
Dans le cadre de ce guide, l'installation s'effectue sur la carte microSD avec un accès restreint à votre réseau local. La déportation des données vers un support de stockage externe, ainsi que la configuration d'un nom de domaine sécurisé par un certificat SSL (pour un accès externe), feront l'objet d'articles dédiés.
Installation de la pile LAMP
Pour faire fonctionner Nextcloud, vous devez mettre en place un environnement d'hébergement. Celui-ci repose sur la pile logicielle classique LAMP, qui regroupe le système d'exploitation Linux, le serveur web Apache, la base de données MariaDB et le langage PHP.
Voici le rôle des différents composants que nous allons installer :
- Apache2 : Le serveur web chargé de traiter les requêtes HTTP.
- MariaDB : Le système de gestion de base de données relationnelles (SGBDR) qui stockera les informations de Nextcloud (utilisateurs, paramètres, arborescence des fichiers).
- PHP et ses modules : Le langage de programmation dans lequel est écrit Nextcloud. Le paquet
libapache2-mod-phppermet l'intégration native de PHP au sein d'Apache. - ImageMagick : Une bibliothèque logicielle de traitement d'images, particulièrement utile pour générer les miniatures de vos photos et documents.
Pour procéder à l'installation, connectez-vous en SSH à votre Raspberry Pi et exécutez les commandes suivantes :
# Mise à jour de la liste des paquets locaux et mise à niveau du système
sudo apt update
sudo apt upgrade
# Installation d'Apache, MariaDB, PHP et des modules requis
sudo apt install apache2 mariadb-server libapache2-mod-php php php-{curl,gd,intl,xml,zip,bz2,mbstring,mysql,bcmath,gmp,imagick} imagemagick
Gestion des versions de PHP
En utilisant le système d'exploitation Debian 13 (Trixie), le méta-paquet php installe par défaut la version la plus récente
validée par la distribution. Ces versions sont nativement compatibles avec les dernières versions de Nextcloud.
Configuration de la base de données
Depuis les versions récentes de Debian (et donc de Raspberry Pi OS), MariaDB est sécurisé par défaut dès son installation. Il n'est plus nécessaire d'exécuter de script de sécurisation post-installation.
Nous allons directement créer la base de données dédiée et l'utilisateur possédant les droits exclusifs sur celle-ci.
Connectez-vous à l'invite de commande MariaDB avec les privilèges d'administration :
sudo mariadb
Dans la console MariaDB, exécutez ensuite les requêtes SQL suivantes en prenant soin de remplacer mot_de_passe_fort par un mot de passe robuste que vous conserverez pour la suite de l'installation :
-- Création de la base de données avec le bon encodage
CREATE DATABASE IF NOT EXISTS nextcloud_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- Création de l'utilisateur dédié
CREATE USER 'nextcloud_user'@'localhost' IDENTIFIED BY 'mot_de_passe_fort';
-- Attribution de tous les privilèges à l'utilisateur sur la base de données
GRANT ALL PRIVILEGES ON nextcloud_db.* TO 'nextcloud_user'@'localhost';
-- Application des nouveaux privilèges
FLUSH PRIVILEGES;
-- Sortie de la console MariaDB
EXIT;
Déploiement des fichiers Nextcloud
Maintenant que la base de données est prête, nous pouvons procéder à l'installation de l'application Nextcloud et configurer notre serveur web Apache pour qu'il puisse la distribuer sur le réseau.
Téléchargement et extraction
Nous allons télécharger la dernière version stable de Nextcloud depuis le site officiel, l'extraire directement dans le répertoire racine de notre serveur web, puis nettoyer l'archive téléchargée.
Placez-vous dans le répertoire du serveur web et téléchargez l'archive :
cd /var/www/
sudo wget https://download.nextcloud.com/server/releases/latest.tar.bz2
Procédez ensuite à l'extraction de l'archive, ce qui créera automatiquement le répertoire nextcloud avec tout son contenu :
sudo tar -xjvf latest.tar.bz2
Une fois l'extraction terminée, vous pouvez supprimer l'archive :
sudo rm latest.tar.bz2
Préparation des répertoires et permissions
Pour fonctionner correctement et de manière sécurisée, Nextcloud a besoin de deux espaces distincts : le répertoire de l'application (situé dans la racine web) et le répertoire de stockage des données (placé à l'extérieur de la racine web par mesure de sécurité).
Nous allons créer le répertoire de données, puis attribuer la propriété et les droits adéquats aux deux dossiers pour l'utilisateur du serveur web (www-data).
# 1. Création du répertoire de données en dehors de la racine web
sudo mkdir -p /var/nextcloud_data
# 2. Attribution de la propriété à l'utilisateur d'Apache pour les deux répertoires
sudo chown -R www-data:www-data /var/www/nextcloud
sudo chown -R www-data:www-data /var/nextcloud_data
# 3. Sécurisation stricte du dossier de données (seul www-data pourra lire/écrire)
sudo chmod 750 -R /var/nextcloud_data
Chemin des données
Gardez ce chemin (/var/nextcloud_data) en tête. Il vous sera demandé lors de la configuration finale depuis
l'interface web de Nextcloud.
Configuration du serveur web Apache
Création du VirtualHost
Pour qu'Apache sache comment distribuer les pages de Nextcloud, il faut lui créer un fichier de configuration dédié, appelé VirtualHost.
Ouvrez un nouveau fichier dans le répertoire des sites disponibles d'Apache :
sudo nano /etc/apache2/sites-available/nextcloud.conf
Copiez et collez la configuration suivante. Elle indique à Apache où se trouve l'application et définit les droits d'accès au répertoire :
<VirtualHost *:80>
DocumentRoot "/var/www/nextcloud"
ServerName localhost
ErrorLog ${APACHE_LOG_DIR}/nextcloud_error.log
CustomLog ${APACHE_LOG_DIR}/nextcloud_access.log combined
<Directory /var/www/nextcloud/>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
<IfModule mod_dav.c>
Dav off
</IfModule>
</Directory>
</VirtualHost>
Sauvegardez vos modifications (Ctrl+O, puis Entrée) et quittez l'éditeur (Ctrl+X).
L'adresse ServerName
Pour une installation locale sans nom de domaine, il suffit d’utiliser ServerName localhost ou l’adresse IP de votre Raspberry Pi. Si vous configurez ensuite un nom de domaine, cette valeur pourra être remplacée par celui-ci, par exemple cloud.votre-domaine.fr.
Activation du site et des modules
Maintenant que le fichier est prêt, nous devons activer ce nouveau site, désactiver le site par défaut d'Apache pour éviter les conflits, et nous assurer que les modules Apache requis par Nextcloud sont bien actifs.
Exécutez les commandes suivantes :
# Activation du VirtualHost Nextcloud
sudo a2ensite nextcloud.conf
# Désactivation du site Apache par défaut
sudo a2dissite 000-default.conf
# Activation des modules requis (certains sont peut-être déjà actifs)
sudo a2enmod rewrite headers env dir mime setenvif
Pour appliquer l'ensemble de ces modifications, redémarrez le service Apache :
sudo systemctl restart apache2
Initialisation via l'interface web
Votre serveur est désormais prêt. La dernière étape consiste à relier l'application à sa base de données et à créer votre compte administrateur.
Ouvrez un navigateur web depuis un ordinateur connecté au même réseau que votre Raspberry Pi et saisissez son adresse IP dans la barre d'adresse : http://votre_ip_locale (exemple: http://192.168.1.50).
Vous devriez voir apparaître la page de bienvenue de Nextcloud. Remplissez le formulaire avec les informations suivantes :
-
Créer un compte administrateur : Choisissez un nom d'utilisateur et un mot de passe robuste. Ce compte aura tous les droits sur votre instance.
-
Dossier des données : Remplacez le chemin proposé par défaut par celui que nous avons créé à l'extérieur de la racine web, soit
/var/nextcloud_data. -
Configurer la base de données :
- Utilisateur de la base de données :
nextcloud_user. - Mot de passe de la base de données : Le mot de passe fort défini précédemment dans MariaDB.
- Nom de la base de données :
nextcloud_db. - Hôte : Laissez la valeur par défaut
localhost.
- Utilisateur de la base de données :
Cliquez enfin sur Installer et patientez quelques instants.
Félicitations !
Une fois le processus terminé, vous serez redirigé vers le tableau de bord principal de Nextcloud. Votre cloud privé est désormais fonctionnel sur votre réseau local !