Nextcloud/fr

From SME Server
Revision as of 17:03, 13 August 2024 by Gieres (talk | contribs)
Jump to navigation Jump to search




Nextcloud Logo.svg
nextcloud logo
MaintainerUnnilennium
Urlhttps://nextcloud.com
LicenceAGPLv3
Category

Cloud

Tags cloudfilesdropboxseafilepydioajaxplorerowncloud


Mainteneur

Jean-Philippe Pialasse

Version

Contrib 10:
Contrib 9:
smeserver-nextcloud
The latest version of smeserver-nextcloud is available in the SME repository, click on the version number(s) for more information.


Contrib 10:
nextcloud-src
The latest version of nextcloud-src is available in the SME repository, click on the version number(s) for more information.


Description

Nextcloud est un ensemble de logiciels client-serveur permettant de créer et d'utiliser des services d'hébergement de fichiers. Il est fonctionnellement similaire à Dropbox, bien que Nextcloud soit gratuit et « open-source », permettant à quiconque de l'installer et de l'utiliser sur un serveur privé.

Selon l'adage de SME Server « Keep It Simple » (Rester simple), toutes vos baies d'information et dossiers personnels seront accessibles via l'interface « nextcloud » à l'aide de l'application « fichiers externes ». Vous aurez également votre dossier Nextcloud d'utilisateur principal enregistré sous /home/e-smith/files/owncloud/data qui se trouve dans la zone sauvegardée par défaut. Ainsi, vous pouvez désormais profiter à la fois de votre propre référentiel cloud et de l'accès aux mêmes fichiers sur votre partage Samba !

Comment ajouter mes utilisateurs SME ? Ils sont déjà là ! Dites leur simplement de se connecter à https://mon-domaine/nextcloud. Vous pouvez également ajouter des utilisateurs externes ou leur permettre de s'inscrire auprès d'une application Nextcloud.

Quels sont les administrateurs ? Par défaut, vous avez un utilisateur nextcloudadmin et l'utilisateur administrateur habituel de SME. Le premier utilise le mot de passe que vous pouvez voir avec la commande « config getprop nextcloud AdminPassword », et le second, eh bien, utilisez simplement votre mot de passe administrateur habituel. Ensuite, vous pouvez gérer les applications, les référentiels de fichiers externes et l'appartenance au groupe d'administrateurs.

Installation

  Attention : vous avez besoin de mettre à jour le paquet du noyau e-smith-mysql pour installer MariadB105 dont l'installation est nécessaire à l'utilisation de cette contribution. e-smith-mysql est remplacé par smeserver-mysql dont il faut une version >= 2.7.0-5, actuellement disponible dans le dépôt smeupdates-testing. A ce jour (19 juillet 2022), les versions disponibles sont 2.7.0-13, -14 et -15.



yum install smeserver-nextcloud --enablerepo=smecontribs

Vous pouvez avoir besoin d'un second « event » si quelquefois un répertoire de baie d'information n'était pas visible.

signal-event nextcloud-update

Vous n'avez pas besoin de suivre les pages des dépôts de fws et de remi-safe pour installer ces 2 dépôts qui sont nécessaires. Utilisez plutôt les paquets qui les installent, suivi d'un « yum-modify event ». Puis exécutez l'installation principale.

yum install smeserver-extrarepositories-remi-safe smeserver-extrarepositories-fws smeserver-extrarepositories-epel
signal-event yum-modify
yum install smeserver-nextcloud --enablerepo=smecontribs,epel,fws
signal-event webapps-update
service php-fpm start
service php71-php-fpm start
service php72-php-fpm start
service php73-php-fpm start
signal-event nextcloud-update

Vous pouvez éviter les commandes du service php-fpm* s'il est déjà installé et fonctionne avant l'installation de nextcloud.

Puis vous pouvez faire ce qui suit et vous pouvez ignorer en toute sécurité le redémarrage « signal-event post-upgrade reboot » si vous y êtes invité, sauf si vous avez également installé d'autres paquets qui en ont besoin.

config set UnsavedChanges no

ou faire

signal-event post-upgrade 
signal-event reboot

puis

signal-event nextcloud-update

Si vous voulez ajouter l'administrateur de SME comme administrateur de nextcloud, faites :

 OCC group:adduser admin admin

Vous voudrez peut-être régler votre indicatif téléphonique national par défaut (utilisez le code à 2 lettres de votre pays - minuscule)

occ config:system:set default_phone_region --value="us"

Vous voudrez peut-être que Nextcloud soit accessible depuis internet

config setprop nextcloud access public
signal-event nextcloud-update

Utiliser un domaine dédié pour se connecter à Nextcloud

Changer en premier lieu le contenu de la variable de la première ligne par votre domaine de nextcloud tel que défini par votre fournisseur DNS.

NEXTCLOUDDOMAIN="cloud.mon-domaine.com"
db domains set $NEXTCLOUDDOMAIN domain Description "Nextcloud" Content Primary Nameservers internet TemplatePath WebAppVirtualHost DocumentRoot /usr/share/nextcloud RequireSSL enabled letsencryptSSLcert enabled
signal-event domain-create $NEXTCLOUDDOMAIN

# Cette ligne permet au DAV de nextcloud d'être redirigé correctement et à collabora de reconnaître le domaine :
config setprop nextcloud VirtualHost $NEXTCLOUDDOMAIN
signal-event nextcloud-update

# Uniquement si vous utilisez un certificat Let's Encrypt :
expand-template /etc/dehydrated/domains.txt
dehydrated -c

Configuration

Propriété Par défaut Valeurs
AdminPassword GENERATED string Mot de passe pour votre principal administrateur de nextcloud (*)
AdminUser nextcloudadmin string Utilisateur administrateur pincipal de votre installation (*)
cliurl enabled enabled,disabled forcer overwrite.cli.url sur https://domain/nextcloud ou https://domain si virtualhost est défini ; désactivez-le si vous avez des besoins spécifiques, puis utilisez la commande occ pour définir votre valeur
DbName nextcloud string Pour mysql db
DbPassword GENERATED string Pour mysql db
DbUser nextcloud string Pour mysql db
TrustedDomains empty strings coma separated Ajoute un domaine ou une adresse ip qui doivent être nécessairement ajoutés à l'accès par défaut à Nextcloud
VirtualHost empty Nom de domaine Domaine dédié à Nextcloud, nécessite aussi d'être défini comme domaine sur le serveur
access private private, public
status enabled enabled,disabled
MaxUploadSize 4096M nombre Si un nombre doit être converti en mégabits, sinon, utiliser le suffixe habituel : 2T pour 2 terrabits, etc...
MemoryLimit 528M nombre Interface web : si un nombre doit être converti en mégabits, sinon, utiliser le suffixe habituel : 2T pour 2 terrabits, etc...
memory_limit 1024M nombre Pour l'interface en ligne de commande comme une commande occ ou cron : si un nombre doit être converti en mégabits, sinon, utiliser le suffixe habituel : 2T pour 2 terrabits, etc...
Shares enabled enabled,disabled Ajoute les partages Samba de la contribution « shared-folders » dans les baies d'information Nextcloud ainsi que dans les baies d'information normales
IncludeIbay empty strings coma separated Ajoute les noms des baies d'information qui ont besoin d'être incluses. S'il n'est pas vide, seul le nom indiqué ici sera accessible via Nextcloud. A la priorité sur ExcludeIbay. Vous le définissez avec une chaîne aléatoire pour exclure tous les baies d'information et les partages de l'inclusion automatique.
ExcludeIbay Primary strings coma separated Exclura de l'accès Nexcloud toute baie d'information via Nextcloud. Exclut par défaut la baie d'information « Primary ». Si vous souhaitez inclure « Primary », mettez une chaîne de caractères quelconque.
opcache.memory_consumption 32 nombre mettez à jour cette valeur si Nextcloud dit qu'elle devrait l'être
opcache.interned_strings_buffer 128 nombre mettez à jour cette valeur si Nextcloud dit qu'elle devrait l'être
PHPBaseDir colon separated string répertoire php de base que vous souhaitez ajouter à l'exemple par défaut /home/e-smith/files/ibays/musique/files:/usr/share/GeoIP/GeoLite2-Country.mmdb:/proc/cpuinfo
UseSMB enabled enabled,disabled Vous permet de définir l'accès à ibay via le partage samba ou via le pilote local dans Nextcloud. Activé pour Samba, cela vous permet d'accéder en tant qu'utilisateur et de prendre en compte votre quota. Cela peut être un peu plus lent et nécessiter que votre mot de passe soit chargé dans la session. Le pilote local s'il est désactivé, vous permettra d'accéder uniquement à ce que l'utilisateur apache (www) a comme droit d'accéder en tant que membre d'un groupe.

(*) l'utilisateur administrateur de SME admin est aussi un administrateur de votre installation Nextcloud. Vous avez 2 comptes administrateur sur l'installation par defaut sur le serveur Koozali SME.


Example de configuration :

 config setprop nextcloud ExcludeIbay ibay1,ibay2
 signal-event nextcloud-update

Paramètres d'intégration LDAP/AD

Ne modifiez pas les paramètres d'intégration LDAP/AD pour "1. Serveur : Localhost" ou vous casserez l'installation de Nextcloud. Si vous souhaitez ajouter un deuxième serveur LDAP/AD, cliquez sur le symbole "+" pour ajouter une autre configuration, puis ajoutez les paramètres LDAP/AD appropriés.

Ligne de commande

Si vous avez besoin de peaufiner votre installation, voici comment accéder à la ligne de commande pour Nextcloud sur SME, nous vous avons facilité la tâche, connectez-vous simplement en tant que « root » et utilisez la commande OCC (en majuscules), cette commande exécutera pour vous tout ce dont vous avez besoin en tant qu'utilisateur www, en utilisant la version nécessaire de php. Voici deux exemples :

occ maintenance:mode --off
occ maintenance:repair

Pour voir des commandes additionnelles, consulter la documentation Nextcloud : https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html

Mise à jour

  Attention : prenez connaissance de ce fil AVANT de faire une mise à jour.


yum  update smeserver-nextcloud nextcloud --enablerepo=smecontribs

Mise à niveau de Nextcloud par l'interface en ligne de commandes

Vous devriez plutôt préférer le programme de mise à jour en ligne, mais au cas où :

occ maintenance:mode --on
sudo -u www /usr/bin/php74 --define memory_limit=1024M -d apc.enable_cli=1 /usr/share/nextcloud/updater/updater.phar --no-interaction
occ upgrade
occ maintenance:mode --off

Dans le cas d'une énorme base de données, vous pouvez choisir le programme de mise à jour en ligne, puis ne réaliser la mise à jour de la base de données qu'en faisant :

occ upgrade
occ maintenance:mode --off


À partir de la 25 pour passer à la 26, vous devriez faire :

occ maintenance:mode --on
sudo -u www /usr/bin/php81 --define memory_limit=1024M -d apc.enable_cli=1 /usr/share/nextcloud/updater/updater.phar --no-interaction
occ upgrade
occ maintenance:mode --off

Dans le cas d'une base de données énorme, vous pouvez choisir le programme de mise à jour en ligne, puis faire uniquement la mise à jour de la base de données en effectuant :

occ upgrade
occ maintenance:mode --off

Restaurer le niveau de journalisation des informations

occ config:system:set loglevel --value=3

Désinstallation

  Attention :
si vous envisagez de réinstaller Nextcloud et que le paquet nextcloud est installé, ne le supprimez pas ou ne le faites pas avec rpm -e car cela vous mettrait dans une situation où vous ne pourriez pas réinstaller et restaurer vos anciennes données. Le paquet nextcloud-src, s'il est présent, ne crée pas une telle situation et peut être supprimé en toute sécurité.


Désinstallation des paquets :

yum remove smeserver-nextcloud  nextcloud-src
rpm -e --justdb nextcloud

alors ces dossiers subsisteront :

  • /usr/share/nextcloud : software and config
  • /home/e-smith/files/nextcloud : user data

vous aurez également mariadb ou mariadb105 avec la base de données et l'utilisateur nextcloud.

Et enfin, la configuration de la base de données avec l'entrée pour Nextcloud.

Si tout cela reste tel quel, une simple réinstallation de la contribution remettra NextCloud en marche. Si vous l'avez désinstallé parce que votre installation n'était pas fonctionnelle ou si vous souhaitez une suppression complète, des étapes supplémentaires sont nécessaires.

En cas de suppression de la base de données ou d'une partie du dossier du logiciel, chaque fois que vous essayez de réinstaller la contribution, le processus échouera car la base de données et les fichiers ne sont pas synchronisés.

Au cas où vous auriez besoin de réinstaller à partir de zéro, tout d'abord, sauvegardez ce que vous voudrez peut-être restaurer ensuite : ​

cd /home/e-smith/files/nextcloud/data
mysqldump nextcloud > nextcloud55.sql
mysqldump105 nextcloud > nextcloud105.sql
config print nextcloud /root/nextcloud.config
tar -czf   /root/nextcloud.tar.gz /home/e-smith/files/nextcloud/data /usr/share/nextcloud

effacez ensuite tout ce qu'il reste :

mysql -e "DROP DATABASE `config getprop nextcloud DbName`;DROP USER IF EXISTS `config getprop nextcloud DbUser`;"
mysql105 -e "DROP DATABASE `config getprop nextcloud DbName`;DROP USER IF EXISTS `config getprop nextcloud DbUser`;"
rm -rf /usr/share/nextcloud
rm -rf /home/e-smith/files/nextcloud
#this one is optional, and should not cause issue if still there
config delete nextcloud

et vous devriez pouvoir faire une nouvelle installation à partir de zéro.

Calendrier des versions

Voir https://github.com/nextcloud/server/wiki/Maintenance-and-Release-Schedule

Ainsi en janvier 2024 :

Version Nom Date de la version Fin de vie
30 2024-09-14
29 Hub 8 2024-04-24 2025-04
28 Hub 7 2023-12-12 2024-12
27 Hub 6 2023-06-13 2024-06
26 Hub 4 2023-03-21 2024-03
25 Hub 3 2022-10-19 2023-10
24 Hub 3 2022-05-03 2023-05
23 Hub 2 2021-11-30 2022-12
22 Hub 2021-07-06 2022-07
21 Hub 2021-02-22 2022-02
20 Hub 2020-10-03 2021-11
19 Hub 2020-06-03 2021-06
18 Hub 2020-01-16 2021-01

Changer de base de données

Si vous êtes dans la situation où vous ne pouvez mettre à jour votre nextcloud à cause des prérequis de la base de données, vous pourrez avoir besoin d'en installer une nouvelle et de migrer vos données.

Voici une procédure simple, après avoir fait fonctionner la nouvelle base de données en tant que sclo Mariadb105 pour SME10 par exemple.

occ maintenance:mode --on
mysqldump `config getprop nextcloud DbName` > nextcloud.sql
echo "CREATE DATABASE IF NOT EXISTS `config getprop nextcloud DbName` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;"| mysql105
mysql105 `config getprop nextcloud DbName`< nextcloud.sql
echo "CREATE USER IF NOT EXISTS `config getprop nextcloud DbUser`@localhost IDENTIFIED BY '`config getprop nextcloud DbPassword`';"| mysql105
echo "GRANT ALL PRIVILEGES ON `config getprop nextcloud DbName`.* TO `config getprop nextcloud DbUser`@localhost; FLUSH PRIVILEGES;" | mysql105
occ config:system:set dbhost --value localhost:/var/lib/mysql/mariadb105.sock --type string
occ maintenance:mode --off

Après vérification que tout fonctionne, vous pouvez effacer vous-même votre ancienne base de données du précédent serveur mysql, ou le garder comme une sauvegarde, pendant un certain temps. S'il tombe en panne, pour retourner seulement à l'état précédent :

occ maintenance --on
occ config:system:set host --value localhost --type string
occ maintenance --off

Analyse de fichiers

# tout scanner, peut prendre des heures si vous avez beaucoup de fichiers
occ files:scan -v --all
# analyse tout ce qui se trouve à l'intérieur d'un chemin de nom d'utilisateur (y compris les stockages externes qui y sont montés)
occ files:scan -v myusername
# analyse uniquement un sous-dossier d'un utilisateur (le chemin nécessite un en-tête / et est relatif à /home/e-smith/files/nextcloud/data)
occ files:scan -v --path="/myusername/files/myfolder/mysubfolder" myusername
# Pour le stockage externe, il faut utiliser un utilisateur et le point de montage dans l'espace utilisateur, par ex. admin
occ files:scan -v --path="/admin/files/name_of_external_storage"

Si vous utilisez l'application groupgfolders, vous pouvez envisager de répertorier l'identifiant des dossiers

occ groupfolders:list

Puis pour le groupe de dossiers avec l'identifiant 1

occ groupfolders:scan 1

Problèmes connus

Mise à jour Web ou GUI de NC25 à NC26

En raison du changement de version de php nécessaire de php74 à php80 et supérieur, vous devez émettre la commande suivante tout en utilisant NC25 pour pouvoir ensuite passer à NC26. NC25 est le premier à pouvoir gérer php80, et NC26 nécessite php80 ou supérieur.

signal-event nextcloud-update

Problème lors de l'importation de fichiers dans la base de données "Entry path/to/file will not be accessible due to incompatible encoding"

yum install convmv --enablerepo=epel
# premier test pour voir les changements
convmv -f utf-8 -t utf-8 --nfc -r /home/e-smith/files/nextcloud/data/username
# vérifier, ensuite avec --notest
convmv -f utf-8 -t utf-8 --nfc -r --notest /home/e-smith/files/nextcloud/data/username
# puis rescanner 
occ files:scan -p /username/files/

Cela peut également se produire sur les dossiers ibays / home et leurs fichiers pas tous visibles depuis nextcloud, adaptez simplement le chemin pour convmv /home/e-smith/files/ibays/ibayname/files/ ou /home/e-smith/files/users/userame/home/

Retirer le paquet nextcloud hérité sans effacer le contenu de /usr/share/nextcloud

Pour les installations effectuées avant smeserver-nextcloud 1.2.0-16, le paquet nextcloud était requis et était en conflit avec la mise à jour Web. Depuis 1.2.0-16, il n'est plus nécessaire et nous utilisons un paquet nextcloud-src qui se met à jour dans /usr/share/nextcloud-src et n'est utilisé que si vous installez la première fois ou redémarrez votre installation à partir de zéro. Pour supprimer le paquet nextcloud qui n'est pas nécessaire et sauvegarder vos fichiers :

rpm -e --justdb nextcloud

source https://unix.stackexchange.com/questions/208722/how-to-remove-an-rpm-package-while-keeping-certain-files

Un utilisateur ne peut pas voir shares/files

Après une nouvelle installation, l'utilisateur administrateur peut voir « shares » mais pas un utilisateur.

Nous avons une simple baie d'information et elle était configurée :

Group Everyone
Write group
Read everyone

Nous avons crée un nouveau groupe appelé « localusers » et ajouté l'administrateur et un simple utilisateur.

Ensuite, nous avons configuré la baie d'information :

Group localusers
Write group
Read group

Ceci semble régler le problème et l'utilisateur peut maintenant voir les fichiers.

Mise à niveau au-delà de la version 20.x

Pour définir le pays par défaut du téléphone :

OCC config:system:set default_phone_region --type string --value="FR"

Pour corriger les identifiants manquants - cela peut prendre un certain temps, alors soyez patient(e) :

OCC db:add-missing-indices

NC 20-21 : open_basedir restriction in effect. File(/templates/) is not within the allowed path

C'est un bogue de NextCloud. Il a été réglé dans NC 22 mais pas rétro-activé à NC20. C'est seulement du bruit du journal. Vous pouvez l'ignorer en attendant la mise à jour. Voir https://help.nextcloud.com/t/error-file-templates-is-not-within-the-allowed-path-s-after-update-from-20-xx-to-21-0-3/119843

Reconfigurer la base de données

Pour reference, tout en regardant réinitialiser les caches de fichiers, j'ai trouvé ceci.

C'est probablement extrêmement dangereux mais j'ai voulu faire une note.

https://github.com/nextcloud/server/issues/8113#issuecomment-565876798

Bogues

Veuillez émettre les bogues dans la section SME-Contribs dans bugzilla et sélectionner le composant smeserver-nextcloud ou utiliser ce lien.


Un aperçu des problèmes actuels de cette contribution figure ci-dessous :

IDProductVersionStatusSummary (8 tasks)
12685SME Contribs10.0VERIFIEDInstall fails when attempting occ cmd at cli and no browser access
12611SME Contribs10.0RESOLVEDupdate cron script with maintenance_window_start
12609SME Contribs10.0CONFIRMEDsmeserver-nextcloud S30nextcloud-occ-conf errors when run via ddclient panel
12487SME Contribs10.0CONFIRMEDupdate nextcloud fail2ban filter
12486SME Contribs10.0RESOLVEDocc requires /sbin/e-smith to be in the path
12406SME Contribs10.0CONFIRMEDNFR switch to PHP83 support for NC 29 and after
11169SME Contribs10alphaCONFIRMEDsmeserver-nextcloud requires a modify script
10566SME Contribs10.0CONFIRMEDNFR: split action nextcloud-occ-conf

Journal des modifications

Seules les versions publiées dans smecontrib sont listées ici.

smeserver-nextcloud Changelog: SME 10 (smecontribs)
2024/05/16 Jean-Philippe Pialasse 1.2.0-31.sme
- fix php version on initial install [SME: 12685]

2024/04/12 Jean-Philippe Pialasse 1.2.0-30.sme
- add maintenance windows start [SME: 12611]

 increase frequency of cron task every 5 min
- fix missing full path [SME: 12486]

2024/01/29 Jean-Philippe Pialasse 1.2.0-29.sme
- require nextcloud-src >= 26 [SME: 12318]

 multiple fixes and rewrites
- restore default log level [SME: 12412]

2023/09/09 Jean-Philippe Pialasse 1.2.0-28.sme
- workaround opcache segfault with php 81 using in memory only [SME: 12298]

- index file cache using Redis [SME: 12401]
2023/09/09 John Crisp 1.2.0-27.sme
- Fix syntax error in 20opcache.ini [SME: 12298]

Références

  1. https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html
  2. https://help.nextcloud.com/t/migration-from-mysql-to-mariadb/6816/3
  3. https://help.nextcloud.com/t/changing-mariadb-socket-when-hosting-multiple-db-ubuntu/68294
  4. https://markus-blog.de/index.php/2019/10/21/how-to-migrate-nextcloud-17-database-backend-from-mysql-to-postgresql/
  5. https://www.ullright.org/ullWiki/show/nextcloud-cheatsheet