Wiki - NextCloud

Article wiki - NextCloud

Table des Matières

Présentation générale

Logo NextCloud

Nextcloud est une suite logicielle open source et gratuite qui permet de créer et d'utiliser des services d'hébergement de fichiers et de collaboration. Elle offre une alternative puissante et décentralisée aux plateformes de stockage cloud commerciales, permettant aux utilisateurs de reprendre le contrôle total de leurs données. Accessible via un navigateur web ou des applications de synchronisation multiplateformes, elle facilite le partage de fichiers et la collaboration en temps réel au sein d'équipes ou pour un usage personnel.

Nextcloud va bien au-delà du simple stockage. C'est une plateforme modulaire extensible, proposant une suite bureautique en ligne, des outils de visioconférence, de la gestion de contacts et de calendriers, le tout avec un accent fort sur la sécurité et le respect de la vie privée. Conçu pour être auto-hébergé, il garantit que les données restent sur vos propres serveurs, assurant ainsi le respect des réglementations comme le RGPD.

Son architecture modulaire via des "Apps" permet d'ajouter des fonctionnalités comme le traitement de texte collaboratif, la gestion de projets (Kanban), la lecture multimédia, et bien plus, s'adaptant aussi bien aux besoins des particuliers qu'aux exigences des entreprises.

Historique et versions

Nextcloud est un fork du projet ownCloud, créé en juin 2016 par d'anciens développeurs principaux d'ownCloud, dont le co-fondateur Frank Karlitschek. Ce fork a été initié suite à des divergences stratégiques et une volonté de maintenir une gouvernance plus ouverte et communautaire.

Nextcloud a rapidement évolué d'une solution de stockage vers une plateforme de collaboration complète. Le projet suit un cycle de publication rapide, avec des versions majeures apportant régulièrement de nouvelles fonctionnalités majeures, des améliorations de performance et de sécurité.

Nextcloud adopte un modèle de support à long terme (LTS) pour certaines versions, offrant des mises à jour de sécurité et de maintenance sur une période étendue. La version LTS actuelle est la branche 27, qui bénéficiera de mises à jour de sécurité et de stabilité.

Caractéristiques principales

  • Stockage et Synchronisation : Synchronisation transparente des fichiers sur tous vos appareils (Windows, macOS, Linux, Android, iOS) avec historique des versions et corbeille.

  • Collaboration en temps réel : Nextcloud Hub inclut une suite bureautique (Nextcloud Office), le chat et la visioconférence (Talk), et la gestion de projets (Deck).

  • Collaboration : Édition collaborative de documents texte, feuilles de calcul et présentations avec Collabora Online ou OnlyOffice.

  • Communication unifiée : Messagerie instantanée, audio et visioconférence intégrée (Talk) avec chat, appels audio/vidéo et partage d'écran.

  • Productivité : Calendrier (CalDAV), contacts (CardDAV), flux RSS, gestion de mots de passe (Passman) et plus encore via des applications extensibles.

  • Sécurité renforcée : Authentification à deux facteurs (2FA), chiffrement de bout en bout (E2EE) pour les fichiers, conformité RGPD, et détection d'intrusion (Brute-force protection, logging).

Prérequis système

  • Système d'exploitation : Linux (Ubuntu, Debian, CentOS, RHEL, SUSE, etc.), BSD.

  • Serveur Web : Apache (mod_php) ou Nginx (avec PHP-FPM) avec les modules requis (mod_rewrite, mod_headers, etc.).

  • Base de données : MySQL 5.7+, MariaDB 10.2+, PostgreSQL 9.5+ ou SQLite (déconseillé en production).

  • PHP : Version 8.0, 8.1 ou 8.2 avec les extensions requises (ctype, curl, gd, intl, json, mbstring, openssl, xml, zip, etc.).

  • Mémoire vive (RAM) : Minimum 512 MB (recommandé 2 GB+ pour un usage actif).

  • Espace disque : Selon le volume de données utilisateur.

Installation détaillée

Méthode 1 : Installation via Snap (la plus simple)

Idéale pour une installation rapide sur Ubuntu et distributions compatibles.

sudo snap install nextcloud

Le snap inclut automatiquement toutes les dépendances (Apache, PHP, base de données interne).

Méthode 2 : Docker (Recommandé pour la scalabilité)

docker run -d \
  --name nextcloud-aio \
  --restart unless-stopped \
  -p 8080:8080 \
  -v nextcloud_aio_nextcloud:/var/www/html \
  nextcloud/all-in-one:latest

L'image "all-in-one" de Nextcloud inclut la base de données, le reverse proxy et le serveur web. Idéal pour un déploiement rapide.

Méthode 3 : Installation manuelle (Debian/Ubuntu)

Cette méthode offre le contrôle le plus fin, adaptée aux environnements de production.

  1. Installez les dépendances :

    sudo apt update
    sudo apt install -y apache2 mariadb-server libapache2-mod-php \
      php8.1 php8.1-{gd,curl,mbstring,xml,zip,intl,bcmath,imagick,gmp,bz2,ldap,zip} \
      php8.1-{mysql,redis,apcu,imagick} redis-server
  2. Créer une base de données :

    sudo mysql -u root -p
    CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
    GRANT ALL PRIVILEGES ON nextcloud.* TO 'nc_user'@'localhost' IDENTIFIED BY 'motdepasse_securise';
    FLUSH PRIVILEGES;
  3. Télécharger et déployer Nextcloud :

    wget https://download.nextcloud.com/server/releases/nextcloud-27.0.0.tar.bz2
    tar xjf nextcloud-27.0.0.tar.bz2
    sudo mv nextcloud /var/www/nextcloud
    sudo chown -R www-data:www-data /var/www/nextcloud
  4. Accédez à http://votre-serveur/nextcloud et suivez l'assistant d'installation web.

Configuration de base

Le fichier de configuration principal se trouve dans /var/www/nextcloud/config/config.php après l'installation.

<?php
$CONFIG = array (
  'trusted_domains' => array (
    0 => 'localhost',
    1 => 'votredomaine.com',
  ),
  'memcache.local' => 'OCMemcacheAPCu',
  'memcache.locking' => 'OCMemcacheRedis',
  'memcache.distributed' => 'OCMemcacheRedis',
  'redis' => [
    'host' => 'localhost',
    'port' => 6379,
  ],
  'datadirectory' => '/var/www/nextcloud/data',
  'logtimezone' => 'Europe/Paris',
);

Configuration recommandée pour les performances :

  • Activez opcache et APCu pour PHP.

  • Utilisez Redis pour le cache mémoire et verrouillage de fichiers (file locking).

  • Configurez un cron pour les tâches de fond (voir ci-dessous).

Utilisation et commandes principales

La console d'administration s'utilise avec occ (Nextcloud CLI). Exécutez toujours en tant qu'utilisateur du serveur web :

sudo -u www-data php occ

Commandes utiles :

# Statut système
export OC_PASS="motdepasse" && sudo -u www-data php occ user:add --display-name="Alice" alice
sudo -u www-data php occ maintenance:repair
sudo -u www-data php occ app:enable files_pdfviewer
sudo -u www-data php occ files:scan --all

Trucs et astuces

  • Optimisation Apache/Nginx : Activez la compression gzip et les en-têtes de cache statique.

  • Backup : Sauvegardez régulièrement le répertoire data/ et la base de données.

  • SSL/TLS : Utilisez Let's Encrypt (certbot) pour un certificat SSL gratuit et automatiquement renouvelé.

  • Surveillance : Activez les logs détaillés (config/config.sample.php).

FAQ

Q : Comment ajouter un stockage externe (S3, SFTP, etc.) ?
A : Dans l'interface d'administration, allez dans "Paramètres → Stockage externe". Vous pouvez connecter des services comme Amazon S3, Google Drive, ou un serveur FTP/WebDAV.

Q : Comment sécuriser davantage mon instance ?
A : Activez l'authentification à deux facteurs (2FA), définissez une politique de mots de passe, restreignez les adresses IP dans le fichier .htaccess et gardez Nextcloud à jour.

Q : Je rencontre l'erreur "Internal Server Error 500".
A : Activez le mode debug dans config/config.php ('debug' => true,) et consultez les logs d'erreur Apache/Nginx (/var/log/...).

Ressources et liens utiles

Documentation maintenue par la communauté. Dernière mise à jour :