Les solutions d'autohébergement

Chrtophe

L'autohébergement consiste à installer sur son propre matériel et avec une ou plusieurs solutions que vous gérerez, des services proposés par des hébergeurs ou grands acteurs du cloud.

Commentez .

- Titre : Les solutions d'autohébergement

- Auteur : Chrtophe

- Parution : 15 novembre 2020

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2020 Chrtophe. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- 1. Introduction : Qu'est-ce que l'autohébergement ?

- 2. Les solutions d’autohébergement (utilisable en cloud)

- 3. Les NAS

- 3-1. Solutions NAS Synology

- 3-2. Les NAS Qnap

- 3-3. FreeNAS/TrueNAS

- 3-3-1. Installation

- 3-3-2. Création d'un volume

- 3-3-3. Partage de fichiers

- 3-3-3-1. Partage Windows

- 3-3-3-2. Partage NFS

- 3-3-3-3. Partage Apple (AFP)

- 3-3-3-4. Partage WebDAV

- 3-3-4. Plugins

- 3-3-5. Machines virtuelles dans FreeNAS

- 3-3-6. Options avancées

- 3-3-6-1. Tache rsync

- 3-3-6-2. Réplication

- 3-3-6-3. Synchronisation cloud

- 3-3-6-4. Gestion avancée de l'alimentation des disques

- 3-3-6-5. Services d'annuaire

- 4. OwnCloud – Application de cloud privé

- 4-1. NextCloud – le fork de OwnCloud

- 4-2. Les différences constatées entre Owncloud et Nextcloud

- 4-2-1. Personnalisation de l'apparence

- 4-3. Authentification via les comptes locaux

- 4-4. Installation de ownCloud

- 4-5. Première connexion à ownCloud

- 4-6. Utilisation de l'interface web d'ownCloud

- 4-7. Administration

- 4-7-1. Gestion des utilisateurs

- 4-7-2. Authentification via LDAP

- 4-8. Édition de documents en ligne

- 4-9. Sauvegarde

- 4-10. Connexion à partir du client Windows

- 4-10-1. Partage de documents

- 4-11. Agenda partagé

- 4-11-1. Installation dans Thunderbird

- 4-11-2. Calendrier avec Outlook

- 4-12. Utilisation depuis Mac OS X ou iOS avec l'application Calendrier

- 4-12-1. Partage de contacts

- 4-12-2. Thunderbird

- 4-12-3. Outlook

- 4-12-4. Application Apple Contacts pour OS X et iOS

- 4-13. Outils collaboratifs

- 4-13-1. OnlyOffice – modification de documents bureautique en ligne

- 4-13-2. Collabora

- 4-14. Utilisation avec un cluster de bases de données

- 4-15. Panne serveur

- 4-16. Utilisation en ligne de commande

- 4-17. Redondance d’une instance Nextcloud

- 5. YunoHost - L'autohébergement

- 5-1. Installation sur machine vierge

- 5-2. Installation sur système existant

- 5-3. Prise en main

- 5-4. Installation d'application

- 5-4-1. Exemple d'installation de Nextcloud

- 5-4-2. Roundcube

- 5-4-3. WordPress

- 5-4-4. phpMyAdmin

- 5-5. Sauvegarde/restauration

- 5-5-1. Sauvegarde

- 5-5-2. Restauration

- 5-5-3. Automatiser les sauvegardes

- 5-6. Mises à jour

- 6. Bilan

- 7. Conclusion

- 7-1. Remerciements

1 - Introduction : Qu'est-ce que l'autohébergement ?

L'autohébergement consiste à installer sur son propre matériel et avec une ou plusieurs solutions que vous gérerez, des services proposés par des hébergeurs ou grands acteurs du cloud.

Cet article est une des sous-parties de mon livre sur le Cloud Computing.

Les solutions abordées ici ne sont pas exhaustives.

2 - Les solutions d’autohébergement (utilisable en cloud)

Seront abordées ici des solutions d’autohébergement toutes faites que vous pourrez utiliser en interne avec ouverture ou non sur l’extérieur. Si ouverture sur l’extérieur, on pourra alors parler de cloud Computing. Ces solutions sont également utilisables sur une infrastructure hébergée dans un datacenter, bien que ce ne soit pas le but premier.

Ces solutions pourront être adaptées à de l'utilisation répartie sur plusieurs machines après avoir lu les chapitres suivants à partir du chapitre sur les briques minimales de livre sur le Cloud Computing.

Vous seront ici présentés :

- Des solutions NAS (Sunology, Qnap) ;

- Owncloud/NextCloud ;

- YunoHost.

3 - Les NAS

NAS signifie Network Attached Storage que l'on peut traduire par stockage attaché au réseau. Ce stockage va en général contenir des disques montés en RAID afin de sécuriser les données au niveau matériel.

Au fur et à mesure de l'évolution, certains de ces NAS ont évolué vers des solutions offrant plus de fonctionnalités. Nous allons voir ci-dessous certains NAS ayant des fonctions avancées. Ils ne représentent qu'une partie des solutions NAS existant sur le marché.

Un NAS a pour première fonction de servir d'espace de stockage de type fichiers, pas d'être exposé sur Internet, même si cela est tout à fait possible.

3-1 - Solutions NAS Synology

L'usage premier des équipements Synology était des NAS. Au fur et à mesure de l'évolution de leurs produits, ceux-ci apportent maintenant l'équivalent d'une solution comme Yunohost via leur interface DSM (Disk Station Manager) facile à utiliser. Vous pourrez facilement étendre l'espace disque en changeant ceux-ci ou en ajoutant. Une partie de l'espace disque est réservée à la redondance des données (RAID). Vous pourrez également ajouter des baies d'extension permettant l'ajout de disques supplémentaires. Tout le paramétrage se fait via une interface web.

L'accès depuis l’extérieur est facilité, de par un accès possible aux données en HTTPS avec un explorateur de fichiers accessible dans l'interface web fournie par Synology. Un serveur VPN est intégré. Synology fournit aussi une application nommée QuickConnect qui vous permettra, après création d'un compte, d'accéder à votre NAS via leur infrastructure (votre NAS se connectant à l'infrastructure Synology, qui fera le relais).

Vous pourrez sur les modèles le permettant créer des machines virtuelles.

Vous aurez ici une vision des applications proposées.

Vous pouvez tester DSM en ligne depuis le site de Synology.

Cette solution restera quand même plus fermée par exemple que Yunohost, car le système d'exploitation DSM n'est pas libre et reste quand même cloisonné, et nécessite l'utilisation d'un NAS Synology.

Certains hébergeurs proposent des solutions clé en main sur Synology. Il existe des modèles rackables pour les professionnels dont la configuration rivalise avec des serveurs accueillant habituellement des solutions Windows ou Linux, tout comme des modèles grand public à prix abordables.

Vous pouvez retrouver sur Developpez.com un dossier montrant l'utilisation d’un NAS de Synology.

3-2 - Les NAS Qnap

Qnap est un peu moins connu que Synology par les particuliers et propose des fonctionnalités similaires. Le système embarqué dans les NAS QNAP se nomme QTS.

Vous pouvez retrouver sur Developpez.com un dossier montrant l'utilisation de QNAP.

3-3 - FreeNAS/TrueNAS

FreeNAS est une distribution FreeBSD basée sur M0n0wall, distribution FreeBSD destinée à servir de pare-feu dans un système embarqué.

FreeNAS fournit également des NAS physiques incluant leur système.

FreeNAS est une solution conçue pour fonctionner sur une carte flash ou une clé USB. L'usage premier étant d'être utilisé dans un système embarqué, mais rien n'empêche de l'utiliser sur une machine standard. Il est fourni sous forme d'ISO.

Le projet est en train de changer de nom et va devenir TrueNAS (TrueNAS core pour être précis). TrueNAS est la version payante de l'éditeur de FreeNAS, les deux versions partagent 95 % de code commun. Les prochaines versions devraient être basées sur Debian plutôt que FreeBSD.

Il existe une édition TrueNAS Entreprise qui est une version dual-node, la version TrueNAS SCALE permettra la gestion multinode. Cette dernière est encore en phase de développement et non recommandée par TrueNAS en production à ce jour.

La version testée est la version FreeNAS 11.

Bien que FreeNAS/TrueNAS puisse être installé dans une machine virtuelle, ce n'est pas son but premier.

3-3-1 - Installation

Rappel : FreeNAS recommande l'installation sur une mémoire Flash.

Lors du démarrage de l'ISO FreeNAS, vous aurez les écrans suivants :

Vous devrez ensuite sélectionner le disque où installer FreeNAS :

Ceci effacera l'éventuel contenu du disque, ce qui vous sera indiqué.

Il ne sera pas possible de mettre des données sur le volume contenant l'installation FreeNAS.

Vous sera ensuite demandé le mot de passe root  :

Il faudra ensuite sélectionner le boot via BIOS (legacy) ou via UEFI :

L'installation va ensuite se déclencher :

Il vous sera ensuite demandé de rebooter :

Au premier démarrage, vous aurez l'écran suivant :

Vous pouvez changer les réglages réseau. Vous pourrez le faire a posteriori depuis l'interface web.

À ce stade, vous pourrez passer via l'interface web, il faudra vous connecter avec le mot de passe root précédemment communiqué :

Écran de l'interface web :

Nous commencerons par vérifier si des mises à jour sont disponibles en cliquant sur « check for updates » :

Nous continuons ensuite par passer le système en français, changer la langue du clavier, mettre à jour le fuseau horaire :

L'écran passe immédiatement en français.

Vous pourrez également changer les ports d'écoute de l'interface web (bonnes pratiques habituelles).

La prochaine étape sera l'activation du mot de passe pour accéder à la console. Pour cela, il va falloir décocher « Afficher la console sans mot de passe » dans le menu système->avancé :

Dès le clic enregistré, la console va se verrouiller et nécessitera la saisie du mot de passe root.

À ce stade, freeNAS n'est pas encore utilisable, il va nous falloir créer un volume.

3-3-2 - Création d'un volume

Pour créer un volume, il va nous falloir aller dans le menu stockage ? volumes :

Cliquer sur « Ajouter » nous donnera accès à la création de volume :

Vous seront alors affichés les volumes disponibles, il faudra cocher le volume souhaité et lui donner un nom :

À côté du nom, vous aurez une case à cocher permettant de chiffrer le volume.

Si vous chiffrez le disque, TrueNAS vous fera télécharger la clé sous forme de fichier. La perte de cette clé vous empêchera l’accès aux données du volume ZFS.

L'écran se présente en deux parties, à gauche la partie volume physique, à droite la partie volume logique. Il vous sera possible de créer un volume logique depuis plusieurs volumes physiques. Il faudra cliquer sur la flèche pour déplacer le ou les volumes dans la partie droite. Une fois ceci fait, vous pourrez créer le volume.

Vous aurez une demande de confirmation, il faudra cocher la case pour pouvoir confirmer :

FreeNAS revient sur le premier écran permettant de créer un volume, nous voyons la liste des volumes :

Depuis la console, nous trouverons le volume FreeNAS_data monté dans /mnt/freenas_data. Il s'agit d'un volume ZFS. ZFS est un système de fichiers ayant des capacités théoriques quasi infinies. Il a également l’avantage d'intégrer la possibilité de faire des clichés, de pouvoir faire des partages natifs en SMB et NFS. Tout partage créé depuis FreeNAS sera contenu à ce niveau.

3-3-3 - Partage de fichiers

Pour pouvoir utiliser FreeNAS, l'étape suivante sera de créer un partage de fichiers.

Les partages disponibles sont :

- AFP : partage pour Macintosh ;

- iSCSI : partage au niveau bloc pouvant être assimilé à du SCSI Over IP ;

- NFS : partage natif Unix, classique sur ce type de solutions ;

- WebDAV : (Web-based Distributed Authoring and Versioning) extension du protocole HTTP dédié à la gestion de fichiers via le web. Windows et Mac OS permettent de monter un volume WebDAV comme un volume réseau standard. Sous Linux, DavFS permet de monter un volume WebDAV via FUSE. Pour un usage interne, je privilégierais SMB, mais pour un usage externe cela peut être utilisé pour faciliter le passage de firewalls, mais je privilégierais plutôt une connexion SSH ;

- SMB : partage utilisé par Windows et utilisable depuis quasiment tout système, ce sera le plus utilisé sur ce type de solutions.

L'accès à la gestion des partages se fera depuis l'onglet « Partages » sur la gauche.

3-3-3-1 - Partage Windows

Nous accédons au menu de gestion des partages Windows :

Une fois « Ajouter » cliqué, il va falloir entrer le chemin d'accès, le nom de partage. Une fois FreeNAS_data sélectionné à la souris, je rajoute le nom partage pour créer un dossier :

Après avoir cliqué sur « Enregistrer », il vous sera demandé d'activer le service (en fait le service SMB :

Il vous sera alors demandé d'activer les ACL :

La gestion des ACL peut être complexe. Pour un dossier donné, voici un exemple autorisant l'accès d'un dossier aux membres du groupe Staff :

3-3-3-2 - Partage NFS

Le principe du partage NFS est le même. Vous n'aurez pas de gestion d'ACL, le protocole ne le gérant pas.

Vous pouvez partager un dossier sur plusieurs protocoles, exemple SMB et NFS.

3-3-3-3 - Partage Apple (AFP)

L’aspect pertinent du partage AFP fourni par FreeNAS est de pouvoir l'utiliser avec Time Machine. Il faudra cocher pour cela la case « Time Machine ».

3-3-3-4 - Partage WebDAV

Comme il vous sera indiqué, activer un partage WebDAV sur un dossier existant va transférer la propriété de celui-ci à l'utilisateur WebDAV, ce qui pourra entraîner des problèmes de droits.

Le port d'écoute par défaut est 8080. Vous pourrez le changer depuis le menu services ? WebDAV.

3-3-4 - Plugins

Il est possible d'ajouter des fonctionnalités à FreeNAS par le biais de plugins. Voici quelques exemples de plugins disponibles :

dépôt de l'éditeur :

- ClamAV ;

- Nexcloud (que nous verrons au chapitre suivant) ;

- Syncthing (que nous verrons également).

dépôt de la communauté :

- Drupal 8 ;

- Duplicati ;

- Gitlab ;

- Grafana ;

- OpenVPN Server.

Pour installer ces plugins, il vous faudra cliquer sur plugin sur le menu de gauche. Vous sera alors demandé le volume où stocker les plugins, je sélectionne mon volume freenas_data :

.

Ceci va créer un dossier iocages dans le volume freenas_data.

Je choisis pour l'exemple d'installer le plugin « Nextcloud » :

Une fois l'installation terminée, vous pourrez voir le plugin en dessous des icônes de plugins installables :

Nous pouvons voir l'interface d'accès à l'administration de Netxcloud (http://192.168.1.14:8282 dans l'exemple). Cette interface vous présentera la page de configuration de Nextcloud telle que nous la verrons dans le prochain chapitre. Les informations de connexion sont disponibles dans les notes de postinstallation :

Les plugins sont installés dans des BSD Jails, système de conteneurs spécifique à BSD et précurseur de systèmes de type Docker.

Il est possible d'entrer dans la console du BSD Jail depuis le menu à gauche, Jails :

3-3-5 - Machines virtuelles dans FreeNAS

Si la machine où vous avez installé FreeNAS supporte la virtualisation, vous pourrez créer des machines virtuelles Windows, Linux, ou freeBSD.

Une fois le bouton « Ajouter » depuis le menu Machines virtuelles, il faudra renseigner le type d'OS (Windows, Linux, FreeBSD), le nom de celle-ci, la méthode de démarrage (UEFI, UEFI-CSM, Grub) :

Vous sera ensuite demandé le nombre de CPU et de RAM à attribuer à la VM :

Ensuite, il vous faudra créer un disque virtuel ou en sélectionner un existant :

Il vous faudra sélectionner le chemin où stocker celui-ci, vous pourrez ensuite sélectionner la taille du disque.

Vous sera ensuite proposé l'écran de la carte réseau, vous pourrez changer l'adresse MAC et sélectionner la carte réelle, si vous en avez plusieurs, sur laquelle affecter l'interface virtuelle :

Vous pourrez ensuite choisir le support d'installation :

Pour en uploader un, il faudra cocher « Envoyer un fichier image de l'installation », puis cliquer « Parcourir », et enfin « Envoyer » une fois le fichier sélectionné :

Vous aurez ensuite un écran de confirmation :

La machine virtuelle sera alors créée et visible dans la liste :

Cliquer sur le bouton de la colonne « état » démarrera la machine virtuelle. Cliquer sur la petite flèche à droite vous permettra d'accéder à la configuration de celle-ci :

Si vous allez dans le menu stockage ? volumes, vous pourrez voir un zvol (sorte de volume dans un volume dans ZFS) correspondant à l'image disque de la machine virtuelle. Ce zvol portera le nom de la machine virtuelle suivi de plusieurs lettres aléatoires :

accessible dans /dev/zvol/freenas_data. freenas_data étant le pool créé au chapitre création d'un volume.

3-3-6 - Options avancées

Sont présentées ici les fonctionnalités les plus importantes, de façon non exhaustive.

3-3-6-1 - Tache rsync

Cette option est accessible depuis le menu tâches ? rsync. Ceci vous permettra de lancer une tâche rsync vers un autre hôte.

Vous seront demandés :

- l'utilisateur à utiliser ;

- le nom d'hôte distant ;

- la direction (PUSH/PULL PUSH : envoi vers l'hôte distant, PULL reçoit de l'hôte distant) ;

- les options principales de rsync présentes sous forme de cases à cocher.

3-3-6-2 - Réplication

Il est possible de répliquer vos dossiers vers une destination locale ou distante (copie via SSH, il est aussi possible d'utiliser une source distante). Ceci se fera depuis le menu tâches ? réplication :

En cas de volume de destination local, celui-ci devra être créé avant.

Le prochain écran concernera la planification.

Une fois la réplication effectuée, la destination backup de notre exemple sera identique à la source freenas_data.

3-3-6-3 - Synchronisation cloud

Ceci vous permettra de synchroniser vos données vers le cloud. Les connecteurs cloud disponibles sont :

- Amazon S3 ;

- Blockbase B2 ;

- Box ;

- DropBox ;

- Google Cloud Storage/Google Drive ;

- Microsoft OneDrive/Microsoft Azure blob storage ;

À cela s'ajoutent les connecteurs standards suivants :

- FTP ;

- SFTP ;

- WebDAV ;

La première étape va consister à créer le connecteur dans le menu système ? identifiants cloud. Il faudra y renseigner les éléments afférents à celui-ci :

- nom d'hôte ;

- jeton d'accès ;

- identifiants.

Vous pourrez ensuite créer la tâche de synchronisation :

3-3-6-4 - Gestion avancée de l'alimentation des disques

Il est possible de gérer l'alimentation des disques en allant dans le menu Stockage ? disques :

3-3-6-5 - Services d'annuaire

FreeNAS permet de se connecter sur Active Directory ou sur un serveur LDAP (qu'il vous faudra installer) ainsi que sur un serveur NIS, et Kerberos.

Pour cela, il faudra entrer les informations de connexion dans le menu Service d'annuaire, sous-menu concernant l'annuaire.

4 - OwnCloud – Application de cloud privé

OwnCloud est écrit en PHP et donc installable sur n’importe quel serveur supportant PHP. Les tests ont été effectués depuis une machine Linux.

Owncloud fournit :

- un service de stockage de fichiers accessible depuis un navigateur ;

- une application de synchronisation de données pour Windows, Mac OS, Linux, et pour les smartphones iOS et Android ;

- un partage de documents par envoi de lien (avec ou sans mot de passe) ;

- une gestion de calendrier depuis l'interface web et compatible avec le protocole CalDAV pour le partage avec les logiciels de messagerie ou de gestion de calendriers ;

- une gestion de contacts compatible CardDAV.

Owncloud.online est une solution vous permettant d'être directement hébergé par leurs services avec un abonnement mensuel ou annuel incluant un stockage de 500 Go. La solution « for teams » vous fournira 1 To par utilisateur avec un minimum de cinq utilisateurs. Le tarif à l'utilisateur est quasi identique entre l'offre personnelle et l'offre d'équipe.

Deux versions d'Owncloud existent, la version entreprise, et la version Community. Les différences sont détaillées ici. Notamment, plus de modules sont disponibles dans la version entreprise.

Pour migrer de la version Community à la version Entreprise, il vous faudra créer un compte sur le Marketplace. Vous aurez alors accès à une clé d'API qu'il faudra entrer dans le Market d'Owncloud, ceci après avoir cliqué « Commencer l'évaluation d'entreprise ». Vous aurez alors 30 jours d'essai gratuits avant de devoir acheter le service.

4-1 - NextCloud – le fork de OwnCloud

Nextcloud est un fork de Owncloud. Il est relativement facile de migrer d'Owncloud vers Nextcloud, mais ceci n'a pas été testé dans ce tutoriel. Le processus d'installation est le même. Nextcloud a également un client pour les postes informatiques et smartphones. L'installation se fait de la même façon.

La version disponible de Nextcloud et testée au moment de l'écriture de ce tutoriel est la version 19.

Nextcloud requiert la version 7.2 de PHP au minimum.

4-2 - Les différences constatées entre Owncloud et Nextcloud

Les applets fournies sont différentes, mais les applets principales telles que la gestion de calendriers et contacts sont présentes dans les deux produits.

La première différence est l’installation par défaut des applets les plus utilisées (photos, contacts, agendas) dans Nextcloud, sauf si vous décochez la case « installer les applications recommandées » sur l'écran de configuration.

Ci-dessous écran d'installation suivant celui des paramétrages de base (compte administrateur, informations sur la base de données) :

Les options de configuration diffèrent sur la forme, mais pas sur le fond. Une fois installées, l'accès aux applications agenda et carnet d'adresses se fait directement depuis des icônes dans la barre du haut.

Les paragraphes concernant la synchronisation de l'agenda et des contacts restent valables pour les deux produits.

L'accès aux applications se fera depuis le menu à droite. Sur Owncloud, l'option se trouve à gauche depuis la partie administration.

Vous pourrez voir les différentes applications sur https://apps.nextcloud.com.

4-2-1 - Personnalisation de l'apparence

Netxcloud permet la personnalisation de l'interface ainsi que la page de connexion, réglage accessible depuis paramètres (en haut à droite) ? « Administration » ? « personnaliser l'apparence ».

Exemple simple avec le logo et la couleur de fond DVP :

Owncloud possède une extension « Owncloud X Enterprise Theme », mais payante. Celle-ci n'a pas été testée :

4-3 - Authentification via les comptes locaux

Nextcloud comporte un plugin nommé « Unix User Backend » permettant l'authentification avec des comptes locaux. Vous le trouverez dans la section « Intégration ». Il faudra cliquer sur « activer les applications non testées » en dessous de son image, avant de pouvoir cliquer sur « Télécharger et Activer ».

Une fois le plugin activé, si vous ajoutez un utilisateur via la commande adduser, celui-ci apparaîtra dans les utilisateurs Nextcloud. Par contre, l'ajout d'un utilisateur dans l'interface Nextcloud n'est pas répercuté dans les comptes utilisateurs du système. L'interface Nextcloud présente les comptes contenus dans sa base de données, et dans les autres sources d'authentification gérées.

La connexion depuis un compte utilisateur Unix via le plugin « Unix user Backend » nécessite la présence du paquet pwauth. Si pwauth n'est pas installé, le système réagira comme si le nom d'utilisateur/mot de passe est invalide.

Vous ne pourrez pas changer le mot de passe du compte Unix depuis l'interface Nextcloud. La tentative de suppression du compte générera une erreur. La suppression du compte depuis la console Unix (via deluser par exemple) sera prise en compte dès le rafraîchissement de la page Nextcloud. Les données Nextcloud de l'utilisateur ne seront pas effacées.

Il existe également un plugin permettant l'authentification via SMB :  « External User Authentication », mais celui-ci n'a pas été testé.

4-4 - Installation de ownCloud

La version testée et disponible au moment de l'écriture de ce tutoriel est la version 10.

ownCloud 10 requiert minimum PHP 7.1.0 (Debian 9 étant fourni avec PHP 7.0, il faudra faire la mise à jour). Pour la base de données, vous aurez le choix entre sqlite, MySQL/MariaDB, et PostgreSQL.

Sous Linux, il suffit de décompresser l'archive zip et de placer les fichiers dans /var/www (ou /var/www/html selon votre version, ou de configurer un fichier Virtualhost comme vous le souhaitez).

Il vous faudra un MySQL ou un PostGreSQL fonctionnel si vous souhaitez l'utiliser.

Les fichiers devront avoir les droits www-data.

Attention au fichier .htaccess non visible, qu'il faudra copier.

Au premier démarrage vous aurez l'écran suivant :

ownCloud requiert les paquets php-zip, php-dom, php-xml,php-gd,php-mb php-curl et php-intl :

apt-get install php7.1-zip  php7.1-dom  php7.1-xml  php7.1-gd  php7.1-mb  php7.1-curl  php7.1-intl

Nous redémarrons le service :

service apache2 restart

Vous aurez ensuite l'écran suivant :

ownCloud vous demandera :

- un nom d'utilisateur administrateur ;

- un mot de passe ;

- le chemin de stockage des données (par sécurité, ne pas laisser dans un sous-dossier du site, si vous le faites ownCloud vous préviendra). Dans notre cas le stockage se fera dans /data. (/data étant le dossier ou point de montage devant contenir les données). Le dossier /data devra appartenir à www-data.

- les informations de connexion à la base de données :

- nom d'utilisateur ;

- mot de passe ;

- nom de la base ;

- nom d'hôte /adresse IP.

La base devra être créée avant.

Il m'a été nécessaire de créer le dossier apps-external.

Une fois la préparation terminée, vous aurez l'écran de connexion ou vous devrez entrer l’identifiant préalablement choisi.

4-5 - Première connexion à ownCloud

Vous aurez ensuite le premier écran de connexion (il faudra fermer la fenêtre d'accueil) :

Vous serez ensuite dans l'interface principale :

Les fichiers des utilisateurs sont stockés dans /data/[nom d'utilisateur]/files et /data/[nom d'utilisateur]/files_versions pour les anciennes versions.

La configuration se trouve dans le fichier config/config.php. Vous pourrez, en cas de changement de serveur par exemple, y changer les réglages tels que l'adresse du serveur, le dossier de stockage des données, le nom et les éléments de connexion de la base de données.

4-6 - Utilisation de l'interface web d'ownCloud

Voici l'écran de l'interface :

Vous pouvez uploader un fichier (le terme affiché est « Téléverser ») ou créer un dossier en appuyant sur le plus.

Sur la partie gauche, vous avez accès aux raccourcis :

- favoris ;

- documents récents ;

- documents partagés avec vous ;

- documents partagés avec d'autres.

Pour mettre un document ou un dossier en favori, il faut sélectionner celui-ci, et cocher l'étoile (en 1).

Cliquer sur un dossier va vous permettre de rentrer dedans, cliquer sur un fichier va le télécharger.

Vous voyez votre chemin d'accès en 2, un clic sur le pictogramme vous ramènera à la racine.

L’icône en 3 va ouvrir un écran de détail, vous permettant d'ajouter un commentaire ou de partager le fichier avec d'autres utilisateurs :

Vous verrez alors la notation partagée. Vous pouvez autoriser l'utilisateur à modifier le document, le repartager ou non, ou supprimer le partage. Vous pourrez également voir et gérer les partages depuis le client logiciel, comme nous le verrons ultérieurement.

Vous aurez également accès aux différentes versions d'un document. Vous pourrez soit les télécharger, soit les restaurer.

À chaque mise à jour, les versions sont ajustées comme ceci :

- les 10 premières secondes, conservation d'une version toutes les 2 secondes ;

- la 1re minute, conservation d'une version toutes les 10 secondes ;

- La 1re heure, conservation d'une version toutes les minutes ;

- Les 24 premières heures, conservation d'une version toutes les heures ;

- Les 30 premiers jours, conservation d'une version par jour ;

- Au-delà de 30 jours, conservation d'une version par semaine.

Si l'espace occupé dépasse les 50 %, le nombre de versions est diminué jusqu'à descendre en dessous de cette occupation.

Un fichier supprimé restera accessible depuis la corbeille accessible en bas à gauche.

L'ajout d'un fichier ou dossier se fera depuis l’icône qui affichera un menu :

Vous pourrez cliquer sur « Chargement » pour obtenir la boite de dialogue de sélection de fichiers, ou « dossier » pour créer un nouveau dossier.

Le Glisser-déplacer fonctionne également.

En cas d'upload d'un fichier déjà existant, vous aurez une boite de dialogue de confirmation :

4-7 - Administration

L'accès à l'interface d'administration s'effectue par l’icône crantée en haut à droite :

Pour revenir à l'écran des fichiers, il faudra cliquer sur paramètre à gauche :

L’icône « Market » vous servira à ajouter des applets non natives à ownCloud. Nous en verrons certaines ultérieurement.

Vous pouvez avoir plus d'informations sur les applets ownCloud sur le site https://marketplace.owncloud.com.

Vous aurez les options suivantes :

- Paramètres ;

- Utilisateurs ;

- Se déconnecter.

L'onglet paramètres vous donnera accès à deux parties principales : Personnel et Administration.

La partie « Personnel » va concerner la configuration du compte proprement dit (avatar, adresse mail, mot de passe, langue).

Passons directement à la partie Administration.

- Personnel/Réglage stockage externe (désactivé par défaut) : donnant accès à la gestion d'espaces de stockage local, DropBox, Google Drive, SMB, S3, etc.

- Administration/Applications : permet de voir les applications activées et de les désactiver, en cliquant sur le bouton « Show disabled apps » ; il est possible de les lister et aussi de les désinstaller.

Après l'installation, seules les applications par défaut sont visibles, nous verrons plus tard comment ajouter celles qui ne sont pas présentes.

Administration/Généraux : vous verrez tout d'abord ici des avertissements sur la sécurité et la configuration. J'ai un avertissement sur le verrouillage translationnel, une recommandation sur l'utilisation de cron pour les tâches planifiées (configurable en bas de page), sur l'utilisation de HTTP au lieu de HTTPS et sur la non-présence de cache mémoire (memcached recommandé).

Ces avertissements ne sont pas bloquants.

Administration/stockage : ce menu va permettre l'usage d'un stockage externe, ceci étant désactivé par défaut et activable ici, (voir Personnel/stockage externe).

Les partages externes accessibles sont :

- Google Drive ;

- ownCloud (un autre serveur) ;

- SFTP ;

- SMB/CIFS ;

- WebDav.

Le paquet smbclient doit être installé pour pouvoir utiliser un partage SMB. ownCloud vous affichera un message en conséquence.

Il vous faudra cocher « Autoriser les utilisateurs à monter des espaces de stockage externes » pour que ceux-ci puissent y accéder.

Nous verrons alors le partage créé dans le menu Personel/stockage.

Le dossier partagé sera visible dans l'espace utilisateur avec une icône .

Administration/chiffrement : désactivé par défaut. Les fichiers ne sont donc pas chiffrés par défaut. Pour plus d'infos, consultez la documentation. Il vous faudra activer l'application « Default Encryption Module », que vous trouverez dans la liste des applications après avoir cliqué sur « montrer les applications désactivées ».

Une fois le module activé, dans la partie chiffrement, il vous faudra sélectionner le type de clé :

- une clé principale ;

- une clé par utilisateur.

Dans le cadre du test, j'ai sélectionné une clé principale. Une fois le choix validé, il est demandé de se reconnecter.

Seuls les nouveaux fichiers seront cryptés, les anciens ne le seront pas.

Seul le contenu des fichiers est crypté, pas leur nom. Un dossier files_encryption dans le dossier de l'utilisateur va contenir les éléments pour le décryptage (et notamment les clés des utilisateurs). Le dossier files_encryption du dossier data va lui contenir les fichiers de la clé maîtresse en cas de chiffrement unique pour tous les utilisateurs.

La perte des clés de cryptage entraînera l’impossibilité de lire les fichiers chiffrés.

Le téléchargement d'un fichier chiffré est transparent : il est déchiffré à la volée. Si vous désactivez le module « Encryption », la tentative de chargement du fichier déclenchera un message d'erreur :

Administration/Partage : vous trouverez ici les autorisations de partage ou repartage pour vos utilisateurs. Vous trouverez aussi les réglages concernant la fédération de serveurs ownCloud (partage d'annuaire d'utilisateurs entre plusieurs serveurs ownCloud).

Par défaut, il n'y a pas d'accès à un agenda ou à un calendrier, nous verrons cela dans les chapitres suivants.

Personnalisation de l'apparence : il existe une applet pour personnaliser l'image de fond de l'écran de connexion : « ownCloud X Enterprise Theme », extension payante, qui n'a pas été testée. Pour l'image de fond, il suffit de modifier l'image core/img/background.jpg. Pour les autres aspects, il vous faudra faire la recherche et certainement modifier les fichiers .css manuellement.

4-7-1 - Gestion des utilisateurs

Pour accéder à la gestion des utilisateurs, il faut cliquer sur « utilisateurs » en dessous de « Paramètres ». Vous aurez alors accès à la gestion de ceux-ci :

Pour créer un utilisateur, il suffit d'entrer son login et son adresse mail. Une fois l'utilisateur créé, il faudra positionner son mot de passe. Vous pouvez créer des groupes, ceux-ci permettant de régler par exemple les droits de partage entre utilisateurs. Vous pouvez aussi mettre un quota disque à ceux-ci. Attention à ne pas mettre un utilisateur dans le groupe « admin » s‘il ne doit pas l'être.

En cliquant sur l’icône de roue crantée en bas à gauche, vous aurez des options supplémentaires, telles que l'affichage de l'adresse mail, le dossier de données, ou la provenance de l'utilisateur (base interne, connexion externe telle que LDAP).

Suppression

La suppression d'un compte via l’icône à sa droite va supprimer les fichiers de celui-ci. Vous aurez une demande de confirmation :

4-7-2 - Authentification via LDAP

Si vous utilisez un serveur LDAP, vous pourrez l'utiliser pour authentifier vos utilisateurs sur ownCloud. Il vous faudra ajouter l'applet « LDAP Integration » dans la catégorie « Integration ».

L'installation d'un serveur LDAP est présentée au chapitre 9.2 de mon livre sur le Cloud Computing.

Une fois l'applet installée, il faudra la configurer dans le menu « Paramètres ».

Dans le premier écran « Serveur », il faudra entrer :

- l'adresse du serveur : dans notre exemple ldap://127.0.0.1 (dans ce cas, un serveur LDAP installé sur la même machine que ownCloud, à adapter à votre situation), puis cocher « Détecter le port » (cela ne fonctionnera pas si vous avez changé le port par défaut) ;

- le nom d'utilisateur : dans notre cas d'exemple cn=admin,dc=developpez,dc=com ;

- le mot de passe ;

- le DN de base : dans notre cas dc=developpez,dc=com.

Une fois les éléments entrés, cliquez sur « Tester le DN de base », si vos informations sont correctes, vous aurez « configuration OK » :

Cliquez ensuite sur poursuivre, puis basculez sur l'onglet attributs de login.

Sélectionnez ensuite Autres attributs : cn :

Ne maîtrisant pas LDAP, les réglages ne sont peut-être pas optimaux, mais sont fonctionnels dans ce cas de figure.

Nous allons ensuite dans les réglages avancés :

Dans les paramètres du répertoire (2), je saisis en suite « cn » dans le champ nom d'affichage de l'utilisateur. Si ce réglage n'est pas positionné, le nom d'utilisateur qui apparaîtra sera l'UUID de celui-ci (champ LDAP entryUUID).

Dans les Attributs spéciaux (3), je saisis également « cn » dans le champ règle de nommage du répertoire utilisateur, pour que le dossier contenant les fichiers de l'utilisateur ne soit pas l'UUID.

En cas de suppression du compte dans ownCloud, ceci n’impactera pas le compte LDAP, ce qui est logique, car d'autres services peuvent être utilisés par ce compte LDAP.

En cas de suppression du compte LDAP, l’utilisateur ne pourra plus s'identifier, mais son compte reste présent dans la liste des utilisateurs ownCloud ainsi que ses données. Il suffit de recréer le compte dans l'annuaire LDAP avec le même nom pour récupérer l'accès.

Il est beaucoup plus simple de gérer l'authentification directement depuis la base ownCloud, mais cela vous obligera à maintenir plusieurs bases d'authentification en cas d'autres services utilisés tels qu'un serveur mail.

4-8 - Édition de documents en ligne

ownCloud dispose d'un connecteur OnlyOffice, ainsi que d'un connecteur Collabora.

Collabora est basé sur LibreOffice.

Dans les deux cas, il vous faudra effectuer le paramétrage depuis « Paramètres » ? « suppléments », une fois le serveur installé (hors périmètre ownCloud).

4-9 - Sauvegarde

Pour sauvegarder OwnCloud, il vous faut sauvegarder le dossier des données (dossier data) ainsi que la base de données.

4-10 - Connexion à partir du client Windows

La connexion au serveur se fait en HTTP/HTTPS :

Nous avons la demande d'authentification :

Une fois les identifiants saisis, vous aurez accès aux réglages par défaut :

La première partie permet le choix de récupérer les fichiers déjà présents sur le serveur, la seconde concerne les dossiers à synchroniser, où préciser ce que vous souhaitez synchroniser. Ce sera par défaut le dossier ownCloud stocké dans votre profil utilisateur, vous pouvez changer celui-ci.

Une fois la connexion effectuée, vous aurez une icône dans la barre des tâches, ouvrant le tableau de bord ownCloud. Vous serez par défaut sur l'onglet « Activité », montrant les derniers fichiers synchronisés.

L’icône « Paramètres » donne accès aux réglages tels que le démarrage automatique d'ownCloud quand le système démarre, et aussi l'accès à une liste des fichiers exclus.

Par défaut, les fichiers cachés ne sont pas synchronisés, il faut entrer dans la liste des exclusions pour cocher leur synchronisation.

L’icône réseau permet d'indiquer un proxy si ceci est nécessaire, et de limiter l'usage de la bande passante si vous le souhaitez.

L’icône utilisateur vous permet de changer les réglages de synchronisation, forcer la mise à jour de la synchronisation. Une autre option intéressante : la possibilité de synchroniser plusieurs comptes, dans ce cas, ownCloud va créer par défaut un autre dossier (owncloud2 dans mon cas, l'application va créer un dossier avec le nom incrémenté). Vous aurez ensuite une nouvelle icône concernant le nouvel utilisateur.

Pour ajouter un compte, il faut cliquer sur le bouton compte, puis ajouter un nouveau compte. Vous pouvez à partir de ce bouton vous déconnecter ou supprimer le compte.

Le ou les dossiers contenant les données synchronisées ne sont pas supprimés.

4-10-1 - Partage de documents

Nous avons vu comment partager un document depuis l'interface web. Il est également possible de le faire depuis l'explorateur de fichiers.

L'onglet lien public permet de générer un lien accessible depuis une URL (avec ou sans mot de passe et possibilité d'expiration), si l'administrateur ownCloud vous le permet :

Vous pourrez envoyer directement le lien par mail, le copier dans le presse-papier, etc.

Le destinataire aura un lien tel que celui-ci :

Un test de partage de fichier RTF m'a provoqué l'affichage du contenu du fichier RTF comme un document texte, alors qu'un document avec une extension inconnue va afficher un simple logo générique.

Versions des documents

Il n'est pas possible d'accéder aux versions des documents depuis le client, l'accès doit se faire depuis l'interface web.

Suppression de documents

La suppression d'un document déclenche sa suppression immédiate sur le serveur (enfin son déplacement vers la corbeille). Le document est restaurable depuis la corbeille Windows/Linux/Mac OS. Vous perdrez par contre l’historique des versions.

4-11 - Agenda partagé

Pour avoir accès à l'agenda, il faut commencer par activer l'applet correspondante. Vous trouverez celle-ci dans le market (accès réservé aux administrateurs) :

Vous aurez alors accès aux applets rangées par catégorie.

L'ordre d'affichage des icônes dépendra de votre résolution d'écran. Ne soyez donc pas surpris de les voir dans un ordre différent.

L'applet calendrier se trouve dans la section « Productivity » :

Il suffit de cliquer sur l'image de l'applet, puis sur le bouton « Installer ».

Une fois celle-ci installée, elle est disponible dans le menu en haut à gauche :

Vous pourrez ajouter des participants en appuyant sur plus :

Vous pouvez déplacer un rendez-vous par simple glisser-déplacer.

4-11-1 - Installation dans Thunderbird

Nous aurons besoin pour commencer du lien CalDAV généré par ownCloud. Nous le trouverons en cliquant sur les … à côté du nom de l'agenda :

Dans mon cas : http://192.168.56.116/remote.php/dav/calendars/test/personal/

Pour intégrer un agenda CalDAV, il vous faudra aller dans le menu fichier->nouveau->agenda

Sélectionner ensuite agenda sur le réseau :

Il faudra ensuite sélectionner « CalDAV » et entrer l'URL indiquée dans l'interface web.

Après un nom d'agenda, Thunderbird vous demandera l’identifiant et le mot de passe :

Votre agenda est ensuite disponible :

Pensez à faire attention à l'agenda où est stocké l’événement, il y a toujours un agenda local. Mettez l'agenda en ligne par défaut. Vous pouvez désactiver l'agenda local si vous ne l'utilisez pas.

En cas de déconnexion réseau, si le mode hors connexion a bien été coché lors de la création de l’agenda dans Thunderbird (par défaut), vous pourrez toujours modifier l'agenda. Lors de votre retour sur Internet, il y aura un petit ralentissement, le temps de la resynchronisation.

4-11-2 - Calendrier avec Outlook

Il nous faut installer l'application caldav synchroniser disponible sur SourceForge :

https://sourceforge.net/projects/outlookcaldavsynchronizer/

L’application requiert Visual C 2010 redistributable et .net framework 4.5 qui seront installés automatiquement si nécessaire.

Une fois l'installation terminée un onglet supplémentaire apparaîtra dans Outlook :

Ceci va ouvrir la fenêtre de gestion des profils à partir de laquelle nous allons ajouter un profil :

Nous cliquons sur le plus pour avoir l'écran suivant :

Nous restons sur « générique » et entrons ensuite les paramètres :

Je sélectionne le dossier de synchronisation du calendrier et rentre les paramètres :

Vous pouvez régler le sens de la synchronisation (bi-directionel, Outlook vers serveur, serveur vers Outlook) et la fréquence de celle-ci.

Contrairement à Thunderbird, la synchronisation se fait depuis l'agenda local (on peut sélectionner le dossier de synchronisation, il est donc possible de créer un agenda spécifique dans le fichier Outlook par défaut ou dans un fichier Outlook secondaire présent dans le profil.

Comme nous sommes en train de parler de Outlook, j'en profite pour vous informer qu'un plugin payant permet d'interfacer Outlook avec Owncloud. Celui-ci étant payant, il n'a pas été testé.

4-12 - Utilisation depuis Mac OS X ou iOS avec l'application Calendrier

L'application Calendrier (anciennement nommée iCal) synchronise les agendas sur la solution cloud d'Apple iCloud via le protocole CalDAV. Il suffit donc de se connecter via CalDAV sur le serveur ownCloud.

L'URL de connexion pour calendrier est différente que pour les autres serveurs.
Adresse normale :
http://adresse IP/remote.php/dav/
Adresse pour iOS/OS X :
http://adresse IP/remote.php/dav/principals/users/test/

Pour créer le compte, il faut aller soit dans fichier/comptes de l'application Calendrier, soit dans préférences systèmes/comptes Internet.

Vous aurez alors l'écran suivant, où il faudra sélectionner « compte CalDAV » :

Si vous passez par le menu pomme ? préférences systèmes ? comptes Internet, il faudra sélectionner « autre » sur le premier écran pour avoir accès à CalDAV (ou CardDAV pour les contacts que nous verrons plus tard).

Il faudra ensuite sélectionner manuel dans le champ « type de compte » et entrer les identifiants et l'URL de connexion :

Vous pourrez ensuite régler la fréquence de synchronisation, ainsi que les réglages d'affichage de l'agenda (heure début-fin de journée, etc.) :

4-12-1 - Partage de contacts

Il faut tout d'abord activer l'application dans ownCloud, tout comme pour l'agenda :

Tout comme pour l'agenda, une icône supplémentaire sera ajoutée dans la barre de gauche ().

Tout comme pour le calendrier, nous récupérons le lien (CardDAV) :

Dans mon exemple : http://192.168.56.116/remote.php/dav/addressbooks/users/test/contacts/

4-12-2 - Thunderbird

Nous allons utiliser l'extension Thunderbird CardBook que nous téléchargeons et installons depuis le menu « Outils » ? « modules supplémentaires ». Après redémarrage, il faudra intégrer les carnets d'adresses de base à CardBook.

Par défaut CardBook va rechercher les carnets d'adresses sur les comptes mails paramétrés. Si les services sont compatibles CardDav, CardBook chargera les contacts externes dans un carnet d'adresses.

Il faudra ensuite ouvrir l'écran CardBook par le menu « Outil » ? « CardBook », puis cliquer sur le bouton droit de la souris depuis la partie gauche :

Il faudra ensuite choisir « nouveau carnet d'adresses », sélectionner « carnet d’adresses distant » puis renseigner l'URL et les identifiant/mot de passe via le protocole CardDAV.

Le lien CardDAV est disponible dans les paramètres des contacts depuis l'interface web, comme vu au chapitre précédent.

Il vous faudra cliquer sur valider après avoir rempli les champs URL, identifiant et mot de passe pour pouvoir cliquer sur suivant. Vous pourrez changer les réglages de synchronisation depuis l’icône « Préférences », puis l'onglet « Synchronisation ».

Vous pourrez ensuite nommer le carnet d’adresses et choisir sa couleur :

Le carnet d'adresses sera alors disponible et il sera possible de régler les préférences de synchronisation en cliquant sur « Préférences » :

Pour les réglages de synchronisation :

4-12-3 - Outlook

Pour Outlook, nous avons déjà ce qu'il faut : outlookcaldavdsynchronizer, vu au chapitre sur les calendriers. Il suffit de dupliquer le profil existant via l’icône depuis le gestionnaire de profils.

Bien que son nom n'évoque que calDAV, l'application est bien compatible CardDAV.

Il faudra ensuite sélectionner le dossier Outlook pour sélectionner les contacts, et changer l'URL par le lien CardDAV.

4-12-4 - Application Apple Contacts pour OS X et iOS

Le principe est le même que pour l’application Calendrier, il faut ajouter un compte CardDAV en prenant le lien :

http://192.168.56.121/remote.php/dav/addressbooks/users/test/contacts/

Adapter l'URL à votre situation.

4-13 - Outils collaboratifs

4-13-1 - OnlyOffice – modification de documents bureautique en ligne

OnlyOffice est une suite collaborative. Il existe une version communautaire, gratuite. ownCloud fournit un connecteur pour un serveur OnlyOffice. OnlyOffice devra être installé au préalable.

OnlyOffice n'a pas été testé dans le cadre de ce tutoriel.

Sur Nextcloud, un système OnlyOffice Community peut être installé, ceci n'a pas été testé dans le cadre de ce tutoriel.

4-13-2 - Collabora

Collabora est un produit concurrent d'OnlyOffice. ownCloud et Nextcloud gèrent l'intégration d'un serveur Collabora.

4-14 - Utilisation avec un cluster de bases de données

Dans le cadre de l'utilisation d'un cluster de bases de données (MariaDB dans notre cas), vous aurez le message d'erreur suivant :

Ceci pourra être corrigé en changeant le format des journaux binaires dans les fichiers de configuration :

binlog_format = MIXED

Il faudra redémarrer le serveur SQL.

4-15 - Panne serveur

En cas de perte totale du serveur, si celui-ci n'a pas de redondance et se retrouve vide, lors de la reconnexion du poste client, celui-ci vous affichera l'avertissement suivant :

Le client ownCloud détecte que le compte distant est vide et vous propose soit de conserver le contenu du dossier de synchronisation, soit d'effacer le contenu. Si vous choisissez « conserver », ceux-ci seront resynchronisés sur le serveur, si vous choisissez « supprimer », les fichiers locaux seront supprimés. Les dossiers locaux et distants seront alors synchrones.

Pour l'agenda Outlook, le clic sur l’icône « clear cache of selected profile » des profils CalDAV Synchronizer a permis de refaire une synchronisation.

Pour Thunderbird, si la synchronisation après réinstallation pose problème, il suffira de supprimer l'agenda en faisant un clic droit ? se désabonner de l'agenda. Il vous faudra d'abord le sauvegarder en faisant un clic droit ? exporter. Une fois le compte recréé, pour importer la sauvegarde, il faudra aller dans le menu « événement et tâches » plutôt que par un clic droit de la souris. Thunderbird vous demandera dans quel agenda importer les éléments. Ceci ne sera pas nécessaire si une sauvegarde de la base ownCloud a été remontée.

Pour Calendrier Apple, le test n'a pas été fait, mais le principe est le même. Il faudra exporter le calendrier en format .ics (sélectionner « Exporter », pas archiver : une archive restaurée écrase le contenu déjà présent) pour le réimporter ci-besoin.

4-16 - Utilisation en ligne de commande

ownCloud est fourni avec un outil en ligne de commande pouvant être appelé via php occ <option> depuis le dossier contenant l'installation ownCloud. occ est également présent dans Nextcloud.

4-17 - Redondance d’une instance Nextcloud

Prérequis

Pour avoir une redondance d'une instance ownCloud, le dossier contenant les données devra être stocké dans un système de fichiers distribué. La base de données devra faire partie d'un cluster de bases de données.

Pour gérer cet aspect, je vous invite à consulter le paragraphe sur la création d'un cloud personnel.

Il est nécessaire de copier les fichiers PHP de Nextcloud depuis srv1 vers srv2 via scp.

Ensuite, il est nécessaire d’installer les dépendances de Nextcloud : php7-curl, memcached, php7-memcached.

La première connexion sur le nouveau serveur donne le message suivant :

Suite au clic :

Ceci va rajouter une entrée dans le tableau trusted_domains de config/config.php de srv1.

Il nous faut donc recopier ce fichier modifié dans srv2.

Vous pourrez ensuite utiliser un système de load balancing.

5 - YunoHost - L'autohébergement

YunoHost est une distribution incluant des logiciels packagés et ayant pour but de faciliter l'autohébergement. La distribution intègre un serveur LDAP qui sera utilisé par toutes les applications packagées pour leur authentification (via authentification unique utilisant SSO). Il intègre également un serveur mail (PostFix/Dovecot/rspamd).

Yunohost permet la gestion de plusieurs domaines.

5-1 - Installation sur machine vierge

Yunohost est fourni sous forme de DVD d’installation, basée actuellement sur Debian Buster (YunoHost version 4.0.3). Il s'agit d'un DVD d’installation qui a été personnalisé. Vous retrouverez donc les mêmes écrans qu'avec un DVD d'installation standard, mais vous ne pourrez faire aucune sélection mise à part la langue (exemple : pas d'accès au partitionnement du disque, pas de choix des paquets).

Yunohost fournit une ISO 64 bits, 32 bits, et des ISO pour Raspberry Pi ainsi que pour Orange Pi. Yunohost fournit également une image de machine virtuelle au format Virtualbox.

Il vous sera également possible de l'installer sur un système existant.

Commençons par voir la version CD :

Une fois la langue et le clavier sélectionnés, l'installation est automatique.

Vous ne pourrez pas intervenir sur le partitionnement du disque. Par ailleurs, le « expert install » retourne l'erreur :
« Le fichier prérequis nécessaire à la configuration n'a pas pu être téléchargé à l'adresse file://cdrom/simple-cd/advanced.preseeed ».

Si la machine contient des données, YunoHost effacera celles-ci sans demander de confirmation.

Au redémarrage après l'installation, vous aurez l'écran de postinstallation suivant :

Nous répondrons bien entendu par « yes ».

Nous sera alors demandé le domaine principal.

Domaine principal :
Mot de passe :

Des messages de notifications seront affichés dans la console indiquant la configuration des différents services. La machine sera prête quand vous aurez le message :

Succès ! Yunohost a été configuré

Il nous restera à régler l'adresse IP. Pour cela, il faudra ouvrir une session avec le login « admin » et le mot de passe communiqué précédemment (admin est un compte sudoer). Nous pourrons ensuite fixer l'adresse dans le fichier /etc/network/interfaces.

La suite de la configuration se passera depuis le navigateur web. À la première connexion, vous aurez une alerte du navigateur « votre connexion n'est pas privée », le certificat étant autosigné. Il vous sera possible de paramétrer vos certificats ultérieurement. YunoHost intègre la génération d'un certificat Lets'Encrypt et vous pourrez intégrer vos propres certificats émis depuis une autorité de certification si vous en possédez.

5-2 - Installation sur système existant

Une version Debian Stretch sera requise.

Nous commençons par récupérer le fichier de dépôt :

wget https://install.yunohost.org -–no-check-certificate

Ceci va télécharger un fichier index.html suivi de :

bash < index.html

Le script échouera si Apache est installé, notifiant dans les journaux que celui-ci peut entrer en conflit avec nginx, serveur web utilisé par Yunohost.

Yunohost va alors installer les paquets dont il a besoin :

Vous aurez ensuite une demande de confirmation concernant l'écrasement de fichiers de configuration, au cas où des configurations sont présentes pour les services indiqués :

Une fois l'installation des paquets terminée, il vous sera demandé de faire la postinstallation :

J'ai lancé la postinstallation depuis la ligne de commande :

yunohost tools postinstall

L'installation s'est ensuite finalisée, après avoir entré le nom de domaine et le mot de passe tout comme pour l’installation depuis l'ISO.

La version ISO utilise automatiquement LVM, il sera à votre charge de le faire de façon à pouvoir facilement augmenter l'espace de stockage, voire utiliser un volume réparti pour monter les données Yunohost.

5-3 - Prise en main

La première connexion devra se faire sur l'URL https://votre_ip/admin :

Une fois le mot de passe saisi, vous aurez l'écran suivant :

Pour gérer le certificat, il faudra aller dans le menu « Domaines », sélectionner le domaine présent, puis gérer les certificats :

Vous pourrez créer gratuitement un certificat Let's Encrypt. Si vous avez déjà vos propres certificats, il vous faudra les installer à la main depuis le terminal, l'interface graphique ne proposant que la génération d'un certificat autosigné ou let's Encrypt.

La prochaine étape sera de créer un utilisateur :

À ce stade, vous pourrez accéder à l'interface utilisateur, interface par défaut lors de l'accès :

Voici l'interface de connexion pour un utilisateur standard :

À la connexion, vous aurez un écran comme ci-dessous. Vous pouvez retourner à l'interface d'administration en cliquant sur le lien « Administration » :

Il n'y a pas beaucoup d'options actuellement au niveau de la connexion utilisateur, aucune application n'étant installée. Nous allons maintenant installer les applications que nous souhaitons utiliser.

Allons voir ce qui est disponible dans Applications (depuis l'interface d’administration) :

En cliquant sur « Installer », vous aurez une sélection d'applications par type :

Si nous cliquons par exemple sur synchronisation, nous pouvons voir qu'il est possible d'effectuer un filtrage supplémentaire (fichiers, calendriers, contacts, mots de passe, autres) :

Voici les principales applications (liste non exhaustive) :

- synchronisation de fichiers : Nextcloud, Seafile, Syncthing (pour ceux que nous verrons ultérieurement) ;

- synchronisation d'agenda : AgenDAV, Nextcloud ;

- synchronisation de contacts : Baikal (CardDAV, CalDAV), Nextcloud ;

- gestionnaires de mots de passe : bitwarden, keeweb ;

- gestionnaire de favoris : Firefox sync server ;

- CMS : Drupal, SPIP, WordPress ;

- Wiki : MediaWiki, dokuwiki ;

- Messagerie : Horde, Roundcube (YunoHost intégrant un serveur mail) ;

- CRM/ERP : Dolibarr ;

- phpMyadmin : le fameux gestionnaire de bases de données MySQL.

5-4 - Installation d'application

5-4-1 - Exemple d'installation de Nextcloud

Nous commençons par installer Nextcloud.

En sélectionnant Nextcloud, vous aurez l'écran suivant :

Vous pourrez choisir :

- le libellé de l'application tel qu'il apparaîtra dans Nextcloud ;

- le nom de domaine ;

- le chemin/l'url ;

- le compte administrateur Nextcloud : à sélectionner dans la liste des comptes existants (seul celui-ci pourra installer les applets Nextcloud) ;

- une case à cocher « Accéder au dossier personnel des utilisateurs depuis Nextcloud ».

Les réglages par défaut conviendront très bien. Je vous conseille la création d'un compte spécifique pour l'administration de Nextcloud. N'oubliez pas de cocher la case si vous souhaitez que Nextcloud accède aux données hors Nextcloud.

La version Nextcloud fournie est la version 18 (la version 19 est disponible au moment de la réalisation de ce tutoriel).

Une fois « Installer » cliqué, vous verrez la sortie de l’application un « pacman » défilant comme une barre de progression et représentant le traitement en cours. Vous pouvez voir en haut les commandes exécutées :

Si vous cliquez sur la barre, vous pourrez voir le détail :

Une fois l'installation effectuée, tous les utilisateurs auront accès par défaut à l'application. Si vous souhaitez filtrer l'accès, il faudra cliquer sur l'application et sélectionner les utilisateurs autorisés en cliquant sur « Accès » :

Depuis l'interface utilisateur, vous aurez ensuite accès à l'application :

En cliquant sur l’icône, vous aurez accès à Nextcloud directement sans devoir vous identifier. Je vous invite à revenir au paragraphe précédent pour de plus amples informations sur Nextcloud. Pour ce qui est de la gestion du calendrier (et des contacts via le protocole CardDAV), vous pourrez installer les modules de Nextcloud (choix que je privilégierais), ou utiliser d'autres applications fournies par Yunohost comme Baikal (serveur CalDAV/CardDAV)/agenDAV).

Option bien pratique : il est possible de revenir au menu des applications en cliquant sur l’icône « Yuno Host » qui vient s'afficher en bas à droite des écrans des applications. Cette fonction n'est pas accessible pour toutes les applications.

Se déconnecter de Nextcloud depuis le menu en haut à droite vous déconnectera de Yunohost et vous renverra vers l'écran de connexion de celui-ci.

Les données de Nextcloud seront stockées dans /home/yunohost.app/nextcloud/data. Et ensuite un dossier pour chaque utilisateur.

Le site web Nextcloud va lui se trouver dans /var/www/nextcloud.

Pour mettre à jour vers une version plus récente, il vous faudra activer l'applet « update notification » que vous trouverez dans (1) Applications ? (2) Applications désactivées.

Après déconnexion et reconnexion, en allant dans le menu « Paramètres » ? « administration » ? « vue d'ensemble », vous pourrez effectuer une mise à jour :

Nous pouvons voir que nous sommes en version 18 et que la version proposée est la version 18.0.4.

Cliquer sur « ouvrir le système de mise à jour » va afficher l'écran suivant :

La procédure se déclenchera via l'appui sur « Start Update ».

Une fois les opérations effectuées, Nextcloud va vous proposer de laisser ou non le mode maintenance actif. Comme nous ne souhaitons pas utiliser le mode en ligne de commande, nous choisissons « no » :

Il faudra ensuite cliquer sur « go back to your nextcloud instance… », qui vous affichera l'étape suivante :

Une fois l'opération effectuée, vous serez automatiquement redirigé vers l'interface de Nextcloud.

En modifiant le canal de mise à jour de Stable à Beta, j'ai pu avoir accès à la version 19.0.0.

Le fait de changer de version majeure peut vous exposer à la disparition de certaines applets dépréciées ou remplacées.

5-4-2 - Roundcube

Roundcube est un webmail répandu écrit en PHP. L'installation se déroule de la même façon, la seule différence étant la case à cocher concernant le plugin de synchronisation CardDAV.

Votre nom et adresse mail vous sera demandé lors du premier démarrage (mauvaise configuration de mon serveur de test ?) :

Les carnets d'adresses ne reprennent pas automatiquement les contacts YunoHost. Il semble que la configuration prévoit par défaut l'utilisation de l'application Baikal. Il devrait être possible de lier Roundcube aux contacts Netxcloud via l'ajout d'un carnet d'adresses CardDAV,

5-4-3 - WordPress

L'installation s’effectuera de la même façon. Les options spécifiques que vous pourrez choisir :

- l'utilisateur YunoHost administrateur du site ;

- la langue ;

- option multisite (décoché par défaut) ;

- option site public (coché par défaut – ne pas confondre avec les droits WordPress).

L'accès se présentera comme ceci :

L'administration se fera par défaut via [URL du wordpress]/wp-admin comme pour tout site WordPress.

À la connexion au WordPress, j'ai pu constater que la version actuelle était 5.4.

La mise à jour de WordPress, des extensions et des thèmes n'a posé aucun problème. L'installation de plugins additionnels ne posant pas non plus de problème.

Le site Wordpress sera stocké dans /var/www/wordpress.

5-4-4 - phpMyAdmin

Il vous faudra choisir le seul utilisateur autorisé à se connecter (vu comme administrateur phpMyAdmin). L’icône d'accès ne sera logiquement ajoutée que dans celui-ci, le clic dessus lancera l'interface sans demande d'authentification (authentification SSO - Single Sign-On). Taper l'URL d'accès à phpMyAdmin depuis un autre compte n'aura aucun effet.

Depuis l'interface phpMyAdmin, il n'est pas possible de sortir de celle-ci.

5-5 - Sauvegarde/restauration

YunoHost intègre un mécanisme de sauvegarde.

5-5-1 - Sauvegarde

Pour effectuer une sauvegarde, il faudra aller dans le menu idoine :

Vous pouvez voir que les sauvegardes sont stockées dans /home/yunohost.backup. Si vous souhaitez effectuer une sauvegarde à un autre endroit, il vous suffit de faire un point de montage de votre volume sur cette destination.

Nous lançons la sauvegarde :

Dans l'écran suivant, vous pourrez choisir ce que vous voulez sauvegarder :

- les données système ;

- la configuration ;

- les mails ;

- les données utilisateurs (dossier home) ;

- les applications, dans notre exemple :

- Nextcloud,

- phpMyAdmin,

- roundcube,

- WordPress.

Vous obtiendrez alors une sauvegarde sous forme d'archive .tar.gz accompagnée d'un fichier d'information .json :

Le nom du fichier correspondant à la date de celle-ci encodée, stockée dans /home/yunohost.backup/archives.

En explorant l'archive, nous retrouvons les données de Nextcloud (chemin apps/nextcloud/backup/home/yunohost.app/nextcloud/data/*), le site WordPress (apps/wordpress/backup/var/www/wordpress/*), les mails (data/home/vmail/*). Nous voyons aussi des fichiers db.sql dans les dossiers d'applications correspondant aux dumps des bases de données les concernant.

5-5-2 - Restauration

J'ai simulé une panne en réinstallant un serveur de zéro.

Une fois celui-ci réinstallé, il faut uploader la sauvegarde dans le dossier /home/yunohost.backup/archives.

Il m'a fallu créer le dossier archives dans /home/yunohost.backup. Celui-ci n'est créé que lors de la première sauvegarde.

Une fois la sauvegarde copiée, celle-ci apparaîtra dans le menu sauvegardes de YunoHost :

Cliquer dessus permettra de voir le détail :

Il suffira de cliquer « restaurer ». Comme vous pouvez le voir, celle-ci peut être partielle.

Vous aurez une demande de confirmation :

Les applications seront installées si elles sont absentes.

5-5-3 - Automatiser les sauvegardes

Pour automatiser les sauvegardes, il vous faudra utiliser la commande suivante depuis le terminal :

yunohost backup create

Cette commande va effectuer une sauvegarde complète. Il vous suffira de la lancer depuis un cron.

Si vous ne souhaitez sauvegarder qu'une application de façon à morceler les sauvegardes :

yunohost backup create --apps <nom de l'application>

Vous trouverez plus d'informations ici.

Pensez à faire des sauvegardes offline.

Pour les applications pouvant stocker beaucoup de données telles que Nextcloud, vous pouvez envisager d'utiliser un système de synchronisation comme rsync pour faire des sauvegardes incrémentales, en dehors du système de sauvegarde de Yunohost. Il est à noter que si vos utilisateurs utilisent le client Desktop pour synchroniser les données de leurs postes, celles-ci s'y trouvent. Mais je ne conseillerais pas de ne vous appuyer que sur cela pour les sauvegardes.

5-6 - Mises à jour

Le lancement de « Mises à jour » sera l'équivalent de la commande :

apt-get upgrade

Avant de mettre à jour les paquets, vous aurez leur liste.

Yunohost vous proposera aussi une mise à jour de Yunohost si présente, ainsi que des applications Yunohost installées. Pour cela, il faudra vous rendre dans le menu « outils » ? « migrations » :

Vous voyez ci-dessus un écran correspondant à une ancienne version demandant une mise à jour vers Debian Stretch.

6 - Bilan

Yunohost est une solution fournissant toutes les applications nécessaires à la création de son propre Cloud. Ynohost permet comme présenté l'intégration de NextCloud.

Dans le cadre de multiservices à héberger sur plusieurs machines avec tolérance de panne, l'utilisation manuelle des briques évoquées dans la partie création de notre propre cloud de mon livre sur le cloud sera plus judicieux. Il reste possible de stocker les données dans un système de fichiers distribué, dans une base de données sur plusieurs machines.

7 - Conclusion

J'espère que ce tutoriel vous a éclairé sur les solutions d'autohébergement.

7-1 - Remerciements

Je remercie Mickael Baron, khayyam90, LittleWhite, et Louis-Guillaume Morland pour leur relecture technique.

Je remercie Claude Leloup pour sa relecture orthographique.