Compléments Nextcloud

This commit is contained in:
Ludovic Poujol 2022-10-03 18:11:57 +02:00
parent 6860ac5e33
commit e063ec4c70

View file

@ -4,6 +4,7 @@ title: Howto Nextcloud
...
* Documentation : <https://docs.nextcloud.com/>
* Notes de publication de version : <https://nextcloud.com/changelog/>
[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 <https://download.nextcloud.com/server/releases/>.
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).
~~~
<VirtualHost *:80 *:443>
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.
<Directory /home/foo/nextcloud/>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
<IfModule mod_dav.c>
Dav off
</IfModule>
</Directory>
# 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"
</VirtualHost>
~~~
## 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`