logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Table des matières

nextcloud installation

Nota : Contributeurs, les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli !

Introduction

ATTENTION !

Cette documentation suit l'installation d'une Debian 9 (stretch) (il est donc largement obsolète)

  1. sans environnement de bureau (ligne de commande uniquement) et
  2. avec une connexion internet fonctionnelle !

Qu'est-ce que nextcloud ?

Nextcloud est une solution client/serveur pour héberger ses fichiers et y accéder à travers une interface conviviale au même titre que Dropbox, Google Drive, OneDrive, Amazone cloud drive et Box, pour ne citer que les solutions les plus connues.

Nextcloud est un fork (un dérivé) du projet initial qui se nomme ownCloud.
Aujourd'hui le développement de la solution Nextcloud est plus actif que celui d'ownCloud.
Ce qu'il faut retenir de la différence entre Nextcloud et ownCloud est qu'ownCloud est à présent dans une logique commerciale…

Pourquoi installer nextcloud ?

Voilà quelques années que j'estime que de ne pas pouvoir accéder à ses propres données n'importe où, n'importe quand, est très regrettable quand on sait que nous “respirons” internet.

Merci la démocratisation des smartphones ;-)

Sans être paranoïaque, Google, Apple, Microsoft & co ont suffisamment de pouvoirs. Allons-nous en plus leur confier l'accès libre à toutes nos données ? :-P

  1. Nextcloud et ses applications permettent une alternative aux chapelets Google Drive/Gmail/G.Agenda/G.Docs… ou à Microsoft les oneDrive/outlook/office365…)
  2. Nextcloud est open source, distribué gratuitement et installable sur son propre serveur.
  3. Nextcloud intègre maintenant OnlyOffice, qui permet de travailler à plusieurs sur un même texte

Installation de base

En suivant cette documentation :

  1. Vous hébergerez vos fichiers sur votre propre serveur.
  2. Vous aurez un traitement de texte, un tableur, un agenda et un client email en ligne.
  3. Vous pourrez effectuer des recherches basées sur le contenu de vos documents. (Et non que par le nom du fichier/dossier).
  4. Vous pourrez instaurer des quotas d'espaces disques aux autres usagers.
  5. Et plus, selon les applications nextcloud à venir et le temps disponible des contributeurs !

Préparation

On commence par se rendre sur le site officiel de nextcloud pour vérifier les prérequis à la solution.

Prérequis matériels

Il est dit que Nextcloud nécessite un minimum de 128MB de mémoire vive mais qu'il est recommandé d'avoir au moins 512MB.
Il est dit aussi que selon le nombre d'utilisateurs et la quantité de données à traiter, ce prérequis peut augmenter.

Memory requirements for running an Nextcloud server are greatly variable, depending on the numbers of users and files, and volume of server activity. Nextcloud needs a minimum of 128MB RAM, and we recommend a minimum of 512MB.

On ne parle ici que de la solution nextcloud de base.
L'ajout d'applications (ou plugin) feront grimper ce minimum requis.

Si votre serveur dispose de 2 à 4GB de mémoire vive et que le nombre d'utilisateurs ne dépasse pas une utilisation “familiale”, vous ne devriez pas rencontrer de problème. Autrement, il faudra peut-être user de la carte bancaire pour mettre à jour/changer son serveur ou se passer de certaines applications telle que :

  • Collabora qui permet d'avoir une suite bureautique en ligne (traitement de texte, tableur, etc)
  • [OBSOLÈTE] et/ou Nextant qui permet de scanner le contenu des documents avec fonction OCR en vu de recherches plus pertinentes.
Personnellement, je ne me suis pas encore penché sur des tests de charge mais je compléterai ces infos dès que possible.

Prérequis logiciels

Nextcloud nécessite :

  • Une base de données
  • Un serveur web avec php
  • Un certificat SSL (non mentionné mais obligatoire pour certaines applications)
  • Un nom de domaine (obligatoire pour obtenir un certificat SSL)
Comme indiqué plus haut :
cette documentation est basée sur une Debian 9 (stretch) fraîchement installée !

Cette documentation est aussi à adapter selon votre système. Pour les utilisateurs de distributions basées sur le projet Debian comme Ubuntu ou Linux Mint, l'essentiel de la procédure est valable à condition d'être sûr des montures2) récentes de ces distributions.

Je tenterai d'indiquer les endroits où vous devrez vous méfier. ;-)

Les étapes à suivre

  • Acquisition d'un nom de domaine et paramétrage
  • Installation d'un serveur de bases de données
    • Installation de MariaDB
  • Installation d'un serveur web
    • Installation du serveur web Apache2 et de PHP7
    • Création d'un virtualhost Apache pour PhpMyAdmin
    • Création d'un virtualhost Apache pour nextcloud
  • Installation des certificats SSL
    • Installation de let's encrypt
  • Installation de PhpMyAdmin
    • Création de la base de données et utilisateur nextcloud

Nom de domaine et paramétrage

Un nom de domaine permet entre autre d'accéder à “un serveur” relié au réseau internet par un nom plutôt que par une adresse IP.
Il est plus commode de taper dans son navigateur :

  • https://debian-facile.org plutôt que https://151.80.145.212.
  • Si votre serveur est hébergé chez un prestataire vous devez probablement avoir un nom de domaine compris dans votre offre. \\Autrement il faudra en faire l'acquisition.
  • Si votre serveur est hébergé en local (à votre domicile), vérifiez que vous disposez bien d'une adresse IP publique fixe ! (Seul votre fournisseur d'accès à internet peut intervenir à ce niveau.
    Attention, certains fournisseurs ne permettent pas l'obtention d'une IP fixe pour les offres “grand public”. Dans ce cas, changez d'offre, d'opérateur ou optez pour un hébergeur…)

Vous pouvez faire l'acquisition d'un nom de domaine chez n'importe quel prestataire comme :
Gandi,
OVH,
Online.net

À vous de comparer les prix.
Que vous choisissiez du *.fr, *.com, *.eu ou *.tartempion, pour la mise en place de la solution nextcloud on s'en fiche totalement.

En jetant un coup d'oeil rapide j'ai vu chez Gandi du *.space pour 1€/an…

Oubliez tout de suite l'idée d'un nom de domaine gratuit en cherchant juste à économiser de 1 à 10€ par an !

Si vous cherchez un hébergeur à petit budget pour un serveur dédié ou serveur dédié virtuel, regardez du côté de :

Attention à bien regarder les caractéristiques techniques des machines :

  1. processeur,
  2. mémoire vive et
  3. espace de stockage.

Une fois le nom de domaine acquis, accédez à son interface d'administration (voir l'email reçu de votre prestataire) pour paramétrer la zone.

L'objectif est de faire pointer votre nom de domaine vers l'adresse IP de votre serveur en créant au moins un enregistrement :

Sous domaine ou nom [*] Type [A] Value [adresse_ip_serveur]

Impossible de vous détailler la procédure ici puisque l'interface d'administration est propre au prestataire.
Au pire, contactez leur service clients.
Soyez patient, les enregistrements prennent souvent plusieurs heures avant leur prise en charge.
Vérifiez régulièrement à l'aide de la commande :

ping mon_nom_de_domaine

Exemple :
Si j'ai acheté le nom de domaine toto.fr j'écrirai :

ping toto.fr

qui doit me retourner une réponse affichant l'adresse IP de mon serveur.

Nous allons également faire une petite modification du fichier /etc/hosts pour nos futurs tests en local à l'aide de curl.

L'intérêt de réaliser des tests en local puis à distance c'est de faciliter la recherche en cas de problème ! ;-)

À l'aide de l'éditeur nano on ouvre le fichier /etc/hosts ainsi :

nano /etc/hosts

Et on rajoute ces lignes où le nom de domaine : toto.fr est à remplacer par le nom de domaine que vous avez acquis !!! :

hosts
127.0.0.1	toto.fr
127.0.0.1	madb.toto.fr
127.0.0.1	nuage.toto.fr
127.0.0.1	bureau.toto.fr
Remplacer le nom de domaine pris en exemple pour ce tuto : toto.fr par votre nom de domaine.
Remplacer aussi les noms : madb , nuage et bureau par ceux que vous allez utiliser pour accéder à votre base de données, nextcloud et collabora.

Serveur de bases de données

Nextcloud est compatible avec différentes bases de données :

A moins d'une raison particulière, restons avec MariaDB qui est libre et très répandu (cela le rend plus facile pour trouver de l'aide et pour faire face à l'installation de futurs projets).
MariaDB est un fork (dérivé) de MySQL. (MySQL est devenu la propriété d'Oracle.)

Pour les utilisateurs d'autres distributions non basés sur Debian, la commande apt ne fonctionnera pas et les paquets peuvent se nommer autrement.

En premier lieu on passe en utilisateur root en utilisant : la commande su :

 su

Installation de MariaDB

On fait une mise à jour de la liste des paquets :

apt update

Et on en profite pour mettre à jour son système :

apt full-upgrade

On lance l'installation de MariaDB :

apt install mariadb-server

Un grand nombre de paquets supplémentaires sont proposés (plus d'une trentaine), c'est normal.
On répond par 'O'ui.

Sécurisons un peu notre installation de MariaDB :
On lance un assistant prévu à cet effet :

mysql_secure_installation

Il suffit alors de répondre aux questions :

La première question vous demande de :

  • rentrer le mot de passe actuel de root.
    Il n'y en a pas ! On laisse vide et on valide par Entrer du clavier.
  • On vous demande si vous souhaitez définir un mot de passe ?
    On répond :
    Oui (Y)

    et on le saisi à la suite.

(Ne soyez pas boulet, rappelez-vous en ou mieux notez-le avec keepassx par exemple !)
[J'utiliserai le mot de passe : $MDPmaria-root% les fois où nous aurons besoin de le renseigner tout au long de cette documentation.]

Questions suivantes :

  • Supprimer les utilisateurs anonymes ?
    Oui (Y)
  • Interdire les connexions distantes pour root ?
    Oui (Y)

    Il ne pourra alors que se connecter en local.
    Si vous trouvez ça étrange, passez sur le forum ou sur le salon irc pour demander des explications détaillées.

Avant-dernière question :

  • Supprimer la base de données de test ?
    Oui (Y)

Et dernière question :

  • Recharger les droits ?
    Oui (Y)

On se connecte maintenant à MariaDB en tapant :

mysql

ou

mariadb
  • Votre prompt (début de ligne) devrait à présent apparaître sous la forme : MariaDB [(none)]>
  • Dans MariaDB on saisi les commandes suivantes :
    (ATTENTION ! Changer $PMAmdp% pour le mot de passe que vous souhaitez et 'adminDB' par le nom d'utilisateur que vous souhaitez )
    ATTENTION ! le point virgule ';' en fin de ligne compte !

    CREATE USER 'adminDB'@'localhost' IDENTIFIED BY '$PMAmdp%';

    Ce qui nous permet de créer un utilisateur MariaDB pour l'application PhpMyAdmin à venir.

  • Puis on lui donne tous les droits :
    GRANT ALL PRIVILEGES ON *.* TO 'adminDB'@'localhost' WITH GRANT OPTION;
  • On réinitialise pour que ce soit pris en compte :
    FLUSH PRIVILEGES;
  • * Enfin, on sort de MariaDB :
    exit
Bizarre, on a installé MariaDB mais toutes les commandes font référence à MySQL ?
C'est simplement que MariaDB garde une compatibilité maximum avec ce qui a été créé initialement pour MySQL !

Installation d'un serveur web

Là encore, nextcloud est compatible avec au moins deux serveurs web différents :

Nginx se dit moins gourmand en ressource mais même si Apache peut se montrer plus gourmand, il offre l'avantage d'être plus populaire (plus facile de trouver de l'aide) et plus complet.
(Penser à de futurs projets…) ;-)

Qu'est-ce que PHP ?

PHP est un langage de programmation très populaire pour la réalisation de site internet dynamique.
Les sites développés dans ce langage nécessitent d'être hébergés sur un serveur ayant PHP d'installé.

Si vous voulez en savoir plus, direction : Wikipédia !

Apache2 et PHP7

Là, on ne va pas s'embêter on va tout installer en même temps. (Le serveur web Apache, PHP7 et ses modules.)

Pour les utilisateurs d'autres distributions non basées sur Debian :
la commande apt ne fonctionnera pas et les paquets peuvent se nommer autrement !
apt install curl apache2 php7.4 php7.4-mysql php7.4-mbstring php7.4-gd php7.4-json php7.4-curl php7.4-mbstring php7.4-intl php7.4-mcrypt php-imagick php7.4-xml php7.4-zip

En s'installant, Apache2 crée automatiquement un premier virtualhost et une page web.
Parfait, ça va nous permettre de tester rapidement si l'installation est correcte :
Vérification de fonctionnement d'Apache2 en local en tapant :

curl http://localhost | grep title

Vous devriez avoir en retour :

Apache2 Debian Default Page: It works

Si quelqu'un a un lien à soumettre concernant l'utilisation de curl. FIXME

Pour les utilisateurs d'autres distributions non basées sur Debian, les répertoires seront peut-être différents.
  1. On continue en testant la prise en charge de PHP :
  2. On créé un fichier test.php contenant la fonction phpinfo() :
    echo "<?php phpinfo(); ?>" >> /var/www/html/test.php
  3. On vérifie que Apache2 nous délivre correctement le fichier :
    curl http://localhost/test.php | grep

    En retour on doit avoir :

    <title>phpinfo()</title><meta name="ROBOTS"

Si la configuration réseau du serveur est bien paramétrée, vous devriez accéder aux deux pages testées depuis un poste distant et un navigateur.

Dans un navigateur, en tapant l'adresse du serveur.
Exemples :

  • http://toto.fr et
  • http://toto.fr/test.php

ou son adresse IP.
Exemples:

vous devriez voir une page Apache2… et PHP… .

(Voir illustrations ci-dessous) :

Illustration Apache 2 :



Illustration PHP :


Création d'un virtualhost Apache pour PhpMyAdmin

Clairement, cette documentation n'a pas vocation à traiter toutes les possibilités qu'offre Apache2. Un bookin ne suffirait pas…
Cette documentation ira donc à l'essentiel pour l'objectif fixé : installer nextcloud.
Si vous souhaitez en savoir plus, consulter :

Qu'est-ce qu'un virtualhost Apache ?

Apache (comme d'autres serveurs web) est capable de servir virtuellement une infinité de sites sur une même machine/instance. Ainsi, http://toto.fr, http://bidule.com et http://trucmuche.eu peuvent très bien se trouver sur la même machine/instance. On créé des virtualhost pour dissocier des sites, qui pourront alors recevoir des paramètres propres à chacun. Notre objectif ici étant d'héberger l'application PhpMyAdmin et de s'y connecter en entrant dans le navigateur :
http://madb.toto.fr ou http://phpmyadmin.toto.fr.

Qu'est-ce que PhpMyAdmin ?

Nous avons installé il y a un instant le serveur de bases de données MariaDB.
On pourrait très bien gérer l'intégralité de notre serveur de bases de données en ligne de commande mais une erreur peut être commise et en cas de problème une personne n'ayant aucune connaissance du langage SQL aura bien du mal à se sortir d'affaire. :?:

Pour un néophyte, il est alors plus prudent de disposer d'une interface graphique plus parlante que par exemple :

UPDATE matable SET nom = 'Bobo' WHERE id = 1;\\

Alors qu'avec une interface graphique un simple clic sur le bouton Modifier fera l'affaire.

L'interface graphique que l'on installera est :

Il existe d'autres solutions, voir “adminer”

Pour les utilisateurs d'autres distributions non basées sur Debian, les répertoires seront peut-être différents.

L'idée est d'obtenir http://madb.toto.fr mais si “madb” ne vous plait pas, vous changez chaque fois que “madb” apparaît dans ce texte hein..! ^_^

  1. On commence par créer le dossier qui accueillera très bientôt phpmyadmin :
    mkdir /var/www/madb
  2. On duplique le fichier de configuration du virtualhost par défaut pour en créer un nouveau :
    cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/madb.conf
  3. On crée un lien symbolique du nouveau fichier pour qu'il soit chargé par le serveur Apache à son redémarrage :
    ln -s /etc/apache2/sites-available/madb.conf /etc/apache2/sites-enabled/madb.conf
  4. Puis on modifie avec nano le fichier original du lien symbolique… (celui situé dans /etc/apache2/sites-available/…)
    Et si vous vous trompez, ben… ça revient au même :-P Vous corrigez ici :
    nano /etc/apache2/sites-available/madb.conf
Pour plus d'info sur les liens symboliques.

Dans notre fichier de configuration, à l'aide de Nano nous allons juste décommenter et renseigner ServerName et DocumentRoot ainsi :

madb.conf
<VirtualHost *:80>
        ServerName madb.toto.fr
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/madb
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
ATTENTION !!! Une fois les modifications faites, pensez à sauvegarder !

On crée un fichier qui nous permettra de faire un test dans un instant :

echo "Vhost madb OK!" >> /var/www/madb/index.php

On redémarre le serveur Apache (pour qu'il prenne en charge le virtualhost créé) :

systemctl restart apache2

Et on teste :

curl http://madb.toto.fr

On devrait avoir en retour :

Vhost madb OK!

Et :

curl http://toto.fr | grep title

Devrait nous donner :

<title>Apache2 Debian Default Page: It works</title>

Création d'un virtualhost Apache pour nextcloud

Ben… On va refaire presque tout pareil…

Pour les utilisateurs d'autres distributions non basées sur Debian, les répertoires seront peut-être différents.

L'idée est d'obtenir http://nuage.toto.fr mais si nuage ne vous plaît pas, vous changez chaque fois que nuage apparaît hein..! =)

  1. On commence par créer le dossier qui accueillera très bientôt nextcloud :
    mkdir /var/www/nuage
  2. On duplique le fichier de configuration du virtualhost par défaut pour en créer un nouveau :
    cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/nuage.conf
  3. On créé un lien symbolique du nouveau fichier pour qu'il soit chargé par le serveur Apache à son redémarrage :
    ln -s /etc/apache2/sites-available/nuage.conf /etc/apache2/sites-enabled/nuage.conf
  4. Puis on modifie avec nano le fichier original du lien symbolique… (celui situé dans : /etc/apache2/sites-available/…) :
    nano /etc/apache2/sites-available/nuage.conf
    nuage.conf
    <VirtualHost *:80>
            ServerName nuage.toto.fr
            ServerAdmin webmaster@localhost
            DocumentRoot /var/www/nuage
            ErrorLog ${APACHE_LOG_DIR}/error.log
            CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
  5. On créé un fichier qui nous permettra de faire un test dans un instant :
    echo "Vhost nuage OK!" >> /var/www/nuage/index.php
  6. On redémarre le serveur Apache (pour qu'il prenne en charge le virtualhost créé) :
    systemctl restart apache2
  7. Et on teste :
    curl http://nuage.toto.fr

    On devrait avoir en retour :

    Vhost nuage OK!
  8. Et enfin :
    curl http://toto.fr | grep title

    Devrait encore nous donner :

    title>Apache2 Debian Default Page: It works</title>

Installation des certificats SSL

Il y aurait bien à dire sur les certificats (SSL) mais, je n'en ai pas vraiment les compétences, ni le courage.
Ce qui est communément admis, c'est qu'aujourd'hui un site non https (communication crypté) n'a presque plus lieu d'être.
C'est d'autant plus vrai quand on sait que la case porte feuille n'est plus obligatoire et que nous nous apprêtons à disposer de nos fichiers (peut-être important) à travers internet…

Installation de let's encrypt

Qu'est-ce que //Let's encrypt// ?

L'introduction de wikipédia est parfaite :
Let's Encrypt est une autorité de certification.

Cette autorité fournit des certificats gratuits au moyen d'un processus automatisé destiné à se passer du processus complexe actuel impliquant :

  1. la création manuelle,
  2. la validation,
  3. la signature,
  4. l'installation et
  5. le renouvellement des certificats pour la sécurisation des sites internet.
Pour les utilisateurs d'autres distributions non basées sur Debian, la commande apt ne fonctionnera pas et les paquets peuvent se nommer autrement.

On démarre sont installation

apt install letsencrypt python-certbot-apache python-certbot-doc python-acme-doc python-configobj-doc python-cryptography-doc python-cryptography-vectors python-enum34-doc python-funcsigs-doc python-mock-doc python-openssl-doc python-psutil-doc doc-base python-socks python-setuptools-doc python-ntlm

Il y a du monde ! Au moins, let's encrypt ne manquera de rien pour faire son job…

Et on le lance :

letsencrypt

En retour vous aurez quelque chose de similaire à :

Which names would you like to activate HTTPS for?
-------------------------------------------------------------------------------
1: madb.toto.fr
2: nuage.toto.fr

Let's encrypt a automatiquement trouvé nos virtualhost.
Appuyer sur entrer pour le qu'il s'occupe de tous virtualhost détectés.

  1. Entrez une adresse email valide si vous le souhaitez. (C'est préférable)
  2. On accepte les Conditions “qu'on ne lit jamais”… (On tape A)
  3. Puis on nous demande si on utiliser exclusivement HTTPS ou non.
    Pour moi ça sera Oui touche 2 , mais vous faites comme vous voulez.
 Please choose whether HTTPS access is required or optional.
 -------------------------------------------------------------------------------
 1: Easy - Allow both HTTP and HTTPS access to these sites
 2: Secure - Make all requests redirect to secure HTTPS access
 -------------------------------------------------------------------------------
 Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

Et automatiquement, let's encrypt va modifier la configuration de vos virtualhost et planifier l’obtention de nouveau certificats avant leur expirations, etc.

Nous allons maintenant jeter un coup d'oeil à nos fichiers de configuration des virtualhosts.

ls -l /etc/apache2/sites-enabled/

Résultat :

madb-le-ssl.conf

Résultat :

nuage-le-ssl.conf

Parfait ! Let's Encrypt nous a bien créé les fichiers ^_^

On teste. (Soyez attentif, ce coup-ci je teste avec http“S”) :

curl https://madb.toto.fr

Retour :

Vhost madb OK!
curl https://nuage.toto.fr

Retour :

Vhost nuage OK!

Installation de PhpMyAdmin

Pour les utilisateurs d'autres distributions non basées sur Debian, les répertoires seront peut-être différents.

On télécharge la dernière version de phpmyadmin. Pour ça, encore faut-il se rendre sur le site officiel :

avec un navigateur et trouver le lien de téléchargement de la dernière version.
À ce jour, sur la page d'accueil, premier bouton en haut à droite. (Que ce soit avec firefox, chrome ou autre logiquement : Clic droitcopier l'adresse du lien pour le coller dans notre terminal précédé de wget.
Ce qui donnerait à l'heure actuelle :

wget https://files.phpmyadmin.net/phpMyAdmin/4.7.3/phpMyAdmin-4.7.3-all-languages.zip

Une fois le téléchargement terminé, on décompresse l'archive obtenue dans un dossier nommé phma du répertoire courant.

Attention à adapter la commande avec le nom du fichier que vous avez obtenu.
Aujourd'hui c'est phpMyAdmin-4.7.3-all-languages.zip, demain le fichier se nommera autrement… tartempion.zip
unzip phpMyAdmin-4.7.3-all-languages.zip -d phma

On copie le tout dans le dossier créé pour accueillir l'application. (Attention à remplacer madb si vous n'avez pas fait ce choix… :!: :

cp -r phma/phpMyAdmin-4.7.3-all-languages/* /var/www/madb/

On modifie le propriétaire du dossier madb et de ses enfants pour l'utilisateur système www-data (Utilisateur générique utilisé par Apache) :

chown -R www-data:www-data /var/www/madb/

On modifie les droits pour le dossier madb et tous les sous-dossiers du dossier madb :

find /var/www/madb -type d -exec chmod 755 {} +

On modifie les droits pour tous les fichiers enfants du dossier madb

find /var/www/madb/ -type f -exec chmod 644 {} +

On duplique l’exemple de fichier de configuration de phpmyadmin en un fichier qui sera chargé :

cp /var/www/madb/config.sample.inc.php  /var/www/madb/config.inc.php

On ouvre le fichier avec l'éditeur nano :

nano /var/www/madb/config.inc.php
Pour en savoir plus “unzip”, “find”, “chown” et “chmod”.

Si quelqu'un a un lien concernant l'utilisation de “unzip”.FIXME

Et on change juste une ligne, on renseigne une clef qui sera utilisée pour crypter les Cookies du navigateur :

config.inc.php
$cfg['blowfish_secret'] = 'je-mets-ce-que-je-veux'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

On teste le fonctionnement avec un navigateur en se rendant à l'adresse :
https://madb.mon_domaine (Ex: https://madb.toto.fr).
Ce qui devrait nous afficher une page d'identification et une fois connecté avec le compte adminDB, l'interface complète pour gérer les bases de données. (Voir illustrations ci-dessous) :

Illustration login PhpMyAdmin :



Illustration page PhpMyAdmin :


Base de données et utilisateur nextcloud

Maintenant que nous avons une interface conviviale pour gérer MariaDB, dans PhpMyAdmin :

  • Cliquer en haut sur Comptes utilisateurs
  • Dans le cadre Nouvel utilisateur, cliquer sur Ajouter un compte utilisateur

Un formulaire s'affiche :

  • Nom d'utilisateur : nuage (ou nextcloud ou ce que vous voulez)
  • Nom d'hote : (Cliquer sur le menu déroulant et sélectionner Local)
  • Mot de passe : On clique sur Générer (attention à bien le noter) où on en entre un.
J'utiliserai $NUAGEmdp% pour cette documentation.
  • Dans le cadre Base de données pour ce compte d'utilisateur : On coche les deux cases.
  • Et on fini en cliquant tout en bas à droite sur Executer.

Installation de Nextcloud

Les étapes

  • Installation de l'application maîtresse (Nextcloud)
  • Installation de l'application Dashboard (Tableau de bord)
  • [ OBSOLÈTE ] Installation de l'application Nextant (Scan du contenu des documents .odt, .doc, .ods, .pdf, …) [/ OBSOLÈTE FIN ]
  • Installation de l'application Collabora Online (Suite bureautique)
  • Autres applications
L'installation des applications autres que l'application maîtresse est facultative.
Que ce soit par inutilité ou par manque de ressource sur le serveur, vous pouvez ignorer les chapitres correspondant à l'installation de chaque application non souhaitée.

Je répète que les applications [ OBSOLÈTE ] Nextant [/ OBSOLÈTE FIN ] et Collabora sont gourmandes en ressources !

Installation de l'application maîtresse (Nextcloud)

La procédure est similaire à l'installation de PhpMyAdmin et comme la plupart des applications web que l'on souhaite installer:

  • On télécharge l'archive et on la décompresse dans le dossier du virtualhost souhaité.

Pour trouver le lien de téléchargement, le plus simple est de se rendre sur le site officiel de Nextcloud avec un navigateur.

Pour les utilisateurs d'autres distributions non basées sur Debian, les répertoires seront peut-être différents.
  1. Téléchargement de l'archive Nextcloud. : <note important>(Lien actuel. Le lien peut changer dans le temps) </note>
    wget https://download.nextcloud.com/server/releases/nextcloud-12.0.2.zip
  2. On décompresse l'archive obtenue. (Le nom de l'archive dépend de ce que vous avez téléchargé.) :
    unzip nextcloud-12.0.2.zip -d nc
  3. On copie les fichiers décompressés dans le dossier du virtualhost prévu pour accueillir nextcloud. (Dans mon cas nuage.) :
    cp -r ./nc/nextcloud/* /var/www/nuage
  4. On copie également les deux fichiers cachés (fichiers commençant par un point : .fichier) :
    cp ./nc/nextcloud/.htaccess /var/www/nuage/.htaccess
    cp ./nc/nextcloud/.user.ini /var/www/nuage/.user.ini
  5. On modifie le propriétaire du dossier nuage et de ses enfants pour l'utilisateur système “www-data”. (Utilisateur utilisé par Apache) :
    chown -R www-data:www-data /var/www/nuage
  6. On modifie les droits pour le dossier “nuage” et tous les sous dossiers du dossier nuage :
    find /var/www/nuage -type d -exec chmod 755 {} +
  7. On modifie les droits pour tous les fichiers enfants du dossier nuage :
    find /var/www/nuage/ -type f -exec chmod 644 {} +

A l'aide d'un navigateur, on se connecte via l'adresse :
https://nuage.nom_domaine
Exemple: https://nuage.toto.fr
Et un formulaire devrait apparaître pour nous permettre de créer un administrateur pour la solution Nextcloud et d'entrer les informations nécessaires pour que Nextcloud utilise la base de données nuage créée précédemment.

Voir illustration ci-dessous :



Et on renseigne les informations demandées :

  • Nom d'utilisateur : Administrateur (Ou Toto… On met le nom qu'on veut…
    Il s'agit ici d'un utilisateur Nextcloud et de rien d'autre.
    ATTENTION ! Ce n'est donc pas un utilisateur système ni un utilisateur MariaDB ! Cet administrateur est un utilisateur qui aura le droit de modifier les paramètres de Nextcloud à travers l'interface Nextcloud uniquement.
  • Mot de passe : $ADMIN-NCmdp% (Vous mettez le passe ce que vous voulez.)
  • Répertoire des données : /var/www/nuage/data (Je n'évoquerai pas l'utilisation du répertoire autre que celui par défaut.)
  • Utilisateur de la base de données : nuage
    (Il s'agit ici de l'utilisateur que vous avez créé avec PhpMyAdmin).
  • Mot de passe : $NUAGEmdp%
    (Il s'agit ici du mot de passe que vous avez créé avec PhpMyAdmin pour ce même utilisateur.)
  • Nom de la base de données : nuage
    (Normalement elle porte le même nom que l'utilisateur créé avec PhpMyAdmin).
  • Hote de la base de données : localhost
  • Enfin, on clique sur terminer l'installation Et si tout a bien été renseigné, vous devriez obtenir le résultat suivant dans votre navigateur :


Voir illustration ci-dessous :


Voir illustration ci-dessous :

Si en parcourant l'interface, vous apercevez des avertissements dans : AdministrationParamètres de base les cas seront traités dans un autre chapitre.

Planification des tâches en fond

Pour fonctionner correctement, Nextcloud doit effectuer régulièrement certaines opérations.
Ces opérations se feront en tâche de fond, encore faut-il les mettre d'abord en place. m(

Dans l'interface (web) d'administration de Nextcloud se trouve dans les paramètre de base , un cadre Tâches de fond.
A côté de ce titre, une pastille rouge nous indique qu'il y a un problème.
On sélectionne l'option Cron.
Puis dans le terminal du serveur :

Pour les utilisateurs d'autres distributions non basées sur Debian, les répertoires seront peut-être différents.
  1. On enregistre une tâche cron exécutée en tant qu'utilisateur système www-data :
    crontab -u www-data -e
  2. Il se pourrait qu'une question vous soit posée :
    1. Retour possible : Select an editor. To change later, run 'select-editor'.
    2. Retour possible : 1. /bin/nano ←— easiest.
    3. Retour possible : 2. /usr/bin/vim.basic
      En fait, crontab vous demande ici quel éditeur souhaitez-vous utiliser ?
      Tapez le numéro de l'éditeur souhaité. (Nano étant le plus simple.)
    4. Un fichier crontab temporaire va s'ouvrir. Nous n'avons qu'une ligne à ajouter :
      crontab
      */15  *  *  *  * php -f /var/www/nuage/cron.php
  3. On vérifie que le changement a bien été pris en compte :
    crontab -u www-data -l

    Dans le retour repérer la présence de :

    crontab
    */15  *  *  *  * php -f /var/www/nuage/cron.php
  4. On vérifie que notre tâche s’exécute correctement :
    tail -f /var/log/syslog</

    (Voir tuto commande tail ici.)
    Toutes les 15 minutes une ligne ressemblant au résultat ci-dessous devrait s'afficher :

    Aug 23 13:15:01 nextcloud CRON[29242]: (www-data) CMD (php -f /var/www/nuage/cron.php)
    Aug 23 13:30:01 nextcloud CRON[29252]: (www-data) CMD (php -f /var/www/nuage/cron.php)
  5. On sort de l'outil tail avec la combinaison de touches : CTRL c
    • Si, en-dessous de :

      Aug 23 13:30:01 nextcloud CRON[29252]: (www-data) CMD (php -f /var/www/nuage/cron.php)

      vous repérez le message :

      (CRON) info (No MTA installed, discarding output)

      c'est que vous êtes probablement trompé dans le chemin d'accès du fichier cron.php !
      Ce fichier se trouve dans le dossier où nous avons installé Nextcloud : /var/www/nuage
      Si vous avez donné un autre nom au dossier il vous faudra au moins remplacer nuage.
      Pour apporter la correction à votre tâche cron on répète la même commande :

      crontab -u www-data -e


      Et on recontrôle…

Si on retourne dans l'interface (web) d'administration de Nextcloud, la pastille est passée au vert. Tâches de fond

Installation de l'application Dashboard (Tableau de bord)

À ce jour, on ne peut pas dire que Nextcloud regorge d’applications additionnelles. Pour autant, il y a déjà de quoi satisfaire la majorité des besoins. =)

L'installation d'applications additionnelles se fait en général en quelques clics, comme nous allons le voir pour l'installation de Dashboard. En revanche, d'autres applications sont bien plus lourdes à mettre en place comme nous le verrons avec l'installation de OBSOLÈTE-Nextant et de Collabora.

Avant d'installer une application, pensez à lire sa description et sa documentation.
Si aucun avertissement ou consigne n'est indiqué, c'est probablement que l'application peut s'installer sans manipulation particulière (Comme Dashbord donc…).

Avant de traiter le cas de Dashboard, nous allons rapidement activer une application fort utile : Auditing / Logging.
Cette application (installée mais désactivée par défaut) fournira en toute simplicité quelques informations sur les erreurs et avertissements générés par Nextcloud.
On se rend dans l'interface de gestion des applications en cliquant en haut à droite sur l'engrenage et on sélectionne Applications.

  1. La liste de vos applications installées s'affiche.
  2. On défile vers le bas pour activer : Auditing / Logging.
    (L'interface de Auditing / Logging sera alors accessible dans l'interface d'administration après reconnexion.)

Qu'est-ce que Dashboard ?

Dashboard est un tableau de bord offrant une visualisation regroupée et résumée des derniers événements de votre espace Nextcloud.

Pour installer Dashbord, on retourne dans :

  1. Applications. Engrenage → Applications, (je ne le répéterai plus) :-)
  2. puis dans le volet de gauche sur Outils.
  3. Repérez Dashbord et cliquez sur le bouton Activer.
Le mot de passe de l'administrateur Nextcloud vous sera demandé même si vous êtes connecté en tant que tel.

L'installation terminée, une nouvelle icône se placera dans la barre supérieure.
Cliquez dessus pour afficher le tableau de bord qui sera sûrement vide pour le moment.

Voir illustrations ci-dessous :





Installation de l'application Nextant

OBSOLÈTE

Qu'est-ce que Nextant ?

Comme indiqué plus haut, Nextant permet de scanner le contenu des documents avec fonction OCR sur les fichiers de type image en vu de recherches plus pertinentes.

Exemple concret :

Dans mon espace Nextcloud je créé un fichier texte nommé Villes.txt dans lequel figure une liste de villes ainsi :

Paris
Marseille
Toulouse
Nice

En faisant une recherche dans Nextcloud avec comme critère le mot villes, mon fichier ressort sans problème.
Par contre, en faisant une recherche avec comme critère Paris, Toulouse ou n'importe quelle ville présente dans mon fichier Villes.txt, Nextcloud ne trouvera aucun résultat.
Mais avec Nextant d'installé, mon fichier Villes.txt me sera bien proposé ! ;-)

Pour installer Nextant, rendons-nous dans : ApplicationsFichiers
et on clique sur Afficher la description.
Pffiou… Il y a de la lecture… 8-o

On peut y lire le potentiel de Nextant (emplacements, formats de fichiers reconnus…) avec des mises en garde pour certains formats de fichiers :

  • Fichiers image : Nécessite Tesseract d'installé.
  • Fichiers PDF sans couche texte (Plus connu sous le nom de PDF à la con) : Nécessite Tesseract d'installé. (Et développement en cours d'amélioration.)
Mais surtout, on y trouve la procédure d'installation qui nécessite quelques manipulations.
Appuyer sur le bouton Active ne suffira pas !

La procédure d'installation nous indique les étapes à suivre :

  1. Installation du servlet Solr.
  2. Installation de Tesseract (Fonction OCR facultative).
  3. Téléchargement et installation de l'archive Nextant
  4. Activation et configuration de l'application.
  5. Lancement d'un scan et planification.
OBSOLÈTE FIN !

Installation du servlet Solr

OBSOLÈTE - Dans nextcloud 13 ils ont inclus un autre moteur 'Fullsearch ellastic' (ou truc dans le genre) qui permet de se passer de Solr

Qu'est-ce que le servlet Solr ?

Honnêtement, j'en sais trop rien ! ^_^

Tout ce que je sais, c'est que Nextant en a besoin et en essayant de se renseigner un minimum par ce lien :

On apprend que servlet est une extension du serveur web reposant sur :

  • Java (donc il faudra l'installer aussi…) et que
  • Solr \\est spécifiquement conçu pour de la recherche.

Nous installerons le servlet Solr en mode service pour une disponibilité permanente.

Pour les utilisateurs d'autres distributions non basées sur Debian, la commande apt ne fonctionnera pas et les paquets peuvent se nommer autrement.
# Commençons pas installer Java Runtime Environment (JRE) via le meta-paquet "default-jre"
apt install default-jre
# Après l'installation de tous les paquets on effectue une petite vérification de version
java -version
#Retour : 1.8.0_141 (version à ce jour)
# On télécharge la dernière version de Solr depuis le site officiel. (Cherchez le lien de téléchargement en allant sur le site.)
# https://lucene.apache.org/solr/mirrors-solr-latest-redir.html
wget http://apache.crihan.fr/dist/lucene/solr/6.6.0/solr-6.6.0.zip
# On décompresse l'archive obtenue dans un dossier que l'on nommera "solr"
unzip solr-6.6.0.zip -d solr
# Et on l'installe via son script d'installation en indiquant où se trouve l'archive téléchargée.
./solr/solr-6.6.0/bin/install_solr_service.sh ./solr-6.6.0.zip
# Retour : Service solr installed.
# Retour : solr.service - LSB: Controls Apache Solr as a Service
# Appuyer sur la touche "Q" du clavier à la fin de l'installation

Note :

Solr installe également une interface de gestion web disponible par défaut via :
http://toto.fr:8983.
À vous de sécuriser l'accès à cette interface avec iptables par exemple.

Autrement, vous pouvez simplement éditer le fichier /opt/solr/server/etc/jetty-http.xml pour rajouter (à la ligne 36 dans ma version) le paramètre : default=“localhost” ainsi :

<Property name="jetty.host" default="localhost" />

Et si vous souhaitez tout de même conserver l'accès à cette interface en la protégeant par un mot de passe, rendez-vous sur le :

  • wiki (en anglais) du projet.
# On redémarre Solr
systemctl restart solr
# On installe rapidement l'outil "sudo" qui nous permettra de lancer des tâches pour le compte d'autres utilisateurs système
apt install sudo
# On créé un core dédié à Nextant tournant sous l'utilisateur système "solr". 
# (Utilisateur créé automatiquement lors de l'installation de solr)
sudo -u solr /opt/solr/bin/solr create -c nextant
# Retour : Creating new core 'nextant' using command:
# Retour : "status":0, <--(0 = tout s'est bien passé)
OBSOLÈTE FIN !

Installation de Tesseract

[ OBSOLÈTE ]

Qu'est-ce que Tesseract ?

Tesseract est un moteur de reconnaissance optique de caractère dit OCR.

C'est ce programme qui sera utilisé par Nextant pour analyser le contenu d'un fichier image ou fichier PDF (à la con) et tenter d'y trouver des caractères (du texte donc) et l'indexer.

L'efficacité du moteur dépend évidement de la qualité des images ou de numérisation, et de la qualité/taille des caractères s'y trouvant pour chaque fichier analysé.

  • Une facture numérisée en bonne qualité (~200ppp) aura toutes les chances d'avoir son contenu d'indexé.
  • En revanche, on peut facilement imaginer qu'une ordonnance manuscrite d'un médecin, même de super bonne qualité, aura peu de chance d'avoir son contenu indexé si ce n'est, l'en-tête et le pied de page ! :-P

Je rappelle que ce que je nomme PDF à la con sont les PDF générés par un scanner lambda ou imprimante virtuelle.
Ces processus de création de fichiers PDF ne font en général qu'une photo de chaque page du document.
De ce fait, en vulgarisant, ces PDF ne sont que des images qu'on visualise sous forme de pages.

Tous les fichiers PDF n'ont pas cette caractéristique. :-D
Certains sont conçus via des processus qui permettent d'insérer le texte dans la structure du PDF.
Ces PDF ci, n'auront donc pas besoin de passer par la moulinette Tesseract et seront par conséquent plus facilement “indexables”.

Pour les utilisateurs d'autres distributions non basées sur Debian, la commande apt ne fonctionnera pas et les paquets peuvent se nommer autrement.
# On installe Tesseract et le fichier de langue fra. 
# (Si vous avez des documents dans d'autres langues, ajoutez les tesseract-ocr-eng, tesseract-ocr-deu, tesseract-ocr-spa, ...)
apt install tesseract-ocr tesseract-ocr-fra

Voilà, voilà…
Tout ce blabla pour ça ?

[ OBSOLÈTE FIN ]

installation de l'archive Nextant

OBSOLÈTE

On choppe le lien de téléchargement en se rendant à l'adresse :

Pour les utilisateurs d'autres distributions non basées sur Debian, les répertoires seront peut-être différents.
# On lance son téléchargement depuis le serveur
wget https://github.com/nextcloud/nextant/releases/download/v1.0.8/nextant-1.0.8.tar.gz
# On créé un dossier
mkdir nxta
# On lance la décompression
tar -zxvf nextant-1.0.8.tar.gz -C ./nxta
# On copie le dossier "nextant" obtenu dans le répertoire "app" de Nextcloud. (Pensez à remplacer "nuage" par le nom de votre dossier.)
cp -r ./nxta/nextant /var/www/nuage/apps/
# On modifie le propriétaire
chown -R www-data:www-data /var/www/nuage/apps/nextant
# Ainsi que les droits au niveau des dossiers
find /var/www/nuage/apps/nextant -type d -exec chmod 755 {} +
# et des fichiers.
find /var/www/nuage/apps/nextant -type f -exec chmod 644 {} +

Activation et configuration de l'application

OBSOLÈTE SUITE

Dans Nextcloud (gestion des applications), nous pouvons activer l'application Nextant que vous trouverez dans la catégorie Fichiers.
On se rend ensuite dans l'administration de Nextcloud, puis dans Paramètres supplémentaires. Vous trouverez alors un cadre réservé à la configuration de Nextant. Par défaut, la configuration doit correspondre. On clique sur Tester et sauvegarder pour être fixé. (Voir illustration ci-dessous)

Par défaut, les fichiers PDF seront analysés mais pas les fichiers images.
Si vous souhaitez modifier cela, dans la partie Indexer les fichiers se trouve un lien Configuration des filtres. En cliquant dessus vous pourrez cocher “Image (Jpeg, Tiff)”.
Ne touchons rien d'autre pour le moment…

Première vérification
Retournons dans notre espace de gestion des fichiers. A l'installation, Nextcloud nous a placé un fichier PDF qui se nomme “Nextcloud Manual.pdf”. Dans ce fichier se trouve à plusieurs reprise le texte “Configuring two-factor authentication”.
Regardons en entrant “Configuring two-factor authentication” (sans les guillemets) dans le champ de recherche de Nextcloud, si le fichier “Nextcloud Manual.pdf” nous est proposé.
… Nada !
C'est normal et c'est le résultat attendu.

Lancement d'un scan manuel

OBSOLÈTE SUITE

Nous allons exécuter un premier scan (première indexation) de Nextant. Il faut savoir qu'au-delà de l'interface web, Nextcloud s'administre également en ligne de commande via son script “occ”. Ce script est disponible dans le répertoire d'installation de Nextcloud. (Dans mon cas : /var/www/nuage/occ). Lorsque vous utilisez ce script, utilisez toujours l'utilisateur “www-data”. (L'utilisateur Apache)

Pour les utilisateurs d'autres distributions non basés sur Debian, les répertoires seront peut-être différents.
# On autorise l’exécution du script occ par son propriétaire (www-data)
chmod 744 /var/www/nuage/occ
# On lance le premier scan de nextant
sudo -u www-data /var/www/nuage/occ nextant:index
# Vu le peu de fichiers, ça devrait aller très vite
# Retour : 4 file(s) processed ; 0 orphan(s) removed
# Retour : 4 documents indexed ; 4 fully extracted

Nouvelle vérification
Retournons dans notre espace de gestion des fichiers. Regardons en entrant “Configuring two-factor authentication” (sans les guillemets) dans le champ de recherche de Nextcloud, si le fichier “Nextcloud Manual.pdf” nous est proposé.
… Oh ! 8-)

Si vous avez activé l'option pour indexer également les images dans la configuration de Nextant, vous pourrez tester le fonctionnement de l'OCR en ajoutant l'image ci-dessous (DU TEXTE DANS UNE IMAGE) dans votre espace Nextcloud. (Pour télécharger l'image, clique droit sur l'image → Enregistrer…)
file-r0f280be0a485e08385aa15d6c3673c69.jpg

# On relance un scan manuellement
sudo -u www-data /var/www/nuage/occ nextant:index

Puis on effectue une recherche dans Nextcloud en entrant “du texte dans…”. Le fichier JPEG devrait vous être proposé.

A l'envoi d'un fichier dans votre espace Nextcloud, vous ne pourrez pas effectuer de recherche basée sur son contenu immédiatement. Il faudra patienter quelques minutes, le temps que les tâches de fond de Nextcloud s’exécutent. Rappelez-vous, à l'installation de Nextcloud, nous avons mis en place l’exécution de tâches en fond… ;-)

OBSOLÈTE FIN

Installation de Collabora Online

Qu'est-ce que Collabora Online ?

Collabora Online est une suite bureautique en ligne proposant :

  1. un traitement de texte,
  2. un tableur et
  3. un créateur de présentation (diaporama).

Collabora Online est un projet open source basé sur LibreOffice dont l'objectif est de fournir une alternative à Microsoft Office Online et G suite pour ne citer que les plus grands acteurs.

Quel est l’intérêt de l'avoir en ligne ?
Vous seriez probablement tentés de vous dire : je m'en fout, j'ai déjà LibreOffice ou Microsoft Office d'installés sur mon ordinateur.
Très bien.

Mais quel plaisir d'avoir en permanence la possibilité de travailler sur ces documents

  • n'importe quand,
  • depuis n'importe quel ordinateur,
  • pour tous les utilisateurs que l'on souhaite avec
  • la possibilité de travailler à plusieurs sur le même document
  • et tout ça, rien qu'avec un navigateur !

Finit les demandes :
- Tu peux m'envoyer le fichier X ?

- Il y a bien un MAIS ?
- Plusieurs même ! LOL

D'abord, il faut savoir qu'il s'agit de la version Collabora Online Development Edition. Celle-ci est donc toujours en cours de développement.

Comparé à un Microsoft Office ou LibreOffice, on est loin de disposer des même fonctionnalités avancées.
(Oubliez les fusions/publipostage ou l'utilisation de style par exemple.)
L'installation est relativement fastidieuse.
La compatibilité avec les documents issus de la suite Microsoft Office sera aussi regrettable qu'en utilisant LibreOffice.
Une fiabilité “douteuse” ?
Je n'ai pas assez de recul pour m'exprimer là-dessus pour l'instant mais, sans vouloir dénigrer, l'utilisation de Docker pour héberger le service ne m'inspire pas…
Enfin, l'utilisation de Collabora Online nécessite un serveur aux ressources correctes. (Mémoire vive / Processeur), des besoins variables selon le nombre d'utilisateurs…

Pour installer Collabora Online, commençons dans l'interface de Nextcloud par aller dans :
ApplicationsBureautique et texte
et on clique sur :
Afficher la description. (De l'application Collabora hein…)
On peut y lire qu'il faut d'abord :
installer Collabora Cloudsuite sur le serveur et de lire la documentation.

Super ! :-)

Ici aussi, le simple fait d'appuyer sur activer ne fonctionnera pas !

La documentation nous averti sur les prérequis :

  • Un serveur capable d'exécuter des conteneurs Docker
  • La création d'un sous-domaine (virtualhost)
  • L'activation/désactivation des modules Apache
  • Un certificat SSL pour le sous-domaine (virtualhost) dédié à Collabora Online
  • Un certificat SSL pour le sous domaine (virtualhost) dédié à Nextcloud (Bon ça, ça devrait déjà être le cas…)

Installation de Docker

Qu'est-ce que Docker ?

On s'en fout, officiellement on n'a pas d'autre choix que de l'installer ! :-P

Bon pour faire court :
Docker offre aux développeurs la possibilité de distribuer les fruits de leur travail sous forme “d'image”.
Cette image contient le programme et ses dépendances.
Pour l'utilisateur final, il lui suffit de télécharger l'image et de l’exécuter de manière isolée via Docker dans ce que l'on appelle un conteneur.

Pour en savoir plus, je vous renvoie vers :

Pour les utilisateurs d'autres distributions non basées sur Debian, la commande apt ne fonctionnera pas et les paquets peuvent se nommer autrement.
  1. On installe la prise en charge de https pour le programme apt :
    apt install apt-transport-https
  2. On télécharge et on installe la clef publique du dépôt de Docker :
    curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
  3. On ajoute le dépôt de Docker à notre liste des dépôts :
    echo -e "\n# Depôt Docker\ndeb [arch=amd64] https://download.docker.com/linux/debian stretch stable" >> /etc/apt/sources.list
  4. On met à jour la liste des paquets disponibles de nos dépôts :
    apt update
  5. On lance l'installation de Docker :
    apt install docker-ce
    1. On peut vérifier l'installation via :
      docker version
      de la commande
      17.06.1-ce
  6. Par défaut sur Debian et Ubuntu, Docker s'installe de façon à utiliser le driver AUFS.
    Nous devons changer ce comportement pour que Collabora Online fonctionne :
    1. Création d'un dossier docker.service.d :
      mkdir /etc/systemd/system/docker.service.d
    2. Création du fichier “DeviceMapper.conf” :
      nano /etc/systemd/system/docker.service.d/DeviceMapper.conf
    3. Et on entre les 3 lignes suivantes dans le fichier DeviceMapper.conf :
      DeviceMapper.conf
      [Service]
      ExecStart=
      ExecStart=/usr/bin/dockerd --storage-driver=devicemapper -H fd://
  7. On redémarre Docker de manière à ce qu'il prenne en charge la nouvelle configuration :
    systemctl daemon-reload
    systemctl restart docker
  8. Et on vérifie que le nouveau paramètre est bien pris en compte :
    docker info


    Retour 7° ligne : Storage Driver: devicemapper

  9. On récupère l'image de Collabora Online Development Edition :
    docker pull collabora/code


    Le téléchargement s'effectue. (Patientez un peu, le tout pèse autour d'1 Go.)

    latest: Pulling from collabora/code
    bd97b43c27e3: Downloading   15.2MB/46.93MB
    6960dc1aba18: Download complete 
    2b61829b0db5: Download complete
    ...
  10. Enfin on crée et on démarre le conteneur qui exécutera l'image téléchargé :
    (Remplacer “nuage” si besoin et le nom de domaine mais, gardez bien les “\\” avant chaque point…) :
    docker run -t -d -p 127.0.0.1:9980:9980 -e 'domain=nuage\\.toto\\.fr' --restart always --cap-add MKNOD collabora/code

Création d'un virtualhost pour Collabora

Le virtualhost que nous allons créé est un peu particulier dans le sens où il n'aura pas de répertoire racine.

Ce virtualhost sert essentiellement à éviter d'exposer Collabora Online. \\En somme, l'accès ne pourra se faire qu'au travers de Nextcloud.
  1. Nous allons commencer par activer certains modules pour notre serveur web Apache :
    a2enmod proxy
    a2enmod proxy_wstunnel
    a2enmod proxy_http
    a2enmod ssl

    ssl devrait déjà être activé si vous avez bien suivi cette documentation. \\Activez-le de nouveau si vous voulez être sûr…

  2. Puis on créé un nouveau fichier de configuration pour notre nouveau virtualhost.
    (Pour ce tuto ce sera le virtualhost : bureau
    ce qui me donnera :
    bureau.toto.fr. Remplacez bureau par ce que vous voulez.) :
    nano /etc/apache2/sites-available/bureau.conf
  3. Copiez/collez l'intégralité de la configuration ci-dessous en n'oubliant pas d'adapter la deuxième ligne :

Paramètre “ServerName”.
(Dans mon cas en exemple ce sera : bureau.toto.fr)

Vous noterez au passage que dans le fichier de configuration ci-dessous, les chemins menant aux certificats SSL sont à modifier mais, on laissera Let's Encrypt s'en occuper.
bureau.conf
<VirtualHost *:443>
	ServerName bureau.toto.fr:443
 
	# SSL configuration, you may want to take the easy route instead and use Lets Encrypt!
	SSLEngine on
	SSLCertificateFile /path/to/signed_certificate
	SSLCertificateChainFile /path/to/intermediate_certificate
	SSLCertificateKeyFile /path/to/private/key
	SSLProtocol             all -SSLv2 -SSLv3
	SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS
	SSLHonorCipherOrder     on
 
	# Encoded slashes need to be allowed
	AllowEncodedSlashes NoDecode
 
	# Container uses a unique non-signed certificate
	SSLProxyEngine On
	SSLProxyVerify None
	SSLProxyCheckPeerCN Off
	SSLProxyCheckPeerName Off
 
	# keep the host
	ProxyPreserveHost On
 
	# static html, js, images, etc. served from loolwsd
	# loleaflet is the client part of LibreOffice Online
	ProxyPass           /loleaflet https://127.0.0.1:9980/loleaflet retry=0
	ProxyPassReverse    /loleaflet https://127.0.0.1:9980/loleaflet
 
	# WOPI discovery URL
	ProxyPass           /hosting/discovery https://127.0.0.1:9980/hosting/discovery retry=0
	ProxyPassReverse    /hosting/discovery https://127.0.0.1:9980/hosting/discovery
 
	# Main websocket
	ProxyPassMatch "/lool/(.*)/ws$" wss://127.0.0.1:9980/lool/$1/ws nocanon
 
	# Admin Console websocket
	ProxyPass   /lool/adminws wss://127.0.0.1:9980/lool/adminws
 
	# Download as, Fullscreen presentation and Image upload operations
	ProxyPass           /lool https://127.0.0.1:9980/lool
	ProxyPassReverse    /lool https://127.0.0.1:9980/lool
</VirtualHost>
  1. On lance Let's Encrypt :
    letsencrypt

    Qui devrait nous trouver :

    1. bureau.toto.fr
    2. madb.toto.fr
    3. nuage.toto.fr
  2. On répond à toutes les questions que letsencrypt nous pose.
    1. Première question on fait Entrer pour que Let's Encrypt traite tous les virtualhosts trouvés. (bureau devrait apparaître.)
    2. Do you want to expand and replace this existing certificate with the new certificate?
    3. On choisis d'étendre : Touche E puis Entrer.
    4. On active le virtualhost bureau. (Ici bureau car mon fichier d'origine se nomme bureau.conf) :
      a2ensite bureau
      1. a2ensite bureau revient à faire :
        ln -s /etc/apache2/sites-available/bureau.conf /etc/apache2/sites-enabled/bureau.conf

Et on redémarre Apache :

systemctl restart apache2

On file ensuite dans la gestion des applications Nextcloud :

  1. ApplicationsBureautique et texte et
  2. on clique sur Activer (Collabora)

Enfin dans l'administration de Nextcloud une nouvelle ligne apparaît dans le volet de gauche pour configurer Collabora Online.

  1. On entre l'adresse de Collabora :
  2. https://bureau.toto.fr (dans mon cas)
  3. et on décoche :
    Utiliser le format OOXML… si on le souhaite.

À présent, dans votre espace Nextcloud, en cliquant sur le bouton + (à côté de la maison), de nouveaux formats de fichier seront proposés.

  1. Cliquez sur l'un d'entre eux (Ex: Nouvelle feuille de calcul),
  2. donnez lui un nom et
  3. appuyez sur la touche Entrer pour confirmer le nom du fichier.
  4. Une fois créé, cliquez dessus pour l'ouvrir.
  5. Collabora Online devrait prendre le relais pour l'édition du fichier. 8-)

Autres applications

Passons en revu quelques applications qui pourraient s'avérer très utiles.

Application email Rainloop

Rainloop est un webmail.
Un client email qu'on utilise depuis son navigateur au même titre que Gmail, Outlook.com,…

Attention à ne pas confondre avec un serveur email.

Rainloop doit dialoguer avec un serveur email pour fonctionner.
Quand vous installez le client Thunderbird, Evolution, Outook ou autres, vous entrez des paramètres :

  1. Adresse email,
  2. identifiant,
  3. mot de passe,
  4. adresse du serveur POP/IMAP,
  5. adresse du serveur SMTP
  6. etc.

Ce sont ces même paramètres que vous aurez besoin d'entrer.

L'installation de Rainloop se fait simplement en l'activant dans Nextcloud.
Pour le paramétrage :

Application Calendar

Bein… c'est un agenda. Il est ouvert à tout client compatible avec le protocole CalDAV.
Installation en un clique (Activer).

Application Files clipboard

Facilite grandement le déplacement/copie de fichiers/dossiers au sein de l'interface Nextcloud. A tel point que je me demande pourquoi ces fonctions n'y sont pas de base ? !!! :-o

Installation fortement recommandée.

Une fois activée, rien d'autre à faire.
Dans votre espace Nextcloud vous verrez 3 nouveaux boutons (couper, copier, coller) lorsque vous cocherez des fichiers/dossiers en guise de sélection.

Application Passman

L'application Passman est un gestionnaire de mots de passe hébergé (dans votre Nextcloud) au même titre que Dashlane, 1Password, LastPass.
L'utilisation en est facilitée par la disponibilité des extensions pour Chrome, Firefox et Android. (Toujours pas d'application iOS à ce jour.)

L'Installation ? Juste un clique.

Application Announcement center

Les administrateurs seront en mesure de faire des annonces au sein de Nextcloud.

Ex :
Maintenance de Nextcloud ce week end…
Il y juste à activer l'application.

Application Metadata

Comme son nom l'indique, l'application affichera plus d'informations quand vous regarderez le détail d'un fichier.

Exemple pour un fichier vidéo, vous verrez :

  • la résolution,
  • le framerate,
  • le débit
  • etc.
Installation par activation.

Application External sites

L'application External sites permet de consulter des sites ou des documents sans que l'utilisateur n'ait à quitter Nextcloud.
La page s'insère dans Nextcloud.

L’intérêt étant de mettre facilement à disposition des utilisateurs certaines informations externe à Nextcloud.

Ex :

  • un règlement,
  • un formulaire de demande d'assistance…

L'application s'installe en l'activant.
Pour le paramétrage :
AdministrationParamètres supplémentaires

Application Files automated tagging

Cette application assigne automatiquement des étiquettes (tagg) pour n'importe quel fichier ajouté dans Nextcloud selon des règles à mettre en place.

Ex. :
Si le fichier est de type “image” et qu'il a été ajouté par un utilisateur membre du groupe “Photographe”, coller l'étiquette Photo produit.
Installation en activant.
Paramétrage : AdministrationFlux d'activités

Corrections et optimisations

Nextcloud

Suite à l'installation, vous avez peut-être constaté les messages suivants dans l'interface d'administration :

  • Votre dossier de données et vos fichiers sont probablement accessibles depuis internet. Le fichier .htaccess ne fonctionne pas. Nous vous recommandons vivement de configurer votre serveur web de façon à ce que ce dossier de données ne soit plus accessible, ou de le déplacer hors de la racine du serveur web.
    Pour y remédier, il nous faut appliquer la directive “AllowOverride All” dans notre configuration Apache.
  1. On édite le fichier de configuration principal d'Apache :
    nano /etc/apache2/apache2.conf
    apache2.conf
    # A partir de la ligne 170 nous trouvons
    #<Directory /var/www/>
    #      Options Indexes FollowSymlinks
    #      AllowOverride None
    #...
    # On modifie "AllowOverride None" pour "AllowOverride All"
  2. Et on redémarre Apache :
    systemctl restart apache2
    • Aucun cache mémoire n'est configuré. Si possible, configurez un “memcache” pour améliorer les performances. Pour plus d'informations consultez la documentation.
      Et bien on va mettre un en place :-)

# On installe “memcached” le module pour PHP

apt install memcached php-memcached
# On édite le fichier de configuration de Nextcloud (Rempacer par "nuage" par le nom de votre dossier.)
<code root>nano /var/www/nuage/config/config.php
config.php
# On rajoute un ligne entre : 'dbpassword' => '$NUAGEmdp%', et 'installed' => true,
# Autrement on la rajoute juste après : 'installed' => true, mais à ce moment là, true doit être deux apostrophes : 'true'. 
# Attention chaque ligne doit se terminer par une virgule.
# Et ");" doit boucler le fichier. \\ 'memcache.local' => '\OC\Memcache\Memcached',
  1. Et on redémarre Apache :
    systemctl restart apache2

Le PHP OPcache n'est pas correctement configuré.
Pour de meilleure performance nous recommandons d'utiliser les paramètres suivant dans le php.ini : (Suivi des paramètres à modifier.)

Bon bein on va pas le contrarier.

# On ouvre le fichier de configuration de PHP
nano /etc/php/7.0/apache2/php.ini
php.ini
# Et on cherche les paramètres mentionnés pour remplacer leurs valeurs comme Nextcloud nous l'indique.
# Dans le fichier, vous trouverez ces paramètres à partir de la ligne 1765.
# Pensez à utiliser la fonction de recherche. (CTRL + W avec Nano)
# Pour chaque paramètre trouvé, il vous faudra le "dé-commenter" en supprimant le point virgule (;) en début de ligne et modifier la valeur.
# Exemple :
; Determines if Zend OPCache is enabled
opcache.enable=1
# Et on redémarre Apache
systemctl restart apache2
  • Vous accédez à ce site via HTTP. Nous vous recommandons fortement de configurer votre serveur pour forcer l'utilisation de HTTPS, comme expliqué dans nos conseils de sécurisation.
# On active le mode Headers pour Apache
a2enmod headers
# On édite le fichier de configuration du virtualhost Nextcloud (Dans mon cas : nuage-le-ssl.conf)
nano /etc/apache2/sites-available/nuage-le-ssl.conf
nuage-le-ssl.conf
# Pour rajouter une ligne juste en dessous de : "DocumentRoot /var/www/nuage"
Header always set Strict-Transport-Security "max-age=63072000;"
# Et on redémarre Apache
systemctl restart apache2

Nextant

  • Erreur 21 : interruption durant l'indexation
    Suite à l'installation de Nextcloud, votre espace est encore bien vide. La commande que nous avons lancé (sudo -u www-data /var/www/nuage/occ nextant:index) pour effectuer une première indexation de nos fichiers via Nextant s'est sûrement déroulée sans accro. Mais dans le temps ou une fois votre espace bien plus remplie, il se pourrait que l'indexation avorte avec une “Erreur 21”. Dans ce cas, il est recommandé d'augmenter la mémoire vive allouée au servlet Solr.
nano /etc/default/solr.in.sh
solr.in.sh
# Paramètre à modifier "SOLR_HEAP". Par défaut, "512m". On dé-commente le paramètre en supprimant le dièse
# et on augmente la valeur en fonction de ce qu'on peut. Essayez "1024m". Sinon "2048m" etc.
#SOLR_HEAP="512m"
SOLR_HEAP="2048m"
# Et on redémarre Apa... Non Solr !
systemctl restart solr
# Et on relance une indexation pour tester.
sudo -u www-data /var/www/nuage/occ nextant:index

Une autre raison pourrait venir d'un fichier que Nextant ne parvient pas à l'ire.

# Pour en être sûr.
sudo -u www-data /var/www/nuage/occ nextant:index --debug

Et dans ce cas, soit on supprime le fichier (pas vraiment une solution…) soit on filtre tous les fichiers du même type en entrant l'extension du fichier.
Il est également possible d'indiquer à Nextant de ne pas indexer un dossier en créant dans le dossier en question un fichier de type “Texte” vide qu'il faut nommer “.noindex”. Les fichiers commençant par un point (.) sont des fichiers qui par défaut sont cachés dans Nextcloud. Vous pouvez modifier cela dans le volet de gauche en cliquant tout en bas sur “Paramètres”.

Collabora Online

  • Échec du chargement du document. Veuillez vous assurer que le type de fichier est pris en charge, qu'il n'est pas corrompu et essayez de nouveau.
    Avez-vous bien Docker qui utilise le driver “devicemapper” ?

  • Hôte WOPI non autorisé. Veuillez essayer de nouveau plus tard et en faire part à votre administrateur si le problème persiste.
    La source du problème peut venir d'un bon nombre de facteur : La commande “docker run” renseigne-t-elle le bon nom de domaine, le paramétrage du virtualhost dédié à Collabora renseigne-t-il le bon nom de domaine ? Les certificats sont-ils bien installés ?

Rainloop

PDF Viewer

Peut-être auriez-vous eu, tout comme moi, la bonne ou mauvaise idée de soumettre votre serveur auprès du scanner de Mozilla : Observatory by Mozilla pour tester votre installation. (HTTPS) Et peut-être que comme moi vous avez cherché et fini par obtenir la meilleure note (A ou A+ j'sais plus…) Alors, il est très probable que vous rencontriez un problème avec le PDF Viewer intégré à Nextcloud lorsque vous tentez d'ouvrir un PDF (à la con) généré par un scanner/imprimante.
Le problème en question est que le PDF Viewer ouvre le fichier PDF mais celui-ci est vide. Tout blanc !
En attendant de localiser très exactement l'option qui ne plait pas au PDF Viewer, cherchez/désactivez vos paramètres “Header set …” dans la configuration d'Apache2.

PS: si vous voulez utiliser talk, il vous faudra installer un serveur turn

apt install coturn
1)
N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !
2)
mises à jour
doc/reseau/nextcloud.txt · Dernière modification: 01/10/2023 12:02 par captnfab

Pied de page des forums

Propulsé par FluxBB