CyberSDF

Reprenez la main sur votre numérique

Nextcloud : installer un stockage personnel sur Ubuntu

Serveur domestique en aluminium avec disque et câble Ethernet visibles
Couverture du dossier d'installation Nextcloud sur Ubuntu.

Pour remplacer un stockage cloud distant, installez Nextcloud sur un serveur Ubuntu 24.04 avec Apache, PHP et MariaDB. Le répertoire de données reste hors du web, le domaine passe en HTTPS, les tâches d’entretien tournent avec cron et un test WebDAV vérifie l’accès depuis un client. Le montage demande l’accès administrateur au serveur, et vous restez responsable des mises à jour, des sauvegardes et du certificat.

Sommaire
  1. Le montage choisi avant de toucher au serveur
  2. Préparer Ubuntu et la base MariaDB
  3. Télécharger une archive vérifiable
  4. Mettre le code et les données à des endroits distincts
  5. Déclarer le site Apache et passer en HTTPS
  6. Terminer dans l’assistant Nextcloud
  7. Faire tourner les tâches en arrière-plan
  8. Vérifier l’installation avec occ et WebDAV
  9. Brancher les ordinateurs et téléphones
  10. Le stockage n’est pas la sauvegarde
  11. Les symptômes qui orientent le dépannage

La méthode part d’une installation par archive, documentée dans la documentation Nextcloud pour Linux. Si votre besoin est encore de comparer un service hébergé et un logiciel installé, commencez par la grille pour choisir un logiciel, puis revenez ici avec un nom de domaine et un serveur sous votre contrôle.

Le montage choisi avant de toucher au serveur

Le serveur expose un seul nom, par exemple cloud.example.com. Apache sert le code Nextcloud depuis /var/www/nextcloud, tandis que les fichiers utilisateurs vont dans /srv/nextcloud-data. MariaDB conserve les informations de l’application. Cette séparation rend le rôle de chaque répertoire lisible et évite de placer les documents dans l’arborescence directement exposée par le serveur web.

Pointez le DNS A ou AAAA de cloud.example.com vers le serveur avant de demander le certificat. Préparez aussi un emplacement de sauvegarde sur un autre disque ou une autre machine. Une copie située sur le même disque que les données partage la panne du disque.

Le choix Apache, MariaDB et archive n’est pas la seule voie. Nextcloud documente aussi des paquets et des appliances, mais les fichiers de configuration et les commandes de maintenance changent selon le mode d’installation. Ne mélangez pas la procédure d’une image Docker avec celle d’une archive Apache.

Préparer Ubuntu et la base MariaDB

Vérifier la machine

La table des exigences Nextcloud doit être relue pour la version que vous installez. Elle liste les systèmes, les bases, le serveur web et les versions PHP prises en charge. Sur Ubuntu 24.04, vérifiez d’abord les versions réellement actives :

lsb_release -ds
php -v
apache2 -v
mariadb --version

La sortie doit correspondre à une combinaison présente dans cette table. Le nombre de processus PHP, de fichiers et d’utilisateurs fait varier la mémoire nécessaire; ne déduisez pas une capacité de production à partir d’une valeur minimale.

Installez les composants du chemin Apache et MariaDB :

sudo apt update
sudo apt install apache2 mariadb-server libapache2-mod-php \
  php-gd php-mysql php-curl php-mbstring php-intl php-gmp \
  php-xml php-imagick php-zip
sudo systemctl enable --now apache2 mariadb

Les modules PHP supplémentaires dépendent des applications que vous ajouterez. Commencez avec le noyau, puis lisez l’avertissement affiché par Nextcloud plutôt que d’installer une collection de modules sans rapport avec votre usage.

Créer une base dédiée

La base et son compte doivent être réservés à Nextcloud. Ouvrez l’interface MariaDB, remplacez le mot de passe d’exemple par un secret unique conservé dans votre gestionnaire de mots de passe, puis quittez la console :

sudo mariadb
CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'REMPLACEZ_PAR_UN_SECRET_UNIQUE';
CREATE DATABASE IF NOT EXISTS nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost';
FLUSH PRIVILEGES;
quit;

MariaDB est préférable à SQLite pour une instance qui synchronise des fichiers. L’assistant d’installation affiche lui-même un avertissement quand SQLite est utilisé avec des clients de synchronisation.

Télécharger une archive vérifiable

Téléchargez l’archive et son fichier de somme depuis le même répertoire, puis contrôlez la somme avant toute extraction :

mkdir -p ~/telechargements/nextcloud
cd ~/telechargements/nextcloud
curl --fail --location --remote-name \
  https://download.nextcloud.com/server/releases/latest.tar.bz2
curl --fail --location --remote-name \
  https://download.nextcloud.com/server/releases/latest.tar.bz2.sha256
sha256sum -c latest.tar.bz2.sha256 --ignore-missing
tar -tjf latest.tar.bz2 | sed -n '1,5p'

Le 16 septembre 2026, cette adresse a fourni 247345245 octets, soit 235.89 MiB, pour latest.tar.bz2. La somme observée était d8c165e764a7a4de82eb3dec510d66e19f2d82218572604af9c15d99a98a29a0; sha256sum -c a répondu latest.tar.bz2: OK et la première entrée de l’archive était nextcloud/. La taille et la somme changeront avec une nouvelle version, donc récupérez les deux fichiers ensemble.

Si la commande répond FAILED, arrêtez-vous, supprimez l’archive et recommencez le téléchargement. N’extrayez pas un fichier dont la somme ne correspond pas.

Mettre le code et les données à des endroits distincts

Sur une installation neuve, vérifiez que le répertoire de code n’existe pas encore, extrayez l’archive et préparez le répertoire de données :

sudo test ! -e /var/www/nextcloud
sudo tar -xjf latest.tar.bz2 -C /var/www/
sudo chown -R www-data:www-data /var/www/nextcloud
sudo install -d -o www-data -g www-data -m 750 /srv/nextcloud-data

Le répertoire /srv/nextcloud-data doit être vide et appartenir à l’utilisateur du serveur web. L’assistant d’installation Nextcloud vous demandera ce chemin dans la zone Storage & database. Le définir pendant l’installation évite un déplacement délicat après le premier usage.

Ne mettez pas de copie de config.php dans config/ avec un nom qui se termine par .config.php. La documentation de config.php précise que Nextcloud peut charger ces fichiers comme des fragments de configuration; une sauvegarde mal nommée peut donc modifier la configuration active.

Déclarer le site Apache et passer en HTTPS

Activez les modules utilisés par la réécriture d’URL, les en-têtes et les types de contenu :

sudo a2enmod rewrite headers env dir mime
sudoedit /etc/apache2/sites-available/nextcloud.conf

Dans l’éditeur, placez une configuration qui correspond au nom DNS choisi :

<VirtualHost *:80>
    ServerName cloud.example.com
    DocumentRoot /var/www/nextcloud

    <Directory /var/www/nextcloud/>
        Require all granted
        AllowOverride All
        Options FollowSymLinks MultiViews
        <IfModule mod_dav.c>
            Dav off
        </IfModule>
    </Directory>
</VirtualHost>

Activez la configuration Apache, contrôlez la syntaxe et rechargez Apache :

sudo a2ensite nextcloud.conf
sudo apache2ctl configtest
sudo systemctl reload apache2

La réponse Syntax OK valide la syntaxe Apache, pas encore l’installation Nextcloud. Demandez ensuite un certificat TLS pour cloud.example.com auprès de votre hébergeur ou de l’outil de certificats déjà géré sur le serveur, puis redirigez le trafic HTTP vers HTTPS. Testez l’adresse finale dans un navigateur avant de continuer.

Terminer dans l’assistant Nextcloud

Ouvrez https://cloud.example.com. Créez le compte administrateur, puis renseignez les valeurs suivantes dans l’assistant :

Une fois connecté, vérifiez le nom d’accès principal dans les réglages d’administration. Tous les noms de domaine ou adresses utilisés pour ouvrir l’instance doivent apparaître dans trusted_domains. Ajoutez seulement les hôtes dont vous avez besoin, par exemple :

'trusted_domains' =>
  [
    0 => 'cloud.example.com',
  ],
'overwrite.cli.url' => 'https://cloud.example.com',

Ajoutez ces lignes à la structure existante de config/config.php si elles manquent; ne remplacez pas le fichier entier et ne publiez jamais ses identifiants de base. Un accès par une adresse non listée doit être refusé par Nextcloud, tandis que le domaine officiel doit ouvrir l’interface.

Faire tourner les tâches en arrière-plan

Les notifications, nettoyages et contrôles des fichiers ne doivent pas dépendre du passage d’un utilisateur dans l’interface. La documentation des tâches d’arrière-plan recommande le mode cron pour une instance administrée sur Unix.

Ouvrez la crontab de l’utilisateur Apache :

sudo crontab -u www-data -e

Ajoutez une ligne qui pointe vers votre installation :

*/5 * * * * php -f /var/www/nextcloud/cron.php

Relisez-la immédiatement :

sudo crontab -u www-data -l

Si la commande php n’est pas celle utilisée par Apache, remplacez-la par le chemin de php-cli correspondant. Si vous préférez un minuteur systemd, la page Services et journaux systemd aide à lire son état et ses journaux; ne programmez pas cron et un minuteur pour exécuter la même tâche.

Vérifier l’installation avec occ et WebDAV

Le premier contrôle se fait sur le serveur, avec la commande occ status exécutée par le même compte que le serveur web :

cd /var/www/nextcloud
sudo -E -u www-data php occ status --output=json

La sortie JSON doit contenir installed à true et une valeur de version. Une erreur sur le cache, les droits ou la base doit être corrigée avant la connexion d’un client. Le compte rendu de cette commande ne contient pas le mot de passe MariaDB, contrairement à une liste complète de configuration.

Pour vérifier l’accès fichiers sans installer de client, utilisez un mot de passe d’application créé dans votre profil Nextcloud :

curl --fail --user USERNAME \
  --request PROPFIND \
  --header 'Depth: 0' \
  https://cloud.example.com/remote.php/dav/files/USERNAME/

Saisissez le mot de passe d’application lorsque curl le demande. Une réponse 207 Multi-Status indique que l’endpoint WebDAV a répondu à la requête authentifiée. Un 401 signale généralement des identifiants invalides; un 404 invite à vérifier le domaine, le préfixe d’installation et le chemin de l’utilisateur.

Brancher les ordinateurs et téléphones

Pour le client officiel de bureau ou de mobile, saisissez l’URL de l’instance, https://cloud.example.com, et non l’URL WebDAV complète. Le client gère la synchronisation et permet de choisir les dossiers locaux. La documentation Nextcloud sur WebDAV donne l’URL longue destinée aux clients tiers :

https://cloud.example.com/remote.php/dav/files/USERNAME/

Pour un client tiers, utilisez le mot de passe d’application plutôt que le mot de passe principal. Commencez avec un petit dossier de contrôle, créez un fichier depuis le navigateur, puis vérifiez son arrivée sur l’ordinateur. Une synchronisation réussie ne prouve pas encore qu’une restauration de sauvegarde fonctionnera.

Le stockage n’est pas la sauvegarde

Nextcloud garde une copie de travail accessible et synchronisée; il ne crée pas automatiquement une copie indépendante de vos fichiers. La procédure officielle de sauvegarde demande de conserver la configuration, les applications personnalisées si vous en utilisez, les données, le thème et la base.

Avant une mise à jour, placez l’instance en maintenance, exportez MariaDB et copiez les répertoires vers une destination distincte :

sudo -E -u www-data php /var/www/nextcloud/occ maintenance:mode --on
sudo mariadb-dump --single-transaction -u nextcloud -p nextcloud \
  | sudo tee /backup/nextcloud.sql > /dev/null
sudo rsync -a /var/www/nextcloud/config/ /backup/nextcloud-config/
sudo rsync -a /srv/nextcloud-data/ /backup/nextcloud-data/
sudo -E -u www-data php /var/www/nextcloud/occ maintenance:mode --off

Ajoutez le répertoire du thème et les applications personnalisées si votre installation en contient. Vérifiez que le fichier SQL et les copies peuvent être lus depuis le support de sauvegarde, puis faites un essai de restauration sur une instance séparée avant de compter dessus.

Pour contrôler les propriétaires et les droits Unix d’un répertoire après une copie, utilisez les explications sur les permissions Linux. Une permission corrigée à l’aveugle peut empêcher Apache de lire le code ou Nextcloud d’écrire les données.

Les symptômes qui orientent le dépannage

Quand ces contrôles passent, vous avez un stockage personnel accessible par le web, les clients de synchronisation et WebDAV, avec un chemin de sauvegarde identifié. Gardez la sélection de logiciels utiles à portée de main lorsque vous comparerez ensuite un client, un outil de sauvegarde ou une extension: le serveur Nextcloud reste la pièce qui stocke vos données, pas une raison de déléguer chaque décision à l’éditeur d’un client.