Nextcloud est une solution cloud open source et un fork d’ownCloud, fondé en 2016 par l’ancien fondateur d’ownCloud, Frank Karlitschek. Avec Nextcloud, tu héberges ton propre cloud privé pour tes fichiers, calendriers, contacts, discussions et appels vidéo : tu gardes ainsi le contrôle total, au lieu de confier tes données à un fournisseur tiers.
Pour garantir des performances, une stabilité et des fonctionnalités optimales, nous recommandons la configuration suivante pour héberger un serveur Nextcloud. Le serveur Nextcloud n’est pas compatible avec Windows ou macOS, du moins pas sans virtualisation supplémentaire ni solution de contournement similaire.
Les exigences suivantes sont basées sur la configuration système officielle de Nextcloud et sur notre propre expérience. Si ton système ne répond pas à ces exigences, tu risques de rencontrer des problèmes.
| Composants | Minimum | Recommandé |
|---|---|---|
| CPU | 1x 2 GHz | 4x 2+ GHz |
| RAM | 1 GB | 4+ GB |
| Stockage | 10 GB | 50+ GB (selon la quantité de données stockées) |
| Bande passante | 100 Mbit/s (Up & Down) | 500 Mbit/s (Up & Down), recommandé si plusieurs personnes utilisent le cloud |
| Plateforme | Options |
|---|---|
| Système d’exploitation | Ubuntu (22.04, 24.04), Debian (12, 13) |
| Base de données | MariaDB 10.11+ (recommandé), PostgreSQL 14+, MySQL 8.0+, SQLite (uniquement pour les tests et les instances minimales) |
| Serveur Web | Apache 2.4 avec mod_php ou php-fpm (recommandé), ou Nginx avec php-fpm |
| PHP | 8.3, 8.4, 8.5 (recommandé) |
Pour connaître les exigences les plus récentes, consulte la documentation officielle de Nextcloud : Nextcloud met régulièrement à jour ses exigences en matière de PHP et de bases de données lors des nouvelles versions majeures.
Pour installer le cloud sur un serveur Linux, tu dois te connecter à l’aide d’un client SSH. Si tu ne sais pas comment fonctionne SSH, consulte ce guide : Premier accès (SSH)
Une fois connecté, tu peux installer les paquets nécessaires à l’installation de Nextcloud. Il s’agit notamment d’un serveur Web ainsi que de PHP et des extensions requises par Nextcloud (notamment gd, curl, mbstring, xml, zip, intl, bcmath, gmp, apcu).
Apache (serveur Web) et PHP
🗄️ Ubuntu 24.04 (fournit PHP 8.3 directement) :
sudo apt update && sudo apt -y upgrade
sudo apt -y install apache2 php php-cli php-fpm php-common php-mysql php-pgsql php-sqlite3 php-zip php-gd php-mbstring php-curl php-xml php-bcmath php-intl php-gmp php-imagick php-apcu
🗄️ Ubuntu 22.04 (la version PHP par défaut est 8.1, trop ancienne pour les versions actuelles de Nextcloud : un PPA est donc nécessaire) :
sudo apt update && sudo apt -y upgrade
sudo apt -y install apache2 software-properties-common
sudo add-apt-repository -y ppa:ondrej/php
sudo apt update
sudo apt -y install php8.3 php8.3-cli php8.3-fpm php8.3-common php8.3-mysql php8.3-pgsql php8.3-sqlite3 php8.3-zip php8.3-gd php8.3-mbstring php8.3-curl php8.3-xml php8.3-bcmath php8.3-intl php8.3-gmp php8.3-imagick php8.3-apcu
🗄️ Debian 13 « trixie » (fournit PHP 8.3 directement) :
sudo apt update && sudo apt -y upgrade
sudo apt -y install apache2 php php-cli php-fpm php-common php-mysql php-pgsql php-sqlite3 php-zip php-gd php-mbstring php-curl php-xml php-bcmath php-intl php-gmp php-imagick php-apcu
🗄️ Debian 12 « bookworm » (la version PHP par défaut est 8.2, trop ancienne pour les versions actuelles de Nextcloud : un dépôt tiers est donc nécessaire) :
sudo apt update && sudo apt -y upgrade
sudo apt -y install apache2 lsb-release apt-transport-https ca-certificates wget
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
sudo apt update
sudo apt -y install php8.3 php8.3-cli php8.3-fpm php8.3-common php8.3-mysql php8.3-pgsql php8.3-sqlite3 php8.3-zip php8.3-gd php8.3-mbstring php8.3-curl php8.3-xml php8.3-bcmath php8.3-intl php8.3-gmp php8.3-imagick php8.3-apcu
Vérifie la version de PHP :
php -v
Nextcloud exige memory_limit = 512M ou une valeur supérieure. Indique cette valeur dans le fichier php.ini correspondant (par exemple /etc/php/8.3/apache2/php.ini ou /etc/php/8.3/fpm/php.ini), puis redémarre Apache ou PHP-FPM.
L’étape suivante consiste à choisir un type de base de données pour stocker les données de Nextcloud. Choisis l’une des options suivantes et suis uniquement les étapes qui s’y rapportent.
Installation du paquet :
sudo apt-get install mariadb-server
Pendant l’installation, tu seras invité à définir un mot de passe root. Si aucune demande de mot de passe ne s’affiche, le mot de passe par défaut est vide. C’est dangereux : modifie-le immédiatement !
Connecte-toi ensuite au serveur de base de données et crée la base de données nécessaire :
mysql -u root -p
CREATE DATABASE nextcloud;
Crée ensuite un utilisateur qui pourra accéder à la base de données Nextcloud :
CREATE USER 'nc_user'@'localhost' IDENTIFIED BY 'DEIN_PASSWORT_HIER';
Ne saute pas cette étape en utilisant l’utilisateur root. C’est dangereux et cela met tes données en péril !
Pour finir, attribue les autorisations au nouvel utilisateur :
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nc_user'@'localhost';
FLUSH PRIVILEGES;
Une fois terminé, quitte la base de données avec exit et passe aux étapes suivantes.
Installation du paquet :
sudo apt-get install mysql-server
Pendant l’installation, tu seras invité à définir un mot de passe root. Si aucune demande de mot de passe ne s’affiche, le mot de passe par défaut est vide. C’est dangereux : modifie-le immédiatement !
Connecte-toi ensuite au serveur de base de données et crée la base de données nécessaire :
mysql -u root -p
CREATE DATABASE nextcloud;
Crée ensuite un utilisateur qui pourra accéder à la base de données Nextcloud :
CREATE USER 'nc_user'@'localhost' IDENTIFIED BY 'DEIN_PASSWORT_HIER';
Ne saute pas cette étape en utilisant l’utilisateur root. C’est dangereux et cela met tes données en péril !
Pour finir, attribue les autorisations au nouvel utilisateur :
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nc_user'@'localhost';
FLUSH PRIVILEGES;
Une fois terminé, quitte la base de données avec exit et passe aux étapes suivantes.
Installation des paquets :
sudo apt-get update
sudo apt-get install postgresql postgresql-contrib
Connecte-toi ensuite au serveur de base de données et crée la base de données ainsi que l’utilisateur :
sudo -u postgres psql
CREATE USER nc_user WITH ENCRYPTED PASSWORD 'DEIN_PASSWORT_HIER';
CREATE DATABASE nextcloud OWNER nc_user;
Ne saute pas cette étape en utilisant le superutilisateur postgres pour Nextcloud. C’est dangereux et cela met tes données en péril !
Une fois terminé, quitte la base de données avec \q. Tu peux saisir les informations de connexion PostgreSQL dans l’installateur Web ou directement dans config.php :
<?php
$CONFIG = array(
'dbtype' => 'pgsql',
'dbname' => 'nextcloud',
'dbuser' => 'nc_user',
'dbpassword' => 'DEIN_PASSWORT_HIER',
'dbhost' => 'localhost',
'dbtableprefix' => '',
);
SQLite convient uniquement aux tests ou aux très petites instances à utilisateur unique. Les développeurs de Nextcloud le déconseillent expressément pour les environnements de production multi-utilisateurs, notamment en raison de l’absence de prise en charge des accès simultanés.
Installation des paquets :
sudo apt-get install sqlite3 php8.3-sqlite3
Nextcloud crée automatiquement le fichier de base de données SQLite pendant l’installation : aucune création manuelle n’est nécessaire. La configuration dans config.php ressemble à ceci :
<?php
$CONFIG = array(
'dbtype' => 'sqlite3',
'dbname' => 'nextcloud',
'dbtableprefix' => '',
);
