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 →
Nota : Contributeurs, les sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli !
ATTENTION !
Cette documentation suit l'installation d'une Debian 9 (stretch) (il est donc largement obsolète)
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…
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 ?
En suivant cette documentation :
On commence par se rendre sur le site officiel de nextcloud pour vérifier les prérequis à la solution.
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.
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 :
Nextcloud nécessite :
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 :
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…
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 :
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 :
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'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 !!! :
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
toto.fr
par votre nom de domaine
. madb
, nuage
et bureau
par ceux que vous allez utiliser pour accéder à votre base de données, nextcloud et collabora.
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.)
En premier lieu on passe en utilisateur root en utilisant : la commande su :
su
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 :
Entrer
du clavier.Oui (Y)
et on le saisi à la suite.
$MDPmaria-root%
les fois où nous aurons besoin de le renseigner tout au long de cette documentation.]
Questions suivantes :
Oui (Y)
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 :
Oui (Y)
Et dernière question :
Oui (Y)
On se connecte maintenant à MariaDB en tapant :
mysql
ou
mariadb
MariaDB [(none)]>
CREATE USER 'adminDB'@'localhost' IDENTIFIED BY '$PMAmdp%';
Ce qui nous permet de créer un utilisateur MariaDB pour l'application PhpMyAdmin à venir.
GRANT ALL PRIVILEGES ON *.* TO 'adminDB'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit
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…)
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é.
Là, on ne va pas s'embêter on va tout installer en même temps. (Le serveur web Apache, PHP7 et ses modules.)
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.
echo "<?php phpinfo(); ?>" >> /var/www/html/test.php
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 :
ou son adresse IP.
Exemples:
vous devriez voir une page Apache2…
et PHP…
.
(Voir illustrations ci-dessous) :
Illustration Apache 2 :
Illustration PHP :
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 :
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.
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”
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..!
mkdir /var/www/madb
cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/madb.conf
ln -s /etc/apache2/sites-available/madb.conf /etc/apache2/sites-enabled/madb.conf
/etc/apache2/sites-available/
…) nano /etc/apache2/sites-available/madb.conf
Dans notre fichier de configuration, à l'aide de Nano nous allons juste décommenter et renseigner ServerName
et DocumentRoot
ainsi :
<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>
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>
Ben… On va refaire presque tout pareil…
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..!
mkdir /var/www/nuage
cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/nuage.conf
ln -s /etc/apache2/sites-available/nuage.conf /etc/apache2/sites-enabled/nuage.conf
/etc/apache2/sites-available/
…) : nano /etc/apache2/sites-available/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>
echo "Vhost nuage OK!" >> /var/www/nuage/index.php
systemctl restart apache2
curl http://nuage.toto.fr
On devrait avoir en retour :
Vhost nuage OK!
curl http://toto.fr | grep title
Devrait encore nous donner :
title>Apache2 Debian Default Page: It works</title>
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…
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 :
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.
A
)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!
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 droit
→ copier 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.
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
Si quelqu'un a un lien concernant l'utilisation de “unzip”.
Et on change juste une ligne, on renseigne une clef qui sera utilisée pour crypter les Cookies du navigateur :
$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 :
Maintenant que nous avons une interface conviviale pour gérer MariaDB, dans PhpMyAdmin :
Comptes utilisateurs
Ajouter un compte utilisateur
Un formulaire s'affiche :
Local
) Base de données pour ce compte d'utilisateur
: On coche les deux cases. Executer
.La procédure est similaire à l'installation de PhpMyAdmin et comme la plupart des applications web que l'on souhaite installer:
Pour trouver le lien de téléchargement, le plus simple est de se rendre sur le site officiel de Nextcloud avec un navigateur.
wget https://download.nextcloud.com/server/releases/nextcloud-12.0.2.zip
unzip nextcloud-12.0.2.zip -d nc
nuage
.) : cp -r ./nc/nextcloud/* /var/www/nuage
cp ./nc/nextcloud/.htaccess /var/www/nuage/.htaccess
cp ./nc/nextcloud/.user.ini /var/www/nuage/.user.ini
chown -R www-data:www-data /var/www/nuage
nuage
: find /var/www/nuage -type d -exec chmod 755 {} +
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 :
nuage
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 :
Administration
→ Paramètres de base
les cas seront traités dans un autre chapitre.
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.
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 :
crontab -u www-data -e
*/15 * * * * php -f /var/www/nuage/cron.php
crontab -u www-data -l
Dans le retour repérer la présence de :
*/15 * * * * php -f /var/www/nuage/cron.php
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)
CTRL
c
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
À 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 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
.
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 :
Engrenage → Applications
, (je ne le répéterai plus) Outils
.Activer
.
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.
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 :
Applications
→ Fichiers
et on clique sur Afficher la description
.
Pffiou… Il y a de la lecture…
On peut y lire le potentiel de Nextant (emplacements, formats de fichiers reconnus…) avec des mises en garde pour certains formats de fichiers :
Active
ne suffira pas !
La procédure d'installation nous indique les étapes à suivre :
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 :
Nous installerons le servlet Solr en mode service pour une disponibilité permanente.
# 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 :
# 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é)
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é.
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.
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”.
# 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 ?
…
On choppe le lien de téléchargement en se rendant à l'adresse :
# 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 {} +
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.
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)
# 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 !
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…)
# 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…
Collabora Online est une suite bureautique en ligne proposant :
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
Finit les demandes :
- Tu peux m'envoyer le fichier X ?
- Il y a bien un MAIS ?
- Plusieurs même !
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 :
Applications
→ Bureautique 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 !
La documentation nous averti sur les prérequis :
On s'en fout, officiellement on n'a pas d'autre choix que de l'installer !
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 :
https
pour le programme apt : apt install apt-transport-https
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
echo -e "\n# Depôt Docker\ndeb [arch=amd64] https://download.docker.com/linux/debian stretch stable" >> /etc/apt/sources.list
apt update
apt install docker-ce
docker version
17.06.1-ce
docker.service.d
: mkdir /etc/systemd/system/docker.service.d
nano /etc/systemd/system/docker.service.d/DeviceMapper.conf
DeviceMapper.conf
: [Service] ExecStart= ExecStart=/usr/bin/dockerd --storage-driver=devicemapper -H fd://
systemctl daemon-reload
systemctl restart docker
docker info
Retour 7° ligne : Storage Driver: devicemapper
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 ...
docker run -t -d -p 127.0.0.1:9980:9980 -e 'domain=nuage\\.toto\\.fr' --restart always --cap-add MKNOD collabora/code
Le virtualhost que nous allons créé est un peu particulier dans le sens où il n'aura pas de répertoire racine.
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…
bureau
bureau
par ce que vous voulez.) : nano /etc/apache2/sites-available/bureau.conf
Paramètre “ServerName”.
(Dans mon cas en exemple ce sera : bureau.toto.fr)
<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>
letsencrypt
Qui devrait nous trouver :
Entrer
pour que Let's Encrypt traite tous les virtualhosts trouvés. (bureau
devrait apparaître.)E
puis Entrer
.bureau
. (Ici bureau
car mon fichier d'origine se nomme bureau.conf
) : a2ensite bureau
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 :
Applications
→ Bureautique et texte
etActiver
(Collabora)Enfin dans l'administration de Nextcloud une nouvelle ligne apparaît dans le volet de gauche pour configurer Collabora Online.
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.
Entrer
pour confirmer le nom du fichier.Passons en revu quelques applications qui pourraient s'avérer très utiles.
Rainloop est un webmail.
Un client email qu'on utilise depuis son navigateur au même titre que Gmail, Outlook.com,…
Rainloop doit dialoguer avec un serveur email pour fonctionner.
Quand vous installez le client Thunderbird, Evolution, Outook ou autres, vous entrez des paramètres :
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 :
Bein… c'est un agenda. Il est ouvert à tout client compatible avec le protocole CalDAV.
Installation en un clique (Activer).
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 ? !!!
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.
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.
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.
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 :
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 :
L'application s'installe en l'activant.
Pour le paramétrage :
Administration
→ Paramètres supplémentaires
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 :
Administration
→ Flux d'activités
Suite à l'installation, vous avez peut-être constaté les messages suivants dans l'interface d'administration :
nano /etc/apache2/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"
systemctl restart apache2
# 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
# 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',
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
# 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
# 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
# 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
nano /etc/default/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”.
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