Chapril:service:valise:EtudePreliminaire

De April MediaWiki
Révision datée du 20 octobre 2019 à 18:38 par Lpoujoulat (discussion | contributions) (→‎Déploiement)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigationAller à la recherche


Etude préliminaire du service Valise

Etude pour le déploiement d'une instance Nextcloud

Le but de cette page est de présenter le logiciel Nextcloud, ses contraintes de déploiement et ses différentes options de configuration afin de déterminer la meilleure manière de le déployer comme un nouveau service Chapril.

Tout ce qui suit est basé sur les fonctionnalités de la version 15 de Nextcloud.

Présentation de Nextcloud

Nextcloud, fork de Owncloud, est une application libre, web modulaire dont le but est de fournir des services identiques à ceux proposés (essentiellement) par Google et Facebook, mais sous le contrôle intégral de l'administrateur de l'instance.

Elle est composée d'un socle minimal permettant le partage de fichiers (via HTTPS et Webdavs), dans lequel on ajoute des fonctions via des applications obtenues via le "store" de nextcloud.com, ou installées directement.

Il n'est pas envisageable d'installer toutes les applications, car le choix est colossal (> 100). Le choix des applications déployées détermine donc complètement l'orientation de l'instance Nextcloud:

  • PIM,
  • Travail collaboratif,
  • Diffusion de données,
  • ...

Nextcloud dispose également d'applications clientes permettant une intégration forte avec les systèmes d'exploitation des utilisateurs finaux:

  • GNU/Linux
  • Android
  • iOS
  • macOS
  • Windows

Il est également compatible avec toutes les applications supportant les protocoles Dav (WebDav, CalDav, CardDav)

Le code de base est sous licence AGPL v3 et la société détentrice du repository ne requiert pas de CLA.

Liens de références

Document Lien
Code source de base et des applications standards https://github.com/nextcloud/server
Documentation administrateur https://docs.nextcloud.com/server/15/admin_manual/installation/index.html
Documentation utilisateur https://docs.nextcloud.com/server/stable/user_manual
Documentation développeur https://docs.nextcloud.com/server/stable/developer_manual
Magasin d'applications https://apps.nextcloud.com
Howto Debian 9 et Nextcloud 15 https://www.howtoforge.com/tutorial/how-to-install-nextcloud-15-on-debian-9

Prérequis logiciel de base

Nextcloud est basé sur une pile LAMP avec les versions minimales suivantes:

  • Apache >= 2.4 avec mod_php ou php-fpm (recommandé)
  • MySQL >= 5.5 (support 4 bytes, et 1 fichiers/table recommandés)
  • PHP >= 7.0
  • Serveur REDIS fortement recommandé
  • Possibilité d'envoyer des mails depuis le serveur



Il peut également utiliser PostgreSQL à la place de MySQL et NGinx à la place de Apache.

Liste des modules

La liste ci-dessous présente les modules applicatifs de Nexcloud qui peuvent présenter un intérêt général dans le cadre Chapril. Cette liste n'est pas du tout exhaustive.

Nom Type Sites web Licence contraintes
techniques
proc./mém./
disq./réseau
dépendances
non dispo
sous Debian
+
Intérêt
+

Inconvénients
Commentaires
Registration Infrastructure https://apps.nextcloud.com/apps/registration AGPL v3.0 Support d'auto enregistrement des utilisateurs Vérifier la résistance aux bots Essentiel pour ne pas avoir à gérer l'enregistrement soi même
Calendar Bureautique

Organisation

https://apps.nextcloud.com/apps/calendar AGPL v3.0 Synchronisation d'agendas via le protocole CalDAV

Module officiel, supporté par Nextcloud

Tasks Bureautique

Organisation

https://apps.nextcloud.com/apps/tasks AGPL v3.0 Synchronisation de listes de tâches via le protocole CalDAV

Module officiel, supporté par Nextcloud

Contacts Bureautique

Organisation

https://apps.nextcloud.com/apps/contacts AGPL v3.0 Synchronisation des contacts via le protocole CardDAV

Module officiel, supporté par Nextcloud

Keeweb Outils https://apps.nextcloud.com/apps/keeweb

https://keeweb.info

MIT Intégration de Keeweb au sein de Nextcloud

Permet d'ouvrir les bases Keepass sans client lourd

Développeur tiers, le support des dernières versions de Nextcloud est tardif
Phone Sync Organisation https://apps.nextcloud.com/apps/ocsms AGPL v3.0 Sauvegarde des SMS/MMS sur l'instance Nextcloud

Module officiel, supporté par Nextcloud

Restauration impossible, ne fonctionne que dans le sens téléphone vers Nextcloud

Proposition de déploiement

L'idée générale

Dans l'optique où nous souhaitons nous adresser à des particuliers pour leur permettre d'échapper un peu à la gourmandise des GAFAM, je propose de configurer initialement notre instance comme service de remplacement des services courants fournis par Google/Apple pour la synchronisation via DAV du contenu des smartphones/tablettes, à savoir:

  • Sauvegarde de fichiers, (WebDav)
  • Synchronisation des carnets d'adresse (CardDav),
  • Synchronisation des agendas/tâches (CalDav).
  • Partage et échange de fichiers simples par lien (type galeries de photos).

Nom de domaine

Je dois avouer que là, je n'ai pas d'idée; peut être pim.chapril.org ?


Déploiement

  • Sur pile LAMP (mais peut-être que PostgreSQL serait un meilleure option, voir plus bas)
  • Modules à déployer et activer (je n'ai retenu que le nécessaire, en laissant tomber beaucoup de fonctions collaboratives):
Nom Commentaires
Accessibility Facilite l'accès des handicapés à l'interface
Announcement center Administration: publication de notices aux utilisateus
Auditing / Logging Administration: générations de logs
Brute-force settings Empêche l'utilisation de mots de passe faibles ou trop communs
Calendar Gestion des calendriers
Contacts Gestion des contacts
File sharing Permet le partage des fichiers ou dossiers par liens
Gallery Permet de visualiser les fichiers photos ou vidéos stockés en ligne
Log Reader Administration: lecture des logs via l'interface Web
Monitoring Administration: affichage web de la charge système en temps réel
Notifications Affichage/envoie de notifications aux utilisateurs
Password policy Administration: permet d'imposer des règles de complexité pour les mots de passe
PDF viewer Affichage des fichiers PDF stockés dans l'interface web
Share by mail Permet l'envoie d'un lien de partage de fichiers par mail
Social sharing via Diaspora Permet l'envoie d'un lien de partage de fichiers par diaspora
Social sharing via email Permet l'envoie d'un lien de partage de fichiers par mail
Tasks Gestionnaire de tâches (couplé avec les calendriers)
Terms of service Affichage et validation par l'utilisateur des conditions d'utilisation
Supprimer son compte Permet à l'utilisateur de supprimer son compte unilatéralement
Text editor Editeur de texte intégré
Theming Personnalisation du thème de l'application (pour la mise aux couleurs Chapril)
Update notification Administration: indique la disponibilité des mises à jour
Video player Lecteur des fichiers vidéos stockés

Tous ces modules sont sous licences AGPL v3

Limitations proposées

  • Stockage file system maximal autorisé: 1 Go/ compte
  • Taille maximale de transfert par l'interface web: 512Mo
  • Approbation des création de compte par l'administrateur pour éviter les bots ?
  • Utilisation du canal de "Production" pour la meilleure stabilité possible.
  • Interdiction de la fédération d'instance et de la liaison avec des stockage tiers (OneDrive, DropBox ...)
  • Interdiction des partages par réseaux sociaux privateurs ?

Contraintes d'administration et problèmes potentiels

  • Les mises à jours des applications peuvent être effectuées par l'interface WEB sans interruption de service
  • Les mises à jour de version du cœur applicatif nécessitent la mise off-line de l'instance et le passage par le shell.
  • Framasoft a eu des problèmes de performances avec MySQL sur son Nextcloud et est passé à PostgreSQL. Devons-nous suivre cette voie ?
  • Que faire pour gérer le stockage et le partage de fichiers illégaux ?
  • La documentation utilisateur n'est dispo qu'en anglais (une traduction partielle en français est en cours, mais stagne). Un job pour TradGNU ?