Passer au contenu principal

VPS : Installation de Nextcloud

Ce guide a été créé avec les produits suivants :

(Les détails peuvent varier selon les produits de différents fournisseurs, mais les concepts principaux restent les mêmes)

Introduction

Nextcloud est une solution cloud open source et un fork d’Owncloud, fondée en 2016 par Frank Kalitschek, ancien fondateur d’Owncloud.

Pour garantir des performances, une stabilité et des fonctionnalités optimales, la configuration suivante est recommandée pour héberger un serveur Nextcloud. Le serveur Nextcloud n’est pas compatible avec Windows ni MacOS. Du moins pas sans virtualisation supplémentaire ou autres contournements similaires.

Préparation

Les exigences suivantes sont recommandées par les développeurs et basées sur notre propre expérience. Vous risquez de rencontrer des problèmes si vous ne respectez pas ces prérequis.

Matériel

ComposantsMinimumRecommandé
CPU2x 1 GHz4x 2+ GHz
RAM512 Mo4+ Go
Stockage10 Go50+ Go
Bande passante100 Mbit/s (upload & download)500 Mbit/s (upload & download) recommandé si plusieurs utilisateurs doivent utiliser le cloud

Logiciel

PlateformeOptions
Système d’exploitationUbuntu (14.04, 16.04, 18.04), Debian (8,9,10), CentOS 6.5/7
Base de donnéesMySQL ou MariaDB 5.5+ (recommandé), SQLite (uniquement pour tests et instances minimales)
Serveur webApache 2.4 avec mod_php ou php-fpm (recommandé)
PHP5.6, 7.0 (recommandé), 7.1 (recommandé), 7.2

Une connexion doit être établie via un client SSH pour installer le cloud sur un serveur Linux. Si vous ne savez pas comment utiliser SSH, voici un guide pour vous aider : Accès initial (SSH)

Une fois la connexion établie, vous pouvez commencer à installer les paquets nécessaires à l’installation de Nextcloud. Cela inclut l’installation d’un serveur web ainsi que PHP.


Apache (serveur web)

🗄️ Debian 8/9/10 :

sudo apt update && sudo apt -y upgrade
sudo apt -y install apache2

PHP (Hypertext Preprocessor)

🗄️ Debian 8 :

# Étape 1 : Ajout du dépôt PPA PHP 7.3
sudo apt -y install lsb-release apt-transport-https ca-certificates
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/php7.3.list

# Étape 2 : Installer PHP 7.3
sudo apt -y install php7.3

# Étape 3 : Installer les extensions PHP 7.3
sudo apt install php7.3-cli php7.3-fpm php7.3-json php7.3-pdo php7.3-mysql php7.3-zip php7.3-gd php7.3-mbstring php7.3-curl php7.3-xml php7.3-bcmath php7.3-json

🗄️ Debian 9 :

# Étape 1 : Ajout du dépôt PPA PHP 7.3
sudo apt -y install lsb-release apt-transport-https ca-certificates
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/php7.3.list

# Étape 2 : Installer PHP 7.3
sudo apt -y install php7.3

# Étape 3 : Installer les extensions PHP 7.3
sudo apt install php7.3-cli php7.3-fpm php7.3-json php7.3-pdo php7.3-mysql php7.3-zip php7.3-gd php7.3-mbstring php7.3-curl php7.3-xml php7.3-bcmath php7.3-json

🗄️ Debian 10 :

# Étape 1 : Installer PHP 7.3
sudo apt -y install php php-common

# Étape 2 : Installer les extensions PHP 7.3
sudo apt -y install php-cli php-fpm php-json php-pdo php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath

Vérifiez la version de PHP pour confirmer le bon fonctionnement

php -v

L’étape suivante consiste à définir un type de base de données pour stocker les informations pertinentes. Plusieurs options sont possibles :


Si vous avez choisi ce type de base de données, suivez ces étapes :

Installation des paquets :

sudo apt-get install mariadb-server php-mysql

Pendant l’installation, il vous sera demandé de définir un mot de passe root. S’il n’y a pas de demande de mot de passe, alors le mot de passe par défaut est vide. Ce n’est pas sécurisé et doit donc être changé immédiatement après !

L’étape suivante est de se connecter au serveur de base de données et de créer la base de données requise :

mysql -u root -p
CREATE DATABASE nextcloud;

Ensuite, un utilisateur doit être créé, qui aura accès à la base Nextcloud.

CREATE USER 'nc_user'@'localhost' IDENTIFIED BY 'VOTRE_MOT_DE_PASSE_ICI';
info

Ne sautez pas cette étape en utilisant l’utilisateur root. Ce n’est pas sécurisé et peut mettre vos données en danger !

La dernière étape est d’attribuer les permissions à ce nouvel utilisateur :

GRANT ALL PRIVILEGES ON nextcloud.* TO 'nc_user'@'localhost';
FLUSH PRIVILEGES;

Une fois terminé, vous pouvez appuyer sur Ctrl-D pour quitter la base de données et continuer avec les étapes suivantes.

Installation

Maintenant, l’installation proprement dite de Nextcloud peut commencer. Le logiciel doit être téléchargé et décompressé :

cd /var/www/
wget https://download.nextcloud.com/server/releases/latest.zip
apt-get install unzip
unzip latest.zip
chown -R www-data:www-data nextcloud
rm latest.zip

Une fois cette étape terminée, il est temps de lancer le script d’installation. L’accès se fait via le navigateur à l’URL suivante :

La configuration du script d’installation apparaît, où un utilisateur root est créé et les informations de la base de données définies :

Sécurité et protection

Avertissements de configuration

Répertoire des données

Il est fortement recommandé de placer le répertoire des données en dehors du répertoire racine web (c’est-à-dire en dehors de /var/www). La manière la plus simple de faire cela est lors d’une nouvelle installation. Le répertoire peut être défini pendant la configuration. Cependant, le répertoire doit d’abord être créé et les permissions correspondantes définies. Les données pourraient par exemple être stockées dans un répertoire appelé Cloud dans le répertoire personnel.

mkdir /home/cloud/
chown -R www-data:www-data /home/cloud/

HTTPS via certificat SSL (Let's Encrypt)

Une bonne solution cloud doit être accessible uniquement via une connexion SSL. Sans chiffrement SSL, les données et informations sont transférées en clair. Ces informations peuvent être interceptées et lues facilement et rapidement sans chiffrement.

<IfModule mod_ssl.c>
<VirtualHost *:443>
DocumentRoot "/var/www/nextcloud"
ServerName domaine.tld

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

<Directory /var/www/nextcloud/>
Options +FollowSymlinks
AllowOverride All

<IfModule mod_dav.c>
Dav off
</IfModule>

SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud
Satisfy Any

</Directory>

SSLCertificateFile /etc/letsencrypt/live/domaine.tld/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/domaine.tld/privkey.pem
</VirtualHost>
</IfModule>

<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15768000; preload"
</IfModule>

De plus, tout le trafic HTTP doit être redirigé vers HTTPS en utilisant une redirection permanente avec le code d’état 301. Cela peut être réalisé avec Apache via une configuration comme celle-ci dans les VirtualHosts Apache :

<VirtualHost *:80>
ServerName domaine.tld
Redirect permanent / https://domaine.tld/
</VirtualHost>

Gérer Nextcloud

L’accès à Nextcloud est possible via le navigateur, ainsi que via smartphone et ordinateur grâce à l’application. Les sources de téléchargement sont ici : https://nextcloud.com/install/#install-clients

Dans les paramètres, vous pouvez ajuster encore quelques options après la configuration et consulter des informations importantes comme les logs, activités. Cela inclut des réglages de sécurité supplémentaires (authentification à deux facteurs, chiffrement, ...), des réglages de design (logo, couleur, slogan, en-tête), des réglages d’accès et bien plus.

Apps

De plus, il est possible d’installer des apps supplémentaires en plus des apps par défaut. Vous pouvez y accéder via le menu Apps.

Avec ces Apps, vous pouvez personnaliser encore plus Nextcloud selon vos envies.

Conclusion

Félicitations, vous avez installé Nextcloud avec succès ! Si vous avez d’autres questions ou problèmes, n’hésitez pas à contacter notre équipe support, disponible tous les jours pour vous aider !