From e063ec4c709cff2fd27cb78043dda3239a06d4d7 Mon Sep 17 00:00:00 2001 From: Ludovic Poujol Date: Mon, 3 Oct 2022 18:11:57 +0200 Subject: [PATCH] =?UTF-8?q?Compl=C3=A9ments=20Nextcloud?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HowtoNextCloud.md | 131 +++++++++++++++++++++++++++++++++++++++------- 1 file changed, 112 insertions(+), 19 deletions(-) diff --git a/HowtoNextCloud.md b/HowtoNextCloud.md index fc644f36..7686b637 100644 --- a/HowtoNextCloud.md +++ b/HowtoNextCloud.md @@ -4,6 +4,7 @@ title: Howto Nextcloud ... * Documentation : +* Notes de publication de version : [Nextcloud](https://docs.nextcloud.com/) est un logiciel libre qui permet de stocker des fichiers sur un serveur distant, communément appelé un « cloud ». Ses fonctionnalités étendues et les nombreux plugins (nommés « Apps ») disponibles font de Nextcloud une plateforme collaborative modulaire et une alternative libre face aux logiciels privateurs comme ~~Google Docs~~, ~~Google Drive~~ ou ~~Dropbox~~. @@ -11,29 +12,36 @@ On y trouve, entre autres, des fonctionnalités comme le partage de fichiers, l' ## Installation -Nous préconisons d'utiliser Nextcloud avec [Nginx](HowtoNginx), [MariaDB](HowtoMySQL) et [Redis](HowtoRedis). +Nous préconisons d'utiliser Nextcloud sur une machine en GNU/Linux Debian 11 (bullseye) avec [Apache](HowtoApache) + PHP, [MariaDB](HowtoMySQL) et [Redis](HowtoRedis). +Note : Certaines extensions PHP sont nécessaires pour le bon fonctionnement de Nextcloud. On peut les installer avec la commande suivante : ~~~ -# apt install bzip2 php-gd php-json php-xml php-mbstring php-zip php-curl php-bz2 php-intl php-gmp php-apcu php-redis php-bcmath +# apt install bzip2 php-gd php-json php-xml php-mbstring php-zip php-curl php-bz2 php-intl php-gmp php-apcu php-redis php-bcmath php-imagick ~~~ On peut ensuite télécharger une archive sur . -Nous utilisons l'utilitaire en ligne de commande `occ` proposé par Nextcloud. +Nous utilisons l'utilitaire en ligne de commande `occ` fourni par Nextcloud. Mais il est aussi possible de passer par l'interface web pour procéder à l'installation + Pour l'utiliser il faut se déplacer dans le bon répertoire puis : ~~~ -$ php ./occ -V -Cloud Foo 22.2.3 + +$ php occ -V +Nextcloud 24.0.3 $ php ./occ status --output json | grep -v 'Nextcloud is not installed'" -$ php ./occ maintenance:install --database mysql ... +$ php ./occ maintenance:install --database mysql --database-name db_foo --database-user foo --database-pass PASSWORD --admin-user admin --admin-pass PASSWORD --data-dir /home/foo/data" -$ php ./occ config:system:set trusted_domains ... +$ php ./occ config:system:set trusted_domains nextcloud.example.com ~~~ -On configure ensuite Nginx, PHP-FPM, MariaDB et Redis. +On configure ensuite Apache, PHP-FPM, MariaDB et Redis. + + + +### Apache Pour [Apache-ITK](HowtoApache) on désactive la gestion des droits désactivés pour faciliter les mises à jour : @@ -41,21 +49,55 @@ Pour [Apache-ITK](HowtoApache) on désactive la gestion des droits désactivés AssignUserID example example ~~~ -### Gestion des partages avec "Group folders" +On peut utiliser le vhost suivant : -Pour gérer les partages, nous préconisons l'utilisation du plugin [Group folders](https://apps.nextcloud.com/apps/groupfolders). +~~~ + + ServerName nextcloud.example.org + + SSLEngine on + SSLCertificateFile /etc/letsencrypt/live/foo/fullchain.pem + SSLCertificateKeyFile /etc/letsencrypt/live/foo/privkey.pem -Le plugin « Group folders » permet de créer des groupes de partage et de configurer les droits d'accès par groupe dans l'interface (bouton « Dossiers du groupe » dans l'Administration de l'interface web). + DocumentRoot /home/foo/nextcloud/ -Sans ce plugin, on peut créer un répertoire et le partager avec certains droits. Cependant, ce n'est pas pratique : les droits sont gérés par une seule personne qui pourrait les retirer par erreur, et l'on sera embêté si l'on doit supprimer cet utilisateur dans le futur. + + Require all granted + AllowOverride All + Options FollowSymLinks MultiViews + + Dav off + + + # SSL Redirect + RewriteEngine On + RewriteCond %{HTTPS} !=on + RewriteCond %{HTTP:X-Forwarded-Proto} !=https + RewriteRule ^ https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent] + + # ITK + AssignUserID foo foo + + # LOG + CustomLog /var/log/apache2/access.log vhost_combined + ErrorLog /var/log/apache2/error.log + + # PHP + php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f foo" + php_admin_value open_basedir "/usr/share/php:/home/foo:/tmp" + + +~~~ ## Mise-à-jour Dans Nextcloud, les mises-à-jour se font de version en version. S'il y a plusieurs versions de retard, il faut le mettre à jour autant de fois qu'il y a de versions de retard. -Les mises-à-jour peuvent être faites via l'interface web. +Les mises-à-jour peuvent être faites via l'interface web, ou en ligne de commande. + +### Via l'interface web Pour cela : cliquez sur le bouton rond en haut à droite > Paramètres > Vue d'ensemble > Ouvrir le système de mise-à-jour. Puis suivez les instructions. @@ -66,6 +108,38 @@ A la fin des opérations de mise-à-jour, l'interface propose de quitter le mode En cas d'oubli, votre interface web sera [bloquée en mode maintenance](HowtoNextcloud#interface-web-bloquee-en-mode-maintenance). +### Via la ligne de commande + +L'opération de mise à jour est réalisable en CLI via un outil dédié. Il va procéder aux mêmes opérations que via l'interface web. +Il faut appeller avec php, le script `updater/updater.phar` à la racine de l'install et se laisser guider par l'opération. + +~~~ +$ php updater/updater.phar +Nextcloud Updater - version: v24.0.0beta3-1-g67bf13b dirty + +Current version is 24.0.3. + +Update to Nextcloud 24.0.5 available. (channel: "stable") +Following file will be downloaded automatically: https://download.nextcloud.com/server/releases/nextcloud-24.0.5.zip +Open changelog ↗ + +Steps that will be executed: +[ ] Check for expected files +[ ] Check for write permissions +[ ] Create backup +[ ] Downloading +[ ] Verify integrity +[ ] Extracting +[ ] Enable maintenance mode +[ ] Replace entry points +[ ] Delete old files +[ ] Move new files in place +[ ] Done + +Start update? [y/N] +~~~ + + ## Utilisation @@ -85,6 +159,15 @@ Le choix des modes d'accès dépend de vos cas d'usage : Dans la plupart les cas d'usage, sauf stockage volumineux, nous conseillons d'installer l'application de synchronisation et d'utiliser l'interface web pour tout usage autre que du stockage ou du partage (collaboration, calendrier...). +### Gestion des partages avec "Group folders" + +Pour gérer les partages, nous préconisons l'utilisation du plugin [Group folders](https://apps.nextcloud.com/apps/groupfolders). + +Le plugin « Group folders » permet de créer des groupes de partage et de configurer les droits d'accès par groupe dans l'interface (bouton « Dossiers du groupe » dans l'Administration de l'interface web). + +Sans ce plugin, on peut créer un répertoire et le partager avec certains droits. Cependant, ce n'est pas pratique : les droits sont gérés par une seule personne qui pourrait les retirer par erreur, et l'on sera embêté si l'on doit supprimer cet utilisateur dans le futur. + + ### Synchronisation automatique L'application de synchronisation copie et maintient à jour vos fichiers Nextcloud sur votre ordinateur dans un dossier local de votre choix, accessible comme d'habitude avec votre gestionnaire de fichiers. @@ -174,7 +257,7 @@ Dans `Dossier`, indiquez `A COMPLETER`. Ce qui rend attractif Nextcloud est son côté modulaire à pouvoir intégrer des fonctionnalitées supplémentaires au stockage de fichiers grâce aux applications. C'est à dire qu'il est possible d'activer les commentaires, journal des modifications, liens de partages, etc. -Avec le compte d'administrateur de l'instance, la liste est présente à l'adresse `https://nextcloud-demo.evolix.org/settings/apps` +Avec un compte d'administrateur de l'instance, la liste est présente à l'adresse `https://nextcloud-demo.evolix.org/settings/apps` Il est également possible de les manipuler via des commandes en CLI grâce à `php occ [options] [arguments]` @@ -182,7 +265,7 @@ Par exemple : - Voir les applications installées : `php occ app:list` - Désactiver une application : `php occ app:disable monitoring` -- Supprimer une applicatino : `php occ app:remove serverinfo` +- Supprimer une application : `php occ app:remove serverinfo` ### Agenda @@ -223,7 +306,6 @@ php occ app:enable contacts - ## FAQ ### Interface web bloquée en mode maintenance @@ -253,12 +335,23 @@ C'est possible de le faire pour les applications calendar et contacts dont l'app Plusieurs choix sont possibles où seulement le 2ème point "Connexion avec une URL et un nom d'utilisateur" est intéressante Il y aura besoin de renseigner ces informations dans les champs respectifs : -- URL de base : https://nextcloud-demo.evolix.org/remote.php/dav/ -- Nom d'utilisateur : $EVOLIX -- Mot de passe : $MDP +- URL de base : https://nextcloud.example.org/remote.php/dav/ +- Nom d'utilisateur : BAR +- Mot de passe : PASSWORD Enfin, acceptez les propositions des pages suivantes. Par défaut, rien n'est sélectionné alors choisissez ce que vous souhaitez autoriser. Pensez aussi à sélectionner les agendas ou calendriers à synchroniser. Si la synchronisation n'est pas immédiate, soit il y a besoin d'attendre la prochaine heure de synchronisation, soit que des autorisations sont manquantes. + +### Donner des droits administrateur à un compte depuis occ + +Pour donner les droits d'administrateur à un compte *foo*, il suffit de l'ajouter dans le groupe admin via la commande suivante + +~~~ +$ php occ group:adduser admin foo +~~~ + +**Note** : Pour retirer les droits, il suffit de faire l'opération inverse en retirant la personne du groupe admin : `php occ group:removeuser admin foo` +