Chapril:service:valise:EtudePreliminaire
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 | 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 ?