NextCloud est un serveur d’hébergement et de partage de fichiers gratuit et open-source issu du projet ownCloud. Il est très similaire à d’autres services de partage de fichiers tels que Google Drive, Dropbox et iCloud. NextCloud vous permet de stocker des fichiers, des documents, des images, des films et des vidéos à partir de l’emplacement central.
Avec NextCloud, vous pouvez partager des fichiers, des contacts et tout autre média avec vos amis et clients. NextCloud s’intègre au mail, au calendrier, aux contacts et à d’autres fonctionnalités qui aideront vos équipes à faire leur travail plus rapidement et plus facilement. Vous pouvez installer le client NextCloud sur un ordinateur de bureau pour synchroniser les fichiers avec votre serveur Nextcloud. Les clients de bureau sont disponibles pour la plupart des systèmes d’exploitation, notamment Windows, macOS, FreeBSD et Linux.
Dans ce tutoriel, nous allons expliquer comment installer NextCloud et le sécuriser avec Let’s Encrypt SSL sur Debian 11.
À lire aussi
Infomaniak offre tous les types de serveur Synology en location pour stocker toutes vos données
Installez les applications de votre choix, gérez vos utilisateurs et fixez vos propres règles de sécurité. Infomaniak s’occupe uniquement de la mise en place et de l’infrastructure de votre NAS.
Quelles sont les conditions préalables pour installer NextCloud sur Debian ?
- Un serveur exécutant Debian 11 ou supérieur.
- Un nom de domaine valide pointé avec l’adresse IP de votre serveur. Dans ce tutoriel, nous allons utiliser le domaine nextcloud.example.com.
- Un mot de passe root est configuré sur votre serveur.
Installez Apache, MariaDB et PHP
NextCloud fonctionne sur le serveur Web, écrit en PHP et utilise MariaDB pour stocker leurs données. Vous devrez donc installer Apache, MariaDB, PHP et d’autres packages requis sur votre système. Vous pouvez tous les installer en exécutant la commande suivante :
apt-get install apache2 libapache2-mod-php mariadb-server php-xml php-cli php-cgi php-mysql php-mbstring php-gd php-curl php-zip wget unzip -y
Une fois que tous les packages soient installés, ouvrez le fichier php.ini et modifiez certains paramètres recommandés :
nano /etc/php/7.3/apache2/php.ini
Modifiez les paramètres suivants :
memory_limit = 512M
upload_max_filesize = 500M
post_max_size = 500M
max_execution_time = 300
date.timezone = Europe/Paris
Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, démarrez le service Apache et MariaDB, et permettez-leur de démarrer après le redémarrage du système avec la commande suivante :
systemctl start apache2
systemctl start mariadb
systemctl enable apache2
systemctl enable mariadb
Une fois que vous avez terminé, vous pouvez passer à l’étape suivante.
Configurez la base de données pour NextCloud
Ensuite, vous devrez créer une base de données et un utilisateur de base de données pour NextCloud. Pour ce faire, connectez-vous au shell MariaDB avec la commande suivante :
mysql -u root -p
Fournissez votre mot de passe root lorsque vous y êtes invité, puis créez une base de données et un utilisateur avec la commande suivante :
MariaDB [(none)]> CREATE DATABASE nextclouddb;
MariaDB [(none)]> CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'password';
Ensuite, accordez tous les privilèges à nextclouddb avec la commande suivante :
MariaDB [(none)]> GRANT ALL ON nextclouddb.* TO 'nextclouduser'@'localhost';
Puis, videz les privilèges et quittez le shell MariaDB avec la commande suivante :
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;
Une fois que vous avez terminé, vous pouvez passer à l’étape suivante.
Téléchargez NextCloud
Tout d’abord, visitez la page de téléchargement NextCloud et téléchargez la dernière version de NextCloud sur votre système. Au moment de la rédaction de cet article, la dernière version de NextCloud est 24.0.1 (3 mai 2022). Vous pouvez la télécharger avec la commande suivante:
wget https://download.nextcloud.com/server/releases/nextcloud-24.0.1.zip
Une fois le téléchargement terminé, décompressez le fichier téléchargé avec la commande suivante :
unzip nextcloud-24.0.1.zip
Puis, déplacez le répertoire extrait vers le répertoire racine Web Apache :
mv nextcloud /var/www/html/
Ensuite, donnez les autorisations appropriées au répertoire nextcloud avec la commande suivante :
chown -R www-data:www-data /var/www/html/nextcloud/
chmod -R 755 /var/www/html/nextcloud/
Une fois que vous avez terminé, vous pouvez passer à l’étape suivante.
Configurez Apache pour NextCloud
Vous devrez créer un fichier de configuration d’hôte virtuel Apache pour servir NextCloud. Vous pouvez le créer avec la commande suivante :
nano /etc/apache2/sites-available/nextcloud.conf
Ajoutez les lignes suivantes :
<VirtualHost *:80>
ServerAdmin admin@example.com
DocumentRoot /var/www/html/nextcloud/
ServerName nextcloud.example.com
Alias /nextcloud "/var/www/html/nextcloud/"
<Directory /var/www/html/nextcloud/>
Options +FollowSymlinks
AllowOverride All
Require all granted
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/html/nextcloud
SetEnv HTTP_HOME /var/www/html/nextcloud
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, activez le fichier d’hôte virtuel Apache et les autres modules requis avec les commandes suivantes :
a2ensite nextcloud.conf
a2enmod rewrite
a2enmod headers
a2enmod env
a2enmod dir
a2enmod mime
Enfin, redémarrez le service Apache pour appliquer la nouvelle configuration :
systemctl restart apache2
Sécurisez NextCloud avec Let’s Encrypt Free SSL
NextCloud est désormais installé et configuré. Dans ce cas, il est recommandé de le sécuriser avec Let’s Encrypt SSL gratuit. Pour ce faire, installez d’abord le client Certbot avec la commande suivante :
apt-get install python-certbot-apache -y
Une fois installé, vous pouvez exécuter la commande suivante pour installer le certificat Let’s Encrypt pour votre domaine nextcloud.example.com.
certbot --apache -d nextcloud.example.com
Durant l’installation, il vous sera demandé de fournir votre adresse e-mail et d’accepter les conditions d’utilisation comme indiqué ci-dessous :
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): admin@example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for nextcloud.example.com
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/nextcloud-le-ssl.conf
Deploying Certificate to VirtualHost /etc/apache2/sites-available/nextcloud-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/nextcloud-le-ssl.conf
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Ensuite, tapez 2 et appuyez sur Entrée pour télécharger et installer un certificat SSL gratuit pour votre domaine. Une fois l’installation terminée avec succès, vous devriez obtenir l’affichage suivant :
Enabled Apache rewrite module
Redirecting vhost in /etc/apache2/sites-enabled/nextcloud.conf to ssl vhost in /etc/apache2/sites-available/
nextcloud-le-ssl.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://nextcloud.example.com
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=nextcloud.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/example.com/privkey.pem
Your cert will expire on 2019-10-22. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "certbot renew"
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
Une fois que vous avez terminé, vous pouvez passer à l’étape suivante.
Accédez à l’interface Web NextCloud
Votre NextCloud est maintenant configuré et sécurisé avec Let’s Encrypt SSL. Ensuite, ouvrez votre navigateur Web et saisissez l’URL https://nextcloud.votresite.com. Vous serez redirigé vers la page suivante :
Maintenant, fournissez votre nom d’utilisateur et votre mot de passe d’administrateur, le dossier de données, les informations d’identification de base de données correctes et cliquez sur le bouton Terminer la configuration. Vous serez redirigé vers le tableau de bord NextCloud dans la page suivante :
C’est tout pour le moment.
Conclusion
Toutes nos félicitations ! Vous avez correctement installé et sécurisé NextCloud avec Let’s Encrypt Free SSL sur Debian 10. Vous pouvez désormais partager facilement des fichiers, des documents et des médias avec d’autres utilisateurs à partir de l’interface Web NextCloud.