Yunohost – Pourquoi les ports 80 et 25 sont ils toujours utilisés ?

Telle est la question que l'on trouve, en anglais, sur le forum de YunoHost.

La question est légitime car ces deux ports, ne présentent pas, par défaut, de connexion sécurisé. Pour avoir une connexion avec du chiffrement, il faudra passer par une connexion en httpS (et le port 443), ou en ImapS (et le port 993).

Une explication est donnée en anglais, par ljf, Groupe Core Dev (développeur du projet). Je la cite et je la traduit ci-dessous, la diffusion de l'information en langue française pouvant être utile au non anglophone.

Port 25 is necessary to send email to other unsecured smtp (if we close this port, some mails couldn't be delivered.


Port 80 is needed by let's encrypt for the ACME challenge, by some YunoHost setup without internet connexion ( in Africa or Asia) which users need to be able to access page without warning, by some website which users are under the "TLS intermediate config" (not so old android device, XP...). In general application packagers make choice or not to redirect port 80 to HTTPS. Sometime just one part of the app (web administration) force https.

A new settings system has been introduce to be able to let more option to the yunohost administrator, but for now, there are no settings developped to let the admin to be able to configure it.

Traduction libre

Le port 25 est nécessaire pour envoyer un courriel à d'autres serveurs smtp qui eux ne sont pas sécurisés (si ce port est fermé, cela aura pour conséquence que certains mails ne puissent être livrés.

Le port 80 est nécessaire pour le challenge ACME de Let's Encrypt, et pour des cas d'installation YunoHost sans connexion internet (en Afrique ou en Asie) pour lesquelles les utilisateurs ont besoin d'accéder à la page de connexion sans avoir un avertissement, pour des mises à dispositions d'applications pour des utilisateurs qui n'ont pas accès au niveau de configuration nécessaire pour une connexion TLS (vieux appareil Android, XP ...). En général, les packageurs d'applications choisissent ou non de rediriger le port 80 vers HTTPS. Par défaut, une seule partie de l'application YunoHost (la partie administration Web) force une redirection vers https.

Un nouveau système de paramétrage a été introduit pour être en mesure de laisser plus de latitude à un administrateur yunohost, mais pour l'instant, il n'y a pas d'interface de développer permettant à l'administrateur d'être en mesure de le configurer.

Lifehacking – Trois écrans : réel confort, luxe ou superflu ?

Il y a quelques temps j'écrivais un billet Ubuntu et trois écrans ? Oui c'est possible dans lequel j'abordais le cas d'un ordinateur portable sur lequel il y avait une carte graphique Intel intégrée au processeur (de la gamme Intel Core i5), deux sorties (une VGA et une HDMI) et le fait que l'on pouvait avoir au final 3 écrans pour une seule et même machine.

Dans l'entreprise dans laquelle je suis, nous avons une place dédiée à un bureau, mais il nous arrive de travailler en mobilité (en réunion, mais pas que. Nous pouvons travailler debout, affalé dans un canapé...). A mon bureau, j'ai deux écrans de grande taille (23 pouces). Et avec le temps, je l'avoue, j'ai pris goût à ce confort d'avoir 3 écrans. Il y a le fait que les écrans sont sur-élevés et donc à hauteur d'yeux (ce qui est mieux quand, comme moi, on passe de nombreuses heures devant un écran).

Chez moi, j'ai aménagé mon environnement de travail / bureau personnel afin d'avoir la place et j'ai également deux écrans (de taille plus modeste, 21"), que je peux brancher à mon ordinateur professionnel pour les fois où j'ai besoin de travailler en dehors des heures de bureau. Je retrouve ainsi le confort que j'ai pour mon post de travail.

Avoir 3 écrans pourrait sembler à l'encontre du lifehacking vu qu'en multipliant les écrans on ajoute des sources de distraction potentielles. Dans mon cas, c'est au contraire une augmentation de ma productivité. Et qui dit productivité dit Lifehacking, d'où le titre et le classement de ce billet.

J'ai le confort d'avoir 3 écrans et donc de pouvoir disposer mon espace de travail numérique comme bon il me semble. Par conséquence Ces 3 écrans me permettent : d'avoir mon fichier de suivi / todo ouvert en permanence dans un coin, et de le remplir / de saisir mon suivi des pomodoros. (cf mes différents billets sur le sujet) Ou quand je dois travailler à une présentation, sur différents documents en parallèle, j'abuse des deux grand écrans avec la fonction de Unity qui permet de découper un écran en deux part égale... J'utilise Unity avec Ubuntu, je ne suis pas passé comme certains de mes collègues sous des Window Manager plus austère et plus complexe comme i3 par exemple.

Sur la fenêtre de l'écran du portable, la plus petite, j'ai un explorateur de fichiers (Nautilus) dans lequel j'utilise les onglets. En arrière plan, j'ai mon navigateur Firefox qui tourne en tâche de fond : accessible en basculant dessus via la combinaison de touches ALT+TAB, pour faire une recherche, caché pour ne pas me distraire. Quand j'ai besoin d'avoir une page (par exemple un tutoriel) affiché en permanence, Firefox bascule du petit écran sur un des grands écrans en face de moi.

D'avoir éventuellement Thunderbird ouvert et visible en permanence, ce qui me permet de voir les mails arrivés. Et je ne traite pas les mails de suite, mais je les dépile / regarde :
- soit il y a une urgence, et je repanifie donc la tâche du prochain pomodoro pour traiter cette urgence, répondre à ce mail (par exemple).
- soit il corresponde à une information fournie, à un projet ou autre et c'est dans une phase de "gestion / mise à jour de la todo et classement des mails", au cours d'un pomodoro dédié, que ce mail sera traité.
Sur le sujet de Thunderbird, voir Lifehacking et la gestion des mails

Bref, tout ça pour dire qu'une fois l'organisation de son environnement de bureau sur 3 écrans faites, avec ses petites habitudes, on gagne vite en réactivité et productivité. Et c'est un peu ça le lifehacking : s'organiser pour gagner du temps.

Virtualbox comme outil dans le cadre de formations

Etant amenés à faire des formations à des client sur différents logiciels, je souhaiterai partager ici plusieurs astuces que nous avons mis en place au sein de mon équipe et que nous réutilisons dans le cadre de formation professionnelle que nous sommes amenés à préparer et donner à des clients. Je profiterai de ce retour d'expérience pour partager des astuces, des conseils, des pratiques qui ont été testées et validées en situation sur le terrain hostile des réseaux d'entreprises...

Nous utilisons également ces VM (VM = Virtual Machines ou Machines virtuelles, soit les machines virtualisées, les systèmes invités dans Virtualbox, le système hôte étant la machine physique qui fait tourner le le logiciel Virtualbox) pour nos différents projets dans le cadre de l'appropriation d'une nouvelle technologie (on ne peut pas tout savoir), de veille ou de la réalisation de P.O.C. (Proof of Concept) rapide.

Dans ce billet, quelques éléments / retour d'expérience. Je ne détaille pas, des connaissances sur le fonctionnement de Virtualbox (ou d'un environnement de virtualisation en général) sont un prérequis.

Pourquoi choisir Virtualbox ?

Nous utilisons Virtualbox et ce pour plusieurs raisons :
- Les machines virtuelles sont portables : nous travaillons sous des distributions Linux différentes selon les collaborateurs, les clients sont sous des OS Microsoft (Windows 7 ou 10). Et le transfert d'une VM d'un environnement à un autre se fait sans soucis (juste le temps de la copie). Les VM sont parfaitement compatibles (si les versions de Virtualbox sont bien les mêmes).
- facilité de transfert et de sauvegarde : les VM sont des gros fichiers qui viennent avec des fichiers de configurations XML. Facile à copier d'une machine à l'autre et donc à sauvegarder (on copie tout le fichier).
- parce que je maîtrise cet outil. Oui je connais KVM (et le fait qu'il y ait une interface graphique si besoin etc. mais je reste fidèle à la facilité de Virtualbox ;)

Prérequis à une formation

Avant d'intervenir en formation en présentielle chez un client, nous demandons comme pré-requis :
- que l'on nous mette à disposition des machines disposant d'un processeur Intel coreiX (X étant un nombre de 3 à 7, l'intérêt est d'avoir un processeur 64 bits, supportant les instructions de virtualisation et donc d'avoir une machine virtuelle performante). Intel ou équivalent chez AMD (que j'avoue ne pas connaître).
- qu'idéalement la machine est un SSD : des machines virtuelles de formation ont des petits jeux de données et ne font que quelques gigas (elles tiennent sur des clefs USB), ce n'est pas ça qui va prendre de la place sur le disque. Et comme un SSD c'est toujours plus rapide et plus de confort pour la virtualisation...
L'astuce de Genma : copier les machines virtuelles de formation sur plusieurs clefs USB. Pour qu'on puisse lancer plusieurs copies le jour J.
- à minima 8 go de RAM : j'ai déjà eu des PC de formation sous Windows 7 64 bits avec 4 giga de RAM, même avec une machine virtuelle à laquelle on affecte que 512 Go à 1 Go de RAM (pour un serveur nginx / php / MySQL), c'est lent. 8 giga de RAM permettent d'être confortable (et de faire tourner 2 VM auxquelles on affecte 2 Giga de RAM chacune), 16 Go c'est idéal.

Configuration réseau

Pour la configuration réseau sous Virtualbox, j'ai fait un billet dédié abordant ce sujet Yunohost, Virtualbox, Interfaces réseaux. Le fait que ce soit Yunohost ne change rien à la philosophie, les explications de mon billet restent et sont valables pour n'importe quel système en tant qu'invité.

L'astuce de Genma : attention à bien penser à faire des reset des adresses MAC à l'installation des VM sur chacun des postes de formation pour éviter des soucis d'IP. En effet, dans le cas d'une connexion réseau par pont sur un réseau fournissant une adresse en DHCP, si la carte réseau virtuelle garde la même adresse MAC (cas d'une copie d'une même machine virtuelle invitée sur plusieurs PC hôte), on se retrouve très vite avec des conflits réseaux...

Il faut anticiper le maximum de problème (on aura toujours des imprévus) d'où une seconde astuce :

L'astuce de Genma : penser à faire valider avant par le client la mise à disposition d'une connexion à Internet et la qualité du réseau (pas de proxy nécessitant une authentification, pas de filtrage par adresse MAC ou autre etc.) Et prendre en compte les informations pour adapter la connexion réseau de la machine virtuelle en conséquence.

Utiliser des points de restauration snapshot

Cela permet que si la personne n'a pas réussi l'exercice, qu'elle puisse repartir d'une machine ayant le résultat et de continuer. Si il y a une mauvaise manipulation, on peut repartir d'une version qui était fonctionnelle. De plus, ces points de restauration / snapshot s'exportent très bien à l'export de la VM (pour sa copie sur clef USB puis sur les PC de formation).

L'astuce de Genma : penser à nommer les points de restauration.

Le luxe étant d'avoir une machine virtuelle par grande phase / partie de la formation (qu'on lance et éteint à chaque fin de grande partie). Mais cela fait autant de machine à maintenir...

Les comptes utilisateurs

Avoir un compte utilisateur et un compte administrateur. Mettre des mots de passe simple (le même pour les deux). L'objectif n'est pas d'avoir de la sécurité mais d'avoir des comptes facile à utiliser

L'astuce de Genma : dans le cas de machine Linux, activer un serveur SSH. Si la machine virtuelle a une IP publique (ou sa machine hôte et qu'on a activé la redirection de port sur la configuration NAT de la machine virtuelle), on peut ainsi facilement accéder à n'importe quel VM via SSH (vu que les comptes sont connus) et aider / débloquer un des participants depuis son propre PC.

Avoir une VM template et maintenir sa VM à jour}

J'ai une VM coquille vide de référence : une installation de Debian minimale de laquelle je peux repartir en la clonant pour répondre à des besoins de formation pour lesquels je n'ai pas encore de VM. Je ne repars pas de zéro comme ça. Et je fais le maintiens / mise à jour de cette VM (tout comme celles plus avancées dans lesquelles il y a un ou plusieurs logiciels dédiés aux formations). Comme ça, je suis les évolutions et montées en version.

Aller plus loin ?

J'avais écrit un billet Jouons avec Ansible et Virtualbox dans lequel, comme le nom l'indique,

On peut imaginer d'automatiser certaines choses avec Ansible et un script. En effet, comme Virtualbox est également accessible en ligne de commandes, on peut imaginer un script qui :
- lance une VM via les commandes Virtualbox
- fait un snapshot /point de restauration de la machine virtuelle
- fait une mise à jour de la VM via Ansible (pour éviter la saisie de mot de passe)
- fait un snapshot /point de restauration de la machine virtuelle (pour conserver la version mise à jour)
- éteindre la machine et passe à la suivante

On lance ça un midi ou un soir et on a toutes ses VM maintenues à jour...

Sauvegardes

Bien évidemment, il faut penser à avoir des sauvegardes de toutes ces machines virtuelles vu tout le travail qu'on aura fait pour les mettre en place. Mais les sauvegardes c'est une évidence, non ?.

Conclusion

Que ce soit pour des VM pour des sessions de formation, pour des POC ou pour des projets, Virtualbox répond parfaitement à mes attentes. Le côté rigueur imposé (comptes connus, mises à jour etc.) permet l'interopérabilité et le transfert rapide à d'autres personnes (collaborateurs ou apprenants de la formation) et permet du gain de temps conséquent. Et vous, un avis, d'autres pratiques ou usages, ou des conseils ?

Yunohost, Virtualbox, Interfaces réseaux

J'avais publié rapidement un billet Yunohost, Clonezilla et Virtualbox expliquant que j'avais fait un clone via Clonezilla de ma machine Yunohost et cloner celle-ci au sein d'une machine virtuelle dans VirtualBox. Dans ce billet, je voudrais aller un peu plus loin et aborder l'aspect configuration et paramétrage réseau.

Remarque :
- Par YunohostProd, je désignerai la machine / serveur sur laquelle j'ai mon Yunohost que j'utilise tous les jours ;
- Par YunohostTest, je désignerai le clone / la machine virtuelle dans VirtualBox.

Mon besoin

Mon besoin est donc d'avoir une machine de test, aussi proche que possible de ma machie de production. L'avantage de la machine virtuelle est de pouvoir jouer avec et faire des tests, revenir en arrière très facilement via les snapshots.

VirtualBox - Quelles cartes réseaux ?

Cet environement de test est testé essentiellement sur deux types de réseaux : chez moi, derrière une Freebox. Et sur un réseau d'entreprise.

Sur chacun des machines virtuelles (que j'utilise dans VirtualBox, indépendamment du fait que ce soit une instance Yunohost), je crée à minima deux cartes réseaux :
- une carte eth0 en mode NAT : l'accès Internet de la machine hôte est alors partagé, je peux faire des mises à jour etc. La machine virtuelle voit Internet mais n'est pas vu du réseau local (elle est derrière un NAT qui est géré par VirtualBox).
- une carte eth1 en mode Réseau Privé hôte sur vbonet0 : la machine est visible et voit la machine hôte et réciproquement. Cette interface réseau me sert pour me connecter en SSH depuis ma machine hôte sur la machine virtuelle.

A ces deux interfaces réseaux, j'en ajoute une troisième :
- une carte eth2 en mode Accès par pont (Bridge). Cette interface est uniquement valable dans le cas où le réseau permet à la machine virtuelle d'avoir une IP dédiée (fixe ou via le DHCP). En entreprise (par exemple), là où les IP sont souvent associées aux adresses MAC, il n'est pas possible d'avoir une IP dédiée pour les machines virtuelles de test ; je désactive donc cette interface. De chez moi, quand je suis connecté sur le réseau de la Freebox, j'active cette carte eth2, ma machine virtuelle a donc une IP dédiée sur le réseau local.
Remarque : vu que via cette interface, la machine hôte voit également la machine virtuelle étant donné qu'elles sont sur le même réseau local, je pourrais désactiver l'interface eth1 quand je peux activer eth2.

Qui voit quoi ?
- via la carte en NAT : la VM a accès à Internet pour les mises à jour derrière un NAT. Elle est invisible du réseau local et de la machine hôte, à moins de faire des redirections de port ;
- via la carte Réseau privé : accès à la machine hôte et réciproquement ; la VM est également visible des autres machines virtuelles situées dans le même réseau privé.
- via la carte Réseau Accès par Pont : comme la machine virtuelle a accès au réseau local et sa propre IP sur le réseau, elle est visible des machines du réseau local en accès direct.

Configuration réseau - DHCP par défaut Pour chacune des interfaces réseaux de ma machine virtuelle, je reste en DHCP par défaut. Je pourrais lui affecter des IP fixes, mais je peux savoir facilement (c'est indiqué au lancement de Yunohost) les différentes adresses IP associées aux différentes interfaces réseaux ; le bail DHCP étant assez long - la machine garde toujours les mêmes IP pour les différentes interfaces.

Connexions à la VM Yunohost

Les connexions Yunohost se font de deux façons :
- par un navigateur pour l'accès aux différentes applications dans Yunohost ;
- par SSH

Sur ma machine hôte (un Linux), pour me simplifier la tâche et Yunohost utilisant les noms de domaines qu'ont lui a associé plutôt que les IP, quand je lance ma machine virtuelle, je pense à modifier le fichier /etc/host

monyunohost.fr 192.168.0.100

avec :
- monyunohost.fr : mon domaine yunohost
- 192.168.0.100 : l'IP du réseau privé affecté par VirtualBox à la machine virtuelle (interface eth1).

Et ainsi, en allant sur https://monyunohost.fr, je peux faire ce que j'ai à faire.

Reste à faire

- Du routage avancé Tout le trafic passe par défaut - est routé via l'interface eth0, celle qui est donc Naté. Cela ne pose pas de soucis pour tout ce qui sort. Mais pour ce qui entre, il est nécessaire de passer par la carte eth1.
=> Il faut que je vois les possibilités de ce côté.

- Mise en place d'une synchronisation Prod vers Recette Je peux très facilement cloner la machine virtuelle YunohostTest pour avoir une machine pour les tests et une machine "Sauvegarde".
J'aurai donc une seconde machine virtuelle, YunoBackup, qui aura une interface eth2 avec une IP du réseau sur lequel se trouve la machine YunohostProd. Les deux machines se voient. Mon idée est de mettre en place un système (un script) qui au démarrage de la machine virtuelle de Sauvegarde (YunoBackup) va se connecter en SSH à ma machine de production, et se synchroniser (à base de Rsync) pour récupérer les principaux changements.
Autre possibilité : récupérer les sauvegardes et les restaurer au sein de cette machine YunoBackup (un bon moyen de valider la procédure de sauvegarde / restoration). Toujours via un script.
=> Je note ça dans ma todo liste de projets personnels. A suivre.

Lifehacking – TinyTask

Ayant à automatiser un certain nombres de tâches faite de façon graphique (des clics divers et variés au sein de différents logiciels en environement Windows), j'ai donc cherché un logiciel qui me permettrait de faire 500 fois la même chose. Et j'ai trouvé. Ce logiciel, c'est TinyTask. Disponible ici gratuitement ici (graticiel, logiciel non libre) https://www.vtaskstudio.com/tinytask.php

Remarque : la tâche nécessitait des actions en mode graphique au sein de différents logiciels, rien qui ne pouvait être automatisé par un script quelconque.

On l'installe, c'est léger. On le lance. On clique sur enregistrer. On exécute la séquence d'action que l'on souhaitera faire de manière répétitive. Cette séquence pouvant être au sein de différentes fenêtres. Et ça enregistre une macro qu'il est possible de rejouer un certain nombre de fois.

Quelques astuces :
- Ça marche bien dans une machine virtuelle (dans laquelle on a un Windows) ce qui permet de continuer à travailler à côté de ça sur la machine hôte. Sans cette astuce, on ne peut pas utiliser sa machine le temps que la tache se déroule. Une VM à lancer sur un second ou troisième écran pour garder un œil dessus. Car...
- Le logiciel plante parfois, donc on lance les répétitions par lot de 20 en gardant un œil dessus.
- Il faut penser à revenir sur la bonne fenêtre de départ à la fin de la séquence (en remettant le focus dessus). Car il semblerait que le logiciel enregistre les clics, la position de la souris et les saisies claviers, mais si on est sur la fenêtre d'un logiciel sans que l'on est le focus dessus, le clic se fait dans le vide et ça décale alors toute la séquence de la macro enregistrée.

Ce logiciel m'ayant bien dépannée (la tâche répétée 500 fois durait une minute à chaque fois une fois la séquence bien optimisée pour être sûre qu'elle marche comme je veux).

Je suis preneur d'un logiciel équivalent et aussi simple sous GNU/Linux Ubuntu. Par aussi simple, je ne veux pas d'un logiciel pour lequel il faut créer un script dans un langage dédié. Je voudrais un logiciel qui fasse la même chose que TinyTask.

Lifehacking – Mes astuces pour faire ma veille ciblée

Dans le présent billet, je voudrais présenter deux astuces pour faire ma veille ciblée. Un autre billet, en cours de rédaction, abordera plus en détail le cas des fils RSS et l'usage d'un agrégateur. Un précédent billet Le combo gagnant pour optimiser sa veille présentait mon cycle de veille quotidienne : lecture en direct (au sein de l'agrégateur) ou lecture plus tard (via Wallabag), conservation du lien (Shaarli). Cette veille recoupe un tous les domaines qui ont un intérêt pour moi.

Le présent billet se focalise sur une veille ciblée. Par veille ciblée j'entends le fait de faire une recherche sur une thématique donnée, pour avoir un état des lieux ou un état de l'art à un instant t. Cela m'est utile dans le cadre de la préparation de mes projets professionnels, pour me remettre à jour ou au contraire découvrir un nouveau domaine.

Rq : chacune de ces astuces est complémentaire des autres.
Rq2 : ces conseils marchent très bien pour faire une veille ciblée sur un sujet technologique ou un logiciel libre particulier, mais sont probablement efficace dans d'autres cas.

Moteurs de recherche

Je n'évoquerai que brièvement la recherche par mot clef judicieusement choisi au sein de différents moteurs de recherche, avec classement par date pour trouver les publications les plus récentes. Cela semble une évidence. C'est ainsi que font la plupart des personnes qui affirment faire de la veille (et auxquelles je pose la question suivante lors des entretiens de recrutement : "faites vous de la veille et si oui, comment ?".

Journal du Hacker

Je suis abonné via le fil RSS au Journal du Hacker (pas encore à la newsletter - Le Courrier du hacker : le point après (déjà) 5 numéros et les leçons retenues).

Là encore, je profite de la fonctionnalité de moteur de recherche incluse sur le site et je fais une recherche par mots clefs, que je trie par date. Cela me permet de retrouver des liens vers différents billets de blog au sein desquels le sujet d'intérêt a été abordé. Et je profite donc du présent billet pour remercier tous les membres de la communauté qui prennent le temps de saisir des articles d'intérêt et d'ajouter des tags pertinents.

Attention toutefois : le Journal du Hacker ne référencie (par choix éditorial, cf https://www.journalduhacker.net/about) que des articles en langue française, et exclue donc de facto toute la richesse du monde anglophone (dont on pourra profiter via les moteurs de recherche).

Rq : les articles les plus pertinents des gros blogs et sites comme Linuxfr.org sont généralement ajoutés dans le journal du Hacker, cela me fait gagner un temps certain en n'ayant pas à chercher sur ces sites (vu que si un article correspond à ma thématique d'intérêt, il ressortira dans le résultat de recherche du Journal du Hacker).

Slideshare

Slideshare est le site où l'on retrouve bon nombre de supports divers et variés de présentation, de conférences... Là encore, le site dispose d'un moteur de recherche interne, je fais une recherche par mots clefs. Et je peux ainsi retrouver des supports qui me permettent d'avoir des retour d'expériences, des états des lieux, des introductions sur différents sujets d'intérêts.

Là encore, la date est importante, ainsi que le numéro de version pour les logiciels présentés (il faut bien avoir en tête quelle est la dernière version d'un logiciel avant d'étudier 80 slides sur une API d'un logiciel qui est désormais dépréciée avec la dernière version en date...)

Youtube

Complémentaire de Slideshare, YouTube permet d'avoir les conférences et le discours autour du support mais aussi de trouver des tutoriels, des vidéos de démonstration et de fonctionnement des logiciels. YouTube étant le site incontournable pour la vidéo, la mode étant à ne plus faire de l'écrit mais des vidéos, YouTube peut être une bonne source pour avoir un aperçu d'un sujet (par chance les logiciels sont un sujet moins polémique et moins soumis à controverse que d'autres, mais il ne faut toutefois pas en oublier son esprit critique).

Les réseaux sociaux

Il m'arrive également de poser une question précise et ciblée, généralement en anglais pour faciliter la visibilité (les personnes susceptibles de répondre techniquement sachant l'anglais, même dans le cercle francophone). Là encore, je regarde qui me répond (est-ce une personne que je connais, de confiance ou un expert du sujet qui intervient suite à la diffusion au sein du réseau social de mon message).

Faire appel à sa mémoire

Je fais également appel à mémoire. J'essaie de me rappeler si je n'ai pas récemment lu ou passé tel ou tel sujet sur tel ou tel site que je suis (et je recherche dans mon Shaarli), si je ne connais pas une personne spécialiste de la dite technologie et avec laquelle je serai en relation via les réseaux sociaux (je lui demande alors quelques conseils et ressources pour bien démarrer sur le sujet).

Autres

Je pourrais également chercher sur des sites comme Medium ou autre, mais je pars du principe que si l'information se trouve sur ces derniers et est accessible librement, elle aura été référencée et donc trouvée via l'astuce du moteur de recherche.

Conclusion

N'hésitez pas vous aussi à partager en commentaire vos astuces pour faire votre veille sur le logiciel libre, je suis preneur d'autres astuces qui pourraient m'aider à être encore plus efficace sur le sujet, lifehacking oblige.

Quelques trucs sympa avec SSH

Le fichier config

Pour éviter les attaques par défaut sur le port 22 pour SSH, il est courant de changer de port. Du coup, il faut lancer ssh avec l'option -p. Exemple

ssh -p 1234 moi@monserveur.org

De plus, l'utilisateur que l'on veut utiliser peut être un utilisateur différent de la session courante. On peut aussi vouloir renommer le nom du serveur pour simplifier

Pour simpifier tout ça, il y a le fichier config qui se trouve /.ssh/config

Extrait du fichie ~/.ssh/config

###################################
# PERSO #
###################################
host cloud
User moi
hostname cloud.monserveur.org
Port 1234
IdentityFile /home/genma/.ssh/SSHKey

Et du coup la commande ci-dessus

ssh -p 1234 moi@monserveur.org

deviendra

ssh moi@cloud

Avoir une bannière personnalisé à la connexion ssh

Quand je suis connecté, j'aime bien avoir une petite personnalisation du genre :

genma@PC~$ ssh genma@cloud.monserveur.org
.____________.
MM. .MM | |
"MM._______.MM" | Le cloud |
/ \ | de Genma |
/ dMMb dMMb \ | |
/ dM"""Mb dM"""Mb \ |____________|
| MMMMM"/O\"MMMMM | ||o
| "MMM"/ \"MMM" | .dMMM 8
| dMMMMMMMM
\ \ / dMMMMMMMP
AMMMMMMMMM\_____/MMMMMMMMMMMM"
Enter passphrase for key '/home/genma/.ssh/SSHKey':

Pour celà, j'ai créé (repris en l'adaptant un peu) un dessin en ASCII art. Il faut ensuite créer un fichier

/etc/banner

qui contient l'ASCII art dedans. Et aux connexions SSH suivantes, ce dessin apparaîtra.

Recevoir un SMS - Freemobile à la connexion SSH

J'avais rédigé un tutoriel SSH Notification par SMS Freemobile à la connexion expliquant d'être notifié par sms lors de toutes initialisation d'une connexion sftp ou ssh quand on est un utilisateur Freemobile. Je vous renvoie donc vers cette astuce.

Avoir un prompt coloré

Pour avoir un prompt (invite de commande) coloré et savoir de suite, visuellement, sans avoir à lire sur quel machine je suis (je met du vert, du bleu, du violet) ou si je suis en root (je met alors du rouge), j'utilise la technique du prompt coloré que j'avais décrite ici : Prompt coloré pour son shell

Documentation Centreon en epub, crash avec la liseuse Bookeen

Centreon est une solution de supervision des applications, systèmes et réseaux, basé sur les concepts de Nagios. Le cœur de Centreon est Open Source, distribué sous licence GPL v2 et gratuit. Des modules complémentaires à valeur ajoutée payants sont distribués par l'éditeur. Des modules complémentaires gratuits et open sources sont développés par des contributeurs sur GitHub.

Il n'existe pas, à ma connaissance, de livre aussi récent et complet que la documentation actuelle disponible ici https://documentation-fr.centreon.com (Saluons le très gros travail fait par les équipes de Centreon ) et pour moi le site Web est la référence. La documentation en français est très riche (tout est complètement traduit ou très probablement). Un service que je trouve intéressant est la mise à disposition de cette documentation au format epub et pdf.

J'ai donc récupéré ces fichiers et les ai mis sur ma liseuse Bookeen. Le soucis est que quelque soit l'epub, que ce soit la documentation complète ou la documentation chapitrée (une thématique par epub et des documents plus petits, la taille du fichier n'est donc pas le soucis), le document commence à s'ouvrir, j'ai un message "Ouverture en cours" et ensuite "Une erreur inattendue s'est produite lors de l'accès à Documentation Centreon.epub. Le document va maintenant être ignoré. Pour l'ouvrir à nouveau, parcourir la Bibliothèque en mode dossier". Quand l'appareil est mis en veille, la couverture utilisée est bien celle de l'epub Centreon. Mais l'epub n'est pas lisible.

J'ai tenté une transformation du epub en pdf via Calibre même effet. Alors que ces mêmes fichiers sont lisibles sans soucis dans Calibre et le logiciel de lecture intégré dans l'application.

La documentation source est très probablement mal formaté... En effet, des recherches montre qu'une version ultérieure du firmware d'un autre modèle de liseuse avait dans son changelog le fait de corriger un crash de la liseuse sur certains epubs mal-formatés. Il est très probable que ce soit la même chose dans mon cas.

J'ai envoyé un message Twitter en mentionnant Centreon et Bookeen (avec qui j'ai régulièrement des interactions via ce moyen), j'espère que les community managers gérant ces comptes sauront m'apporter une réponse.

De même si vous avez une solution ou des livres ou documentation sur Centreon à me conseiller (l'anglais ne me pose pas de soucis) je suis preneur. Merci à vous.

Cours sur les serveurs web par Luc Didry

Luc Didry, qui se présent lui-même comme un Administrateur Systèmes, Perliste fou, Debianeux convaincu, Libriste radical, est également connu sous son pseudonyme de Framasky et pour ses activités d' Administrateur systèmes au sein de l'association Framasoft.

Il est (a été ?) également enseignant pour la formation de la Licence Professionnelle Administration de Systèmes, Réseaux et Applications à base de Logiciels Libres (asrall.fr, adresse qui redirige vers le programme de la formation.

Ses cours (avec quelques exercices en bas de page) sont mis à disposition sur son site https://luc.frama.io/cours-asrall/serveurs_web/index.html. Au sommaire :
- Introduction
- Autres élément de configuration
- Les hôtes virtuels & les journaux
- Redirections, contrôles d'accès & chiffrement
- CGI & cache
- Mesures de performance

Des tutoriels sur Apache et Nginx et leurs configurations, j'en ai lu un certain nombre et ce cours est probablement le meilleur que j'ai lu. A la sortie, on a une très bonne référence pour la compréhension des fichiers de configuration d'Apache et Nginx, avec une comparaison entre eux, leurs spécificités et caractéristiques, avec les différentes options et leurs rôles respectifs.

Pour tout comprendre du contenu des fichiers de configuration d'Apache et Nginx, dans le détail, mais de façon claire, précise et pédagogue, je ne peux donc que recommander de lire ce cours. J'ai compilé tout ça dans un document LibreOffice, il y en a pour 70 pages... De quoi s'occuper quelques heures. Et un grand MERCI à Luc aka Framasky pour ce super boulot et sa mise à disposition.

Yunohost – Goaccess – Rapport HTML depuis des logs d’un serveur web

Présentation de GoAcess

GoAccess présente des statistiques en lisant les logs de votre serveur Web, non pas en exécutant du code côté utilisateur.

Site : https://goaccess.io/

GoAccess fonctionne en ligne de commande et présente par défaut ses résultats dans la console, en temps réel. Une série de panels (que l'on peut étendre individuellement) présentent les différents types de données : nombres de visiteurs uniques, URL non trouvées, OS, etc. Classique. Il est également possible de générer une − plutôt jolie − page html

Le site GoAccess : analyse simple et efficace des logs d'un serveur Web - https://hal-9000.fr/?s11R3Q a fait un tutoriel qui montre qu'il est assez simple d'installer et d'utiliser GoAccess.

Autres tutoriels présentant des astuces complémentaires :
- Goaccess : un autre outil de Web Analytics par Denis Szalkowski
- GoAccess – Des logs web en temps réel et en cli

GoAccess répond à mon besoin

J'ai étudié différents systèmes permettant de générer des rapports à partir de logs, je connais un peu ELK (ElasticSearch, LogStash, Kibana), mais ça reste très complexe et un peu usine à gaz pour mon besoin qui est de tout simplement superviser / avoir des rapports issus des logs de mon serveur Yunohost. Donc GoAcess correspond bien à mon besoin.

Par défaut, Yunohost conserve les logs du serveur Nginx un certain temps (il faudra que je regarde en détail la configuration de logrotate), cela convient

Automatisons un peu tout ça...

L'objectif est d'avoir des rapports réguliers en HTML. Pour ça, j'ai mis en place une tâche CROn qui va faire une concatènation des différents fichiers de logs et générer un seul et même rapport HTML via GoAccess qui contient donc une visualisation graphique de l'ensemble des données issues de ces logs. Je peux ensuite m'envoyer le rapport par mail, le récupérer, le mettre à disposition dans un espace dédié du serveur web...

#/bin/bash

# On fait le cat dans /tmp pour que ce soit effacer ensuite
cat /var/log/nginx/blog.genma.fr-access.log* > /tmp/blog.genma.fr-access.full.log
echo "Goacess - Lancement de la generation des rapports HTML"
goaccess --log-format=COMBINED -f /tmp/blog.genma.fr-access.full.log -a -o BlogFullReport.html
# Le fichier BlogFullReport.html contient un beau rapport HTML complet généré par Goaccess.
echo "Goacess - Fini"

Yunohost ?

Yunohost propose la création de coquille vide pour des applications, via les Multi Custom Webapp, une version forkée des Custom Webapp qui permettent d'en créer plusieurs.

J'installe l'application en indiquant comme paramétrage :
- Nom de l'application : GoAccess
- Adresse et chemin : moninstanceyunohost.fr et /goacess comme sous répertoire
- Utilisateur : genma

Ca mouline (il y a la création et modification de la configuration nginx qui se fait) et ensuite j'ai bien une tuile "GoAccess" dans la liste des applications et un dossier "/var/www/webapp_genma/GoAccess" dans lequel j'ai par défaut le fichier "index.html".

Il ne reste qu'à ajouter au script ci-dessus une ligne du type

mv /tmp/BlogFullReport.html /var/www/webapp_genma/GoAccess

et depuis un navigateur web, en étant connecté à Yunohost d'aller sur
https://moninstanceyunohost.org/goacess/BlogFullReport.html

pour avoir le beau rapport généré par GoAccess !

Aller plus loin ?

Il suffit de faire un script un peu plus avancé, de le mettre en tâche planifiée (cron) et de créer par exemple un fichier index.html qui contiendra par exemple une série de liens :
- BlogFullReport_Jour1.html
- BlogFullReport_Jour2.html
- BlogFullReport_Jour3.html
- InstanceFullReport_Jour1.html
- InstanceFullReport_Jour2.html
- InstanceFullReport_Jour3.html

Ici les fichers InstanceFullReport_JourX.html étant généré par une ligne faisant appel à GoAcess mais pour un cumul de logs de fichiers Nginx pour l'instance (cumul des fichiers de log nginx pour monistanceyunohost.fr).

Yunohost et les applications Framasoft

Comme je le disais dans mon billet et ma conférence De Framasoft à Yunohost, réapproprions nous le cloud un partenariat avait été mis en place entre Framasoft et Yunohost avec du temps d'un salarié de Framasoft consacré au packaging d'application Framasoft pour Yunohost.

Quelques mois après, où en est-on ?

L'idée n'est pas de parler au nom de Framasoft mais plus de remettre en avant cette collaboration et de faire un petit suivi de l'avancement. Une image valant mieux qu'un long discours :

On peut donc voir qu'il reste donc encore des applications à packagées, il faut maintenir les packages existant (en les faisant évoluer pour que les applications installées sur une instance Yunohost soient mises à jour ou qu'une installation fraîche installe la dernière version de l'application...)

Si vous souhaitez aider, si vous avez un peu de temps ou tout simplement des retours d'expérience à faire, il y a un topic dédié dans le forum Yunohost sur le sujet.

Contribuez à Yunohost

D'une façon plus générale, Yunohost a besoin de contributeurs pour tous les aspects du projet. A savoir :
- backend : python (simple), bash (lua)
- frontend : html/js (sammy.js)
- packging des apps : full bash, et des connaissance en sysadmin sont nécessaires (configuration nginx)
- sécurité : revue de code
- infrastructure du projet : debian, deb toolchain, ruby
- relation avec la communauté : communication, support via le forum, dans les issues de Git...
- aide à la traduction et à la documentation
- testing (les versions beta) avec rapport de bugs
- ...

Wget derrière un SSO

SSO ???

Un ensemble de page derrière un SSO (abréviation en anglais Single Sign-On : SSO) ou authentification unique est une méthode permettant à un utilisateur d'accéder à plusieurs applications informatiques (ou sites web sécurisés) en ne procédant qu'à une seule authentification.. C'est le fameux système que l'on retrouve en entreprise où on se connecte une fois pour accéder aux différentes applications de l'Intranet. Pour des infrastructures variées et complexes, il y a lemonldap par exemple. Ou pour Yunohost, il y a SSOwat, un SSO pour nginx, écrit en Lua.

Ma problématique

Sur une des applications de l'Intranet de l'entreprise dans laquelle je travaille, j'ai eu à récupérer différentes pages via l'outil Wget. Soucis, wget ne permet pas de se connecter au SSO.

Au lancement de Wget, l'application ne me voyant pas connecté, je suis renvoyé vers le SSO et ma page récupérée par Wget, même si le lien est correct contient deux champs HTML "Identifiant et mot de passe", soit la mire de connexion.

A l'arrivée sur la page de l'application, il y a une vérification de la présence du cookie d'authentification et comme wget ne le fournit pas, on est renvoyé vers l'authentification.

La solution ?

On lance Firefox dans lequel on a ajouté l'extension Export Cookies. On se connecte sur le site (on a donc un cookie d'authentification qui est créé). On exporte ce cookie via le menu "Outils -> Export Cookies" et on sauvegarde le ficher cookies.txt.

Puis on relance la commande wget qui va bien, avec les options qui vont bien à savoir :

wget --load-cookies cookies.txt -p --no-check-certificate https://application.enterprise.com/page01.htmlt -O ./Applicaton_page01.html

--no-check-certificate pour éviter le soucis avec https
--load-cookies cookies.txt : charge le cookie d'authentification sur le SSO

Ce qui manque à beaucoup de tutoriel

Je vois passer dans mon agrégateur RSS et je lis un certain nombre de tutoriels sur les services à mettre en place soi-même, sur l'autohébergement, sur comment installer tel ou tel service (NextCloud par exemple). Ces tutoriels sont une très bonne choses, ils donnent de l'information, partagent des bonnes pratiques. Il y a plus de précisions sur comment sécuriser l'installation (avec les services webs, le cas d'une connexion en https est de plus en plus abordé, avec souvent comme recommandation de mettre en place un certificat Let's Encrypt).

Toutefois, j'estime que dans ces bonnes pratiques, il manque toutefois une bonne pratique importante pour que ce tutoriel soit complet : les sauvegardes. Quels sont les fichiers de configuration à sauvegarder pour réinstaller le logiciel par exemple et retrouver le même paramétrage. Et surtout quelles sont les données utilisateurs, où elles se trouvent et comment les conserver ?

Je ne m'attends pas à avoir un tutoriel complet sur les sauvegardes (il y a des tas de façon de faire et d'outils pour faire ça), mais au moins à pouvoir savoir quelles sont les données que je dois impérativement sauvegarder. Un lien vers un autre tutoriel en ligne déjà existant sur comment sauvegarder m'irait très bien...

Si je dois réinstaller une machine ou migrer sur une autre machine par exemple, je réinstalle tout. Du coup, pour le logiciel, je repartirai de la dernière version (à partir du code source ou des paquets). Mais pour mes données, je repartirai de mes sauvegardes. J'aimerais donc savoir où je dois restaurer mes données (logiquement au même endroit depuis lequel j'ai fait mes sauvegardes).

De même, pour aller plus loin, des précisions sur les formats supportés, les possibilités d'import et d'export et dans quels formats sont fait les sauvegardes, seraient le top du top.

Du coup, pour les prochains tutoriels que je ferai, dès que je me poserai la question de comment faire la sauvegarde, je ferai les tests (sauvegarde ET restauration de cette sauvegarde) et je ferai alors une section dédié dans le corps du billet de blog tutoriel. Car autant appliquer moi-même les recommandations que je fais.

Cryptpad, tutoriel et critiques

Présentation de Cryptpad

Pour en savoir plus sur Cryptpad et son fonctionnement, ses caractéristiques et spécificités, je vous invite à lire le très bon article de NextInpact : CryptPad v1.10.0 est disponible, à la découverte du service collaboratif chiffré de bout en bout

En résumé, c'est un système de pad chiffré zeroknowledge le service ne détient pas les clefs de chiffrement utilisées par les utilisateurs en local et ne peut donc pas consulter le contenu. On parle en général de solution de bout en bout, ou E2E (End-to-end) pour les intimes. Il est donc possible de partager un document, de l'éditer à plusieurs, sans que celui-ci soit stocké en clair sur le serveur. L'usage est ainsi considéré comme privé, mais pas anonyme, prévient l'équipe qui renvoie vers l'utilisation de Tor ou d'un VPN pour ajouter un telle couche de protection.

Les fonctions apportées par Cryptpad :
- CryptPad - Pad
- CryptCode - Éditeur de code collaboratif
- CryptSlide - Présentation en markdown
- CryptPoll - Sondage

Installation de Cryptpad sur CentOS - pourquoi cette documentation ?

Le site officiel https://cryptpad.fr/ ne détaille pas assez l'installation et j'ai un peu galéré à avoir un système fonctionnel et plus abouti que de simplement suivre ce qui est indiqué sur la page de documentation par défaut qui permet de cloner le dépôt Git, de lancer l'application sur un port exotique depuis la ligne de commande...

Voir https://github.com/xwiki-labs/cryptpad/wiki/Installation-guide

Exemple de souci rencontré

On a donc des dossiers qui créés par défaut depuis l'endroit où on lance le server Cryptpad... La preuve :

[root@cryptpad tmp]# mkdir /tmp/test
[root@cryptpad tmp]# cd /tmp/test/
[root@cryptpad test]# /usr/bin/node /home/cryptpad/server.js
loading rpc module...

[2017-07-26T08:35:04.802Z] server available http://[::]:3000
Cryptpad is customizable, see customize.dist/readme.md for details
^C
[root@cryptpad test]# ls
blob blobstage datastore pins

Cryptpad vient de créer des dossiers (nécessaires à son fonctionnement) depuis l'endroit où je le lance... Oui je suis en root donc il a les droit, mais quand même...

De plus, je connais mal "Node", lancer un serveur en Javascript, j'ai encore un peu de mal avec ça (je suis de la vielle école), c'est lancé sur un port exotique (3000), directement exposé, sans proxy ou autre.

Pour réussir à trouver une configuration de Nginx qui marche, j'ai du testé les différentes solutions proposées dans des issues Github du projet, car là encore, il n'y a rien dans la documentation.

Le fait que le projet propose la fourniture d'un espace de stockage aux utilisateurs enregistrés contre rémunération (cela semble être le business model) me fait penser que la documentation est volontairement pauvre pour que l'on ait à passer par eux en tant que prestataire...

De même, dans le fichier de configuration l.156 et suivante semble confirmer cette hypothèse (source du fichier

/*
* If you are using CryptPad internally and you want to increase the per-user storage limit,
* change the following value.
*
* Please note: This limit is what makes people subscribe and what pays for CryptPad
* development. Running a public instance that provides a "better deal" than cryptpad.fr
* is effectively using the project against itself.
*/
defaultStorageLimit: 50 * 1024 * 1024,

Mais le plus gênant pour moi - je vous laisse juger - toujours dans ce même fichier :

/*
* By default, CryptPad also contacts our accounts server once a day to check for changes in
* the people who have accounts. This check-in will also send the version of your CryptPad
* instance and your email so we can reach you if we are aware of a serious problem. We will
* never sell it or send you marketing mail. If you want to block this check-in and remain
* completely invisible, set this and allowSubscriptions both to false.
*/
adminEmail: 'i.did.not.read.my.config@cryptpad.fr',

J'aime beaucoup l'humour (i.did.not.read.my.config = je ne lis pas mon fichier de configuration : moi, je le lis...) mais est-ce normal que le logiciel que j'installe contacte l'éditeur. Et ce n'est pas indiqué ailleurs, bien en évidence...

Bref, voici mon tutoriel, plus complet ci-dessous.

Installation de Cryptpad

Je suis parti sur un serveur sur lequel était installé CentOS.

Installation de Cryptpad

# yum install epel-release
# yum install -y nodejs git
//Ajout d'un user cryptpad
# adduser cryptpad
# su cryptpad
// Dans /home/cryptpad on clone le depot github
$ cd /home/cryptpad
$ git clone https://github.com/xwiki-labs/cryptpad
// on deplace le contenu un cran au-dessus
$ cd /home/cryptpad/cryptpad
$ mv * ../
$ mv .* ../
$ cd ..
//Installation de cryptpad via la commande npm
$ npm install
//retour en root
# npm install -g bower
//Retour en utilisateur cryptpad
# su cryptpad
$ bower install --allow-root
$ cd /home/cryptpad/
//Copie du fichier de configuration par defaut
$ cp config.example.js config.js
//Changement des droits
chmod -R 755 /home/cryptpad/
//Il faut créer / copier le dossier customize pour que les pads anonymes soient actifs et sauvegardés
cp -r customize.dist/ customize/

Ouverture du port sur le firewall

Pour activer l'ouverture du port 3000 :

# firewall-cmd --zone=public --add-port=3000/tcp --permanent
success
# firewall-cmd --reload
success
# firewall-cmd --zone=public --list-ports
3000/tcp

Lancement de cryptpad

Depuis la ligne de commande, permet de lancer cryptad pour faire de tests temporaires :

$ node ./server.js

Installation en tant que service (Systemd)

Création d'un fichier /etc/systemd/system/cryptpad.service qui contient :

[Unit]
Description=cryptpad
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/node /home/cryptpad/server.js
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=cryptpad-app
User=cryptpad
Group=cryptpad
Environment=PATH=/usr/bin:/usr/local/bin
Environment=NODE_ENV=production
WorkingDirectory=/home/cryptpad

[Install]
WantedBy=multi-user.target

Installation de Nginx comme proxy

Comme indiqué dans mes critiques, j'ai passé du temps à tester différents configurations pour finir par trouver celle qui marche

Exemple de fichier de configuration nginx :
https://github.com/xwiki-labs/cryptpad/blob/master/docs/example.nginx.conf

Fichier de configuration nginx qui marche :

[root@cryptpad cryptpad]# cat /etc/nginx/conf.d/cryptpad.conf
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}

upstream wscrypt {
server 127.0.0.1:3000;
}

server {
listen 80;
server_name cryptpad.monserveur.com;
return 301 https://cryptpadpad.monserveur.com$request_uri;
}

server {
listen 443 ssl;

server_name cryptpad.monserveur.com;
ssl_certificate /etc/moncertificat.crt;
ssl_certificate_key /etc/moncertificat.key;
ssl_trusted_certificate /etc/gandi_SSLCA2.pem;
ssl_dhparam /etc/ssl/certs/dhparam.pem;

ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # omit SSLv3 because of POODLE
# ECDHE better than DHE (faster) ECDHE & DHE GCM better than CBC (attacks on AES) Everything better than SHA1 (deprecated)
ssl_ciphers 'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA';
ssl_prefer_server_ciphers on;

location / {
proxy_pass http://wscrypt;
}

location /cryptpad_websocket {
proxy_pass http://wscrypt/cryptpad_websocket;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}

}

Configuration du firewall

# firewall-cmd --add-service=http
# firewall-cmd --add-service=https
# firewall-cmd --runtime-to-permanent
# firewall-cmd --reload

Pour vérifier :

# firewall-cmd --list-services

Sauvegarde des pads et des utilisateurs

Le dossier contenant toutes les données (pad et comptes utilisateurs) se situe dans le dossier datastore. Le transfert de de dossier permet de migrer d'une instance Cryptpad à une autre. (Il suffit de réinstaller une instance CryptPad et de copier coller le contenu du dossier datastore sauvegardé).

Cryptpad et Yunohost

Pour celles et ceux qui ont une instance Yunohost, et qui seraient intéressées par l'application Cryptpad, celle-ci est packagée et disponible ici : https://github.com/YunoHost-Apps/cryptpad_ynh et il y a un sujet de discussion sur le forum.

Soucis à la mise à jour...

Une nouvelle version est sortie corrigeant une faille de sécurité étant sortie, j'ai donc fait la mise à jour / migration vers la nouvelle version.

Reprend le guide officiel https://github.com/xwiki-labs/cryptpad/wiki/Installation-guide avec des compléments :

Faire une sauvegarde avant

# cp -rv /home/cryptpad /Backup/cryptpad_avant_migration

cd /home/cryptpad
git pull
npm update
bower update

# Manquant dans la documentation
# Sinon, on a toujours les anciens skins/design pour l'interface.
# yes |cp -rv ./customize.dist/ ./customize/

Et surtout IL FAUT PURGER / VIDER LE CACHE DU NAVIGATEUR pour éviter tout conflit / soucis de rafraîchissement.

Reste à faire

Pour moi, il me reste à faire une intégratin de LDAP, l'ajout éventuel d'une base de données pour le stockage des pads, la charge en fonction du nombre d'utilisateurs... vu que le serveur sera utilisé au quotidien par les équipes de l'entreprise où je travaille.

Et comprendre où / comment on a des logs... Car là ça utilise "node".

Lifehacking – L’application Tasks de Nextcloud

Avec le temps, je continue de faire évoluer mes méthodologies de travail. J'utilise beaucoup l'outil de Notes qui se synchronise avec mon instance Nextcloud personnel et je me retrouve à avoir plein de notes qui deviennent des actions d'une todo-liste. J'ai donc cherché à aller un peu plus loin. Je n'ai pas besoin d'un Kanban, j'en ai un si besoin (via l'application Kanboard). Et il existe un outil du même type qui peut s'intégrer dans Nextcloud. Mais ce n'est pas pratique pour une synchronisation / utilisation depuis un smartphone et j'ai avant tout besoin d'un outil utilisable depuis mon téléphone et également depuis un PC. Je cherchais avant tout une alternative à l'application en ligne Todoist, pour un usage personnel, et moins complexe. Et depuis quelques semaines j'utilise l'application Tasks de Nextcloud.

L'application Tasks

L'application Task s'installe facilement via l'outil d'installation des applications de Nextcloud. Le dépot Githun de l'application https://github.com/nextcloud/tasks permet de suivre l'évolution, les bugs et demande existante, il faudra que je me penche dessus.

Par défaut, Tasks reprend les noms des différents calendriers que l'on a dans la partie Agenda, il est possible d'en ajouter d'autres. Ces catégories permettent alors de classer les différentes tâches. Chaque tâche peut avoir une date de début, une date de fin, une priorité (prioritaire ou non), une zone de description pour compléter le champ titre. On peut ajouter des mots clefs / Tags.

Par rapport à un Kanban, il n'y a que deux états pour les tâches : à faire ou fait. Une tâche étant marquée comme fait est conservée mais devient invisible / masquée par défaut.

Dans les choses sympathiques, il y a du "drag & drop" dans l'interface. Comprendre : on peut déplacer une tâche comme sous-tâche d'une autre. Ce qui s'avère très pratique pour réorganiser des tâches déjà créées / existantes.

Synchronisation sur le téléphone

Il faut installer Davdroid et l'application OpenTasks (applications libres disponibles via F-Droid). Les tâches sont alors synchronisées entre l'application Tasks dans Nextcloud et l'applicatif OpenTasks, dans les deux sens. Pratique quand ajoute un élément depuis son smartphone.

Ce qu'il manque ? Les limites de l'application Tasks

- Ce n'est pas multi-utilisateur, on n'a pas de diagramme de Gant. Et ce n'est pas le but de cette application. Cette application se veut rester simple et efficace.
- C'est indépendant de l'agenda. Même si on a la notion de date, les tâches ne s'ajoutent pas dans l'agenda.
- Pas de possibilité de faire des recherches. Le CRTL+F (fonction de recherche du navigateur) est donc bien utile.

Sauvegarde

Toutes les données se trouvant dans la base de données utilisée par Nextcloud, en faisant un dump de cette base de données régulièrement, je sauvegardes ces tâches. J'ai testé le réimport du dump sur une base de recettes et effectivement, ce dump suffit à restaurer les différentes tâches.

Lifehacking ?

J'utilise donc l'application Tasks depuis plusieurs jours et à l'usage, ça correspond à ce que je souhaitais faire / ce dont j'avais besoin. Si je résume mon organisation, j'utilise donc 3 applications pour mon organisation personnelle :

- Calendrier : pour des événements précis, ponctuels ou récurrents, avec un label rapide et des rappels / alerte
- Notes : prise de notes que je dépile rapidement, que je trie et efface, ajoute dans mes tâches
- Tasks : une sorte de todo avec des sous éléments, des tags.

Je parcours régulièrement ma todo-liste qui est donc dans Tasks. L'avantage est très nettement celui de pouvoir le faire depuis mon smartphone et de pouvoir l'éditer depuis le smartphone, en ayant quelque chose de rapide, simple et un peu plus évolué qu'un fichier texte et moins complexe que
le fichiers Calc que j'ai et conserve, toujours pour mes usages de suivi de mes journées.