3

Serveur Nextcloud

Nextcloud est une solution de cloud personnel open-source permettant de stocker, synchroniser et partager des fichiers, des calendriers, des contacts et bien plus. Il offre une interface web complète et des applications mobiles pour un accès facile à vos données. Nextcloud est idéal pour les utilisateurs souhaitant héberger leur propre cloud sécurisé et privé. Cette documentation vous guide pour l'installer sur un serveur Ubuntu 24.04 avec un nom de domaine (ici, stock.aleexp.fr), sécurisé avec HTTPS via Let's Encrypt.

1. Prérequis

Avant de commencer, assurez-vous d'avoir :

  • Un serveur avec Ubuntu 24.04 installé.
  • Un nom de domaine (ici stock.aleexp.fr).
  • Un accès root ou utilisateur avec des droits sudo.
  • Ports 80 (HTTP) et 443 (HTTPS) ouverts sur le pare-feu.

2. Étapes d'installation

2.1 Mise à jour du système

Tout d'abord, mettez à jour votre système pour vous assurer d'avoir les derniers paquets :

sudo apt update && sudo apt upgrade -y

2.2 Installation des dépendances

Nextcloud nécessite plusieurs packages comme Apache, PHP, et MariaDB. Installez-les avec la commande suivante :

sudo apt install apache2 mariadb-server libapache2-mod-php php php-mysql php-gd php-json php-curl php-mbstring php-intl php-imagick php-xml php-zip php-bcmath php-gmp php-cli unzip curl -y

Activez les modules nécessaires pour Apache :

sudo a2enmod rewrite headers env dir mime ssl

2.3 Configuration de la base de données MariaDB

Ensuite, sécurisez votre installation MariaDB et créez une base de données pour Nextcloud :

sudo mysql_secure_installation
sudo mysql -u root -p

Dans MariaDB, exécutez les commandes suivantes :

CREATE DATABASE nextcloud;
CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'motdepassefort';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextclouduser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

2.4 Téléchargement et installation de Nextcloud

Téléchargez la dernière version de Nextcloud depuis le site officiel :

cd /var/www/
sudo curl -LO https://download.nextcloud.com/server/releases/latest.zip
sudo unzip latest.zip
sudo chown -R www-data:www-data nextcloud
sudo chmod -R 755 nextcloud

2.5 Configuration d'Apache

Créez un fichier de configuration pour Apache :

sudo nano /etc/apache2/sites-available/nextcloud.conf

Ajoutez la configuration suivante (en remplaçant stock.aleexp.fr par votre domaine) :

<VirtualHost *:80>
    ServerName stock.aleexp.fr
 
    DocumentRoot /var/www/nextcloud/
 
    <Directory /var/www/nextcloud/>
        Require all granted
        AllowOverride All
        Options FollowSymLinks MultiViews
    </Directory>
 
    ErrorLog ${APACHE_LOG_DIR}/nextcloud_error.log
    CustomLog ${APACHE_LOG_DIR}/nextcloud_access.log combined
</VirtualHost>

Activez le site et redémarrez Apache pour appliquer les changements :

sudo a2ensite nextcloud.conf
sudo a2dissite 000-default.conf
sudo systemctl reload apache2

2.6 Configuration HTTPS avec Let's Encrypt

Installez Certbot pour sécuriser votre site avec HTTPS :

sudo apt install certbot python3-certbot-apache -y

Lancez la commande suivante pour obtenir un certificat SSL gratuit avec Let's Encrypt :

sudo certbot --apache -d stock.aleexp.fr

Renouvelez automatiquement les certificats SSL avec la commande suivante :

sudo systemctl enable certbot.timer

3. Finalisation de l'installation via l'interface web

  1. Ouvrez votre navigateur et accédez à : https://stock.aleexp.fr.

  2. Créez un compte administrateur avec un nom d'utilisateur et un mot de passe.

  3. Dans les paramètres de base de données, entrez les informations suivantes :

    3.1 Nom de la base de données : nextcloud
    3.2 Utilisateur : nextclouduser
    3.3 Mot de passe : motdepassefort

  4. Cliquez sur "Terminer l'installation".

Nextcloud est maintenant installé et accessible via votre domaine sécurisé https://stock.aleexp.fr.

4. Sécurisation et bonnes pratiques (facultative)

4.1 Activation des headers de sécurité

Ajoutez les headers de sécurité suivants pour renforcer la protection de votre site :

Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
Header always set X-Content-Type-Options "nosniff"
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-XSS-Protection "1; mode-block"

Redémarrez Apache :

sudo systemctl restart apache2

4.2 Mises à jour de Nextcloud

Pour maintenir Nextcloud à jour, vous pouvez utiliser la commande suivante :

sudo -u www-data php /var/www/nextcloud/updater/update.phar

Résultats

  • Accès sécurisé via stock.aleexp.fr, avec un certificat SSL valide.

  • Une interface web fonctionnelle de Nextcloud où vous pouvez gérer vos fichiers, calendriers, contacts et plus.

  • La base de données MariaDB est configurée et connectée à Nextcloud.

  • L'installation est prête pour être utilisée et configurée davantage, selon vos besoins (extensions, stockage externe, etc.).