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.

UbuCon – Convention Ubuntu Europe

Un petit billet pour relayer le fait que début Septembre, durant 3 jours, ce sera l'UbuCon Paris - Convention Ubuntu Europe.

Ca se déroule les 8, 9 et 10 septembre 2017 (du vendredi au dimanche), à la Cité des sciences et de l'industrie, Parc de la Villette, PARIS, France

Toutes les informations sont sur le site https://ubucon.paris/.

Un événement grand public, professionnel et communautaire lors duquel sont attendus 10 000 visiteurs.

Organisé par la communauté, cet événement accueillera les professionnels, les institutions, les contributeurs Ubuntu européens, et plus largement toute la communauté du Libre et le grand public.

Une programmation riche et variée de conférences, tables rondes, ateliers et démonstrations. Un parcours théâtralisé sous forme de 6 univers présentant les usages numériques de demain.

Je serai très probablement sur place au moins le week-end. A voir selon le programme... quand il sera publié.

Le guide de survie Tails

Un petit billet pour parler d'une initiative que je trouve sympathique : un guide de survie Tails. Comme indiqué sur le site,

Ce guide de survie n'est pas réalisé par l 'équipe de TAILS, il doit donc être utilisé avec une prudence raisonnable par tous et toutes.

Il est issu d'un travail de formation mené par des militant-e-s au sein de leurs organisations. Il est mis à disposition comme outil pratique sans aucune garantie : seule la documentation officielle de TAILS fait foi et elle seule doit servir de référence en cas de doute.

Il est mis à jour une à deux fois par trimestre, n'hésitez pas à passer sur ce blog pour vérifier si une nouvelle version est sortie.

Si vous détectez des erreurs, des imprécisions ou des failles de sécurité dans le guide, n'hésitez pas à nous contacter pour nous en faire part.

Nous avons pour projet de créer un guide en ligne en plus de la version téléchargeable en pdf. Aucune date fiable ne peut être donnée pour le moment, mais nous espérons que ce projet sera complété à l'horizon 2017-2018.

Editer par Chouette couette et Grosses Moustaches, il y a donc deux documents
- Guide de survie
- Tails - Pas de panique
en couleurs, avec plein de captures d'écrans et d'explications (avec des flèches qui indiquent où cliquer...). Un exemple :

C'est du pas à pas, c'est pratique pour se familiariser avec le fonctionnement et l'usage de Tails. A recommander.
Enfin, penser ensuite à aller dans un-e Café vie privée / Cryptoparty / Chiffrofête pour valider votre usage.

Je serai aux RPLL (RMLL)

Les RPLL (Rencontres Professionnelles du Logiciel Libre) se dérouleront les 4 et 5 Juillet 2017 à Saint-Étienne (42) de 9h à 18h à l'Usine des Forces Motrices. Les RPLL se dérouleront donc en même temps et sur le même lieu que les RMLL2017 (Rencontres Mondiales du Logiciel Libre). Ces Rencontres Mondiales démarrent le samedi 1 juillet jusqu'au vendredi 7 juillet et proposent un grand nombre de manifestations, concerts, échanges, agoras, ateliers, conférences ainsi qu'un village associatif (bâtiment à coté des RPLL).

Le salon s'adressent donc aux entreprises (TPE, PME, PMI, ETI, Grandes entreprises), collectivités, associations, universités et écoles qui trouveront des réponses à l'ensemble de leurs besoins numériques, techniques et fonctionnels.

https://www.rpll.fr/

Je serai présent aux RPLL et uniquement aux RPLL, sur le stand de l'entreprise qui m'emploie, à savoir Linagora. Je ne pourrais malheureusement pas, par contrainte professionnelle, assister à l'ensemble des RMLL. Mais ces deux jours seront peut être l'occasion de se revoir ou de se rencontrer pour les personnes qui seront sur place ?

Je serai également à la conférence Hébergements et maîtrise de ses données, c'est mieux de savoir ! (hyb/RPLL) 14h 5/07 (durée : 1h)Auditorium J022 - St Etienne Telecom pour représenter mon entreprise ! (Sous ma véritable identité, je remplacerai mon collègue initialement prévu)
Pitch : De plus en plus de données et fonctionnalités sont fournies par des prestataires de tous horizons. La problématique est déjà abordée pour la société civile avec les questionnements relatifs aux GAFA.Ces questions sont tout aussi importantes et stratégiques pour l'univers professionnel et les administrations, que ce soit en tant que "consommateur" ou "fournisseur".
En tant que consommateur, nous rencontrons de plus en plus de solutions hébergées (cloud, Sass, ....) qui couvrent un large éventails de services (stockage de données, CRM, téléphonie, ....) Comment savoir ce qui est fait de toutes nos données ? En tant que fournisseur, les ENL proposent des alternatives mais en pratique qu'est ce qui les différencient des autres prestataires ?

De plus, si vous souhaitez changer de poste - trouver un un nouvel emploi, ce pourrait être l'occasion de discuter des postes ouverts au sein de mon équipe, de me présenter votre CV et de faire un entretien technique...

Sur ce que j'attends des candidat.e.s ? Voir à ce sujet mes billets :
- Je suis chef d'équipe ; tu nous rejoins ?
- Où sont les passionné.e.s ?

SSD Crucial MX300

Un communiqué de presse reçu...

Il y a quelques jours, j'ai reçu le communiqué de presse suivant, à propos d'une application que lance Crucial, la marque qui fabrique, entre autre des SSD.

En quelques mots, l'application lancée par Crucial permet de faciliter l'installation d'un SSD et supprime tous les termes techniques pouvant effrayer les non-initiés. Désormais, il est possible d'installer un nouveau SSD en moins de 15 minutes, en suivant simplement les instructions de l'application web.

Charger ses fichiers et ses applications sur un SSD se fait d'une traite, aussi simplement qu'allumer ou éteindre une lumière. Pour toutes les tâches quotidiennes, les SSD sont en moyenne six fois plus rapides que les disques durs classiques. La nouvelle application rend tous ces avantages plus accessibles pour les personnes craignant de démonter eux-mêmes leur ordinateur. Fini le jargon, place à un processus d'installation très simple illustré par des textes et des vidéos.

N'hésitez pas à faire vous-même le test ! Il suffit de nous contacter en nous donnant les caractéristiques de votre machine, et nous vous ferons parvenir un SSD pour l'installer ensuite grâce à l'application web compatible mobile de Crucial http://www.crucial.fr/fra/fr/installation-ssd

Un billet sponsorisé ?

Avec une proposition de tester le dernier modèle de SSD de la marque. J'ai donc répondu de façon favorable à cette demande de billet sponsorisé et quelques jours plus tard, je recevais un SSD "Crucial 525GB MX300". En échange du présent billet que je me suis engagé à rédiger avec un lien vers le site ee Crucial, j'ai donc reçu et pu garder un SSD. Si je précise tout cela, c'est par soucis de transparence.

N'ayant que des machines sous Linux (Ubuntu pour la plupart) et cela a son importance, mon test devrait quelque peu changer des éventuels autres billets de blogueurs qui auraient reçu ce même cadeau. ;)

Avant d'avoir une réponse favorable, j'ai été invité à tester via un site en ligne qui propose l'"Outil Scanner Système Crucial". Un programme pour Windows... Que je n'ai pas pu lancer. Mais comme je suis geek, une recherche rapide m'a confirmé que ce modèle était un modèle standard, du SATA, au format 2"5 pouces.

J'ai également regardé le site pour lequel je dois faire un lien. Je trouve l'idée originale, mais pour quelqu'un comme moi qui sait ouvrir un PC portable et y mettre un SSD, ce type de tutoriel n'est pas très utile. Surtout toute la partie qui invite à installer un logiciel pour cloner ses données... Un logiciel non libre, soumis à licence (vu qu'il faut rentrer un code fourni avec le SSD lors de l'achat). Bref, je ne suis pas la cible de ce type d'outils.

Par contre, pour le SSD en tant que matériel, c'est autre chose.

Mon test

Dans le PC portable que j'ai, un HP probook G3, il y a un emplacement pour un SSD M-SATA. Et il y avait un emplacement SATA 2"5 pouces de libre. Ca tombe bien. Au démarrage du PC, SSD reconnu sans soucis. Non partitionné, non formaté, j'ai utilisé GParted pour créer une seule et unique partition GPT et la formater en ext4. Le SSD offert se voulant comme étant un SSD haute performance, j'ai lancé différentes séries des mêmes tests sur un SSD puis l'autre et voici les résultats les plus probants. Il est ainsi possible de comparer, via les outils fournis en natifs par Ubuntu dans l'utilitaire de disque, les performances entre le SSD fournit par défaut avec la machine et celui que Crucial m'a offert.

Sandisk M-Sata

Crucial MX300

Sandisk M-Sata

Crucial MX300

Attention vitesse sur courant et sur batterie

Le SSD Crucial MX300 n'a pas les mêmes performances que l'on soit sur batterie ou sur courant, comme indiqué dans le forum (en anglais) ici : Askubuntu.com - SSD Fast is now extremely slow

Cela est lié à la gestion de la consommation électrique.
It appears that Linux or laptops in general (verified on both Lenovo and Dells) default to APM level 80h (128) when booted on battery and FEh (254) when booted on AC power.

For most SSDs, you won't notice much difference. Lite-on SSDs seem to not support power management at all and always run at max speed. Intel SSDs seem to run at about 75% full speed at APM level 128, and 100% speed at APM level 254/255. Crucial SSDs however seem to run at about 6% full speed at APM level 128 (booted on battery) when compared to APM level 254 (booted on AC power).

Sur batterie

genma@laptop:~$ sudo hdparm -t /dev/sda1
/dev/sda1:
Timing buffered disk reads: 94 MB in 3.03 seconds = 30.98 MB/sec

Sur secteur

genma@laptop:~$ sudo hdparm -t /dev/sda1
/dev/sda1:
Timing buffered disk reads: 1452 MB in 3.00 seconds = 483.74 MB/sec

Dans le cas du SSD Crucial MX300, on passe de 30 Mb/Sec sur batterie à 480 Mb/Sec sur secteur soit un facteur 12. A prendre en compte pour les tests et usages au quotidien...

A l'usage au quotidien

La machine n'a pas perdu en temps de disponibilité sur batterie, du moins ce n'est pas suffisamment sensible pour que je vois la différence. Les SSD ne sont pas connus pour être des disques ayant une forme consommation de courant, c'est quelque peu normal.

L'espace de stockage, un peu de plus de 500 go, est appréciable et me permet de pouvoir créer et conserver quelques machines virtuelles dont j'ai besoin pour différentes choses. Il faudra que je vois sur plusieurs jours et semaines si je vois une différence sensible sur des utilisations d'un SSD ou de l'autre.

Pour finir, voici quelques photos de l'unboxing du SSD :

D'autres informations ?

Si vous souhaitez avoir d'autres avis sur ce type de SSD,
Cédric du podcast vidéo GeekInc avait fait une vidéo de 2"30 mise en ligne sur le site de l'ami Korben

Support Signal vs Silence

Signal et Silence sont deux applications pour Smartphone permettant de chiffrer les échanges que l'on peut faire par SMS (et en plus par la voix dans le cas de la première application).

Afin d'avoir un support pour des conférences, ateliers ou autres (Support pour aider lors des Cafés vie privée, Chiffrofête, Cryptoparty), j'ai commencé à mettre en place ce support.

Ca reprend au départle billet que Taziden a posté sur son bloghttps://www.libre-parcours.net, qu'il avait mis à disposition selon les termes de la Licence Creative Commons BY-SA 4.0 International.

J'ai complété ensuite via la reprise de messages de précisions postés dans une discussion par @Sebsauvage sur l'instance Mastodon par Framasoft.

Le support est en LaTEX/Beamer, les sources sont librement disponibles en l'état ici
- Support Signal vs Silence sur Framagit
- Support Signal vs Silence sur Github

Les contributions sont les bienvenues et surtout n'hésitez pas à reprendre et diffusez.

Dans la todo/Raf, il y a entre autre, dans ce que je prévois :
- Ajouter "Comment l'utiliser" avec une présentation d'un premier échange chiffré...
- comment valider le correspondant via sa clef...
- Ajouter des images et illustrations...

Il y a de quoi faire.

Ma maman a voulu un smartphone…

Lors d'un repas du dimanche, ma maman me dit "J'aimerai bien pouvoir aller sur Internet depuis mon téléphone, je peux ?" Comme ma maman a un téléphone Nokia de base, solide mais de base depuis des années, et voit bien que ses enfants ont eux des téléphones avec un écran "un peu plus grand", ça question sous-entend qu'elle aimerait bien elle aussi, avoir un smartphone. Réaction de mon papa, un ours, qui vit dans son terrier et qui n'a jamais succombé au téléphone avec fil (il ne décroche quasiment jamais) "Pourquoi faire ?". Réponse de ma maman : "Pour aller sur Internet sans avoir à allumer l'ordinateur d'en haut (une tour que je leur ai donné, qui est de ce qui était mon ancienne chambre), pour aller regarder ou chercher des choses rapidement". Ma maman a un forfait Freemobile, sait faire des recherches sur le web et sait donc que son forfait lui permettra d'aller sur Internet sans surcoût. Elle a donc la maturité et surtout l'envie et la volonté d'apprendre et de s'approprier une nouvelle technologie, que je ne peux donc que l'encourager et l'accompagner...

Quel smartphone ?

De part mes activités geek avec feu Firefox OS, j'ai encore dans un coin des ZTE Open C. J'en ai un qui est resté sous la dernière version de Firefox OS. Et un autre que j'avais passé sous Cyanogen Mod version 12 ou 13 (équivalent de Android 6.0 Marshmallow). Conservés avec la batterie chargée, les deux téléphones s'allument et s'en suit alors un dilemme personnel : lequel des deux donner à ma maman ? Celui sous Firefox OS ou celui sous Cyanogen Mod ? Je mets fin rapidement au suspens...

Après réflexion, ce sera celui sous CynogenMod.

Il y a plusieurs raisons à cela. Sous Cyanogen, j'avais mis FDroid, il n'y a aucune couche ou référence quelconque ou application relative à Google. Elle aura donc un téléphone respectueux de ses données personnelles, dans la limite du hardware qui n'est pas libre (mais dans ce cas là, on n'a pas de téléphone). De plus mon idée est qu'elle ait des applications au plus près de celles que j'utilise au quotidien, afin que, si j'ai à faire du support à distance, je puisse lui dicter les manipulations à faire en me référant à mon propre téléphone. Firefox OS a une ergonomie peut être plus simple et intuitive, mais il faudrait alors que je fasse appel à mes lointains souvenirs...

Ma maman pourra s'habituer à l'ergonomie d'Android, du moins les bases et quand elle aura changer de téléphone (le ZTE Open C étant devenu dépassé pour ses besoins). De plus, Firefox sous Cyanogen est le même Firefox (dans sa dernière version) que celui sous Android. Alors que le Firefox de Firefox OS a quelque version de retard et est donc devenu un navigateur obsolète.

Pour les SMS, je lui ai mis Silence, l'application que j'utilise au quotidien. Et de ce fait ma maman pourra enfin échanger des SMS avec moi de façon sécurisé ! MamanGenma se radicalise sur les ZInternet du coup.

La suite

Je ne pense pas rédiger d'ici tôt un article expliquant que j'ai créé un compte pour ma maman sur mon instance personne de OwnCloud pour qu'elle puisse avoir un agenda et des contacts qu'elle synchronise, mais sait on jamais. Peut être qu'en lui donnant ce smartphone, je vais ouvrir une boîte de Pandore ? Seul l'avenir nous le dira. A suivre...

Où sont les passionné.e.s ?

L'entreprise dans laquelle je travaille est en pleine phase d'expansion. Nous recrutons, nous cherchons des profils et des spécialistes de tout type, le point commun étant le logiciel libre.

Dans les missions que j'ai au quotidien, j'ai entre autre celle de faire passer des entretiens techniques et d'évaluer les connaissances des candidats. Une équipe travaille au recrutement et on m'affecte donc des rendez-vous, on me transmet des CV de candidats que j'étudie avant de les recevoir.

Les profils que je reçois sont intéressants. Mais aucun ne se démarque vraiment. Les personnes répondent à mes questions, me disent qu'ils font de la veille - et heureusement pour quelqu'un qui travaille dans l'informatique. Mais il manque ce petit plus. Cette petite différence, cet élément différenciant. Ils utilisent des logiciels opensource par effet de mode, parce que c'est la technologie en vague ou celle que leurs missions leurs ont imposées. Je suis face à des profils qui font de l'opensource, moi je voudrais des adeptes du logiciel libre, et la nuance est importante à mes yeux. Tous ont des diplômes d'écoles d'ingénieurs. Ont des diplômes que je n'ai pas, ont très probablement de nombreuses compétences que je n'ai pas. Mais il manque ce petit plus….

À côté de ça, je côtoie des personnes issues de parcours chaotique, des personnes autodidactes qui ont appris à apprendre l'informatique grâce aux possibilités et opportunités qu'offre le logiciel libre et ses quatre libertés. Grâce au partage de connaissances des uns et des autres via les wiki, billets de blog, forum, activités associatives et autres conférences... Des milieux que je connais bien et dans lesquels après avoir longtemps été passif, je suis devenu acteur à mon modeste niveau pour à mon tout partager mes connaissances et mon expérience acquise avec les années. Sébastien, pour ne citer que lui, est un bien bel exemple de cette réussite. Il fait des billets de qualité avec lesquels j'apprends beaucoup de choses. Ce que je cherche, c'est cette personne qui partage, qui contribue, qui diffuse, qui a une présence et une expertise dans le logiciel libre.

Alors, je profite d'avoir un réseau de personnes que je connais pour recruter et coopter. Deux nouveaux collaborateurs vont arriver dans quelques semaines, dont un qui sera dans mon équipe et pour lequel j'attends beaucoup, mais je sais qu'il sera à la hauteur et se dépassera (Et je l'aiderai pour ça). J'ai aussi de bon espoir pour Will, qui doit encore finir ses études et son alternance. Et pour toi Olivier. Quatre personnes d'ici la fin de l'année. Quatre personnes avec qui j'aurai plaisir à travailler car je sais ce qu'elles valent. Et toutes sont plus ou moins impliquées dans le logiciel libre, à leur niveau, et surtout sont des personnes qui ont ce petit plus, car passionnées.

Dans mon équipe, il y a déjà quelques beaux profils, dont un que que je voudrais prendre sous mon aile et l'aider à exploiter son potentiel. Oui Alex je pense à toi. Cela peut sembler prétentieux, mais je sais que j'ai enfin la maturité pour aider et encadrer d'autres personnes plus jeunes et moins expérimentées. Et c'est mon entreprise actuelle qui a vu ça en moi et su me mettre à la place qui me convenait.
Pour en revenir au recrutement et au titre de ce billet, tous ces profils compétents auxquels il manque le petit plus me font me poser les questions suivantes : où sont les passionné.e.s ? Où sont les autodidactes ? Où sont les personnes qui bidouillent et aiment ça ?

"Quand on a une famille on a moins de temps pour bidouiller et geek". Tel est le propose que me tienne quelques-uns de mes collaborateurs, presque désabusés. Alors je veux changer les choses, le secouer, apporter mon expérience, qui je suis, pour faire bouger les choses. Et la direction m'en donne les moyens et les opportunités.

Autre sujet, celui de la présence des femmes dans l'entreprise. Il y en a quelques unes, compétentes et talentueuses. On sait également que la parité est très difficile et encore plus dans le monde de l'informatique. Pour l'instant, je n'ai eu aucune candidate. Je n'aime pas trop et ne suis pas à l'aise avec les discriminations positives. Moi je vois l'être humain en face de moi. Qu'importe l'origine, le genre ou autre. J'ai un humain. Et pourtant, j'aimerais tant que des femmes soient recrutées et se sentent enfin valorisées pour leurs qualités techniques et personnelles, gagnent confiance en elles grâce à leur nouvel emploi. J'aimerais pouvoir dire à ma petite nièce quand elle sera plus grande que j'ai, à ma modeste échelle, contribuer à redonner aux Femmes la place qu'elles méritent dans la Société, en ayant dans mon équipe des femmes fortes et épanouies, compétentes qui font que des hommes auront remis en question leurs préjugés sexistes et misogyne en ayant travailler avec elles, sous leur direction… Oui c'est très probablement « le syndrome du protecteur » ou autre que verront certain.e.s d'entre vous vu que je suis un homme blanc éduqué cis etc. Mais celles et ceux qui me connaissent savent, je l'espère, que ce n'est pas le cas mais une vraie volonté de ma part d'aider, d'épauler et de soutenir l'autre.

Alors, si tu te reconnais, si tu es doué.e et que tu le sais. Et même si tu doutes, car ne te penses pas à la hauteur, tentes quand même. Travailles et envoies ton CV et ta lettre de motivation. Et qui sait, peut être seras tu l.e.a passioné.e que je recherche.
Pour finir, vous renvoie vers mes différents billets :
- Premières semaines dans ma nouvelle vie
- Je suis chef d'équipe ; tu nous rejoins ?
- Vous voulez que vos employés s'épanouissent ?
- Pour travailler avec moi au sein de mon équipe...

Offre de stage JavaScript

Description de l'offre de stage

L'objectif de ce stage est d'implémenter les API serveur du "protocole" Mastodon dans OpenPaaS http://open-paas.org/

Vous êtes un passionné de développement, une bête de course en JavaScript, et un aficionado de l'Open Source ? Venez faire votre stage chez LINAGORA, dans l'équipe OpenPaaS. OpenPaaS est une plateforme sociale Open Source de nouvelle génération. Dans cette plateforme, nous souhaitons ajouter un module fournissant le support des API Mastodon, afin que la plateforme OpenPaaS soit capable de devenir un nœud du réseau Mastodon.

Le profil recherché :
- vous êtes tombé dans le web, et depuis vous n'en êtes jamais ressorti
- vous connaissez mieux JavaScript que la doc de Mozilla
- vous souhaitez être entouré de geeks
- vous pouvez défier @genma à Street Fighter ;)
- vous êtes autonome, et savez demander de l'aide quand vous vous sentez bloqué dans votre travail
- vous souhaitez faire votre stage dans une société à taille humaine et à l'ambiance différente

Ce que vous gagnerez à faire votre stage chez LINAGORA
- être conseillé et mentoré par des développeurs experts
- découvrir et appliquer les meilleures pratiques dans le développement logiciel
- participer à un projet Open Source important et visible sur les réseaux de développeurs (Github)
Et si vous êtes très bons, une proposition d'embauche à la clé !

Si tu te reconnais, contacte-moi que je te mette en relation avec la personne qui sera ton maître de stage.

Pourquoi c'est une offre de stage qui est bien ?

Parce qu'elle contribuera à démocratiser Mastodon, l'alternative à Twitter décentralisé. Ai-je besoin d'en dire plus ?

Mon expérience de LINAGORA

Afin de vous aider dans votre choix, je vous renvoie vers mes différents billets sur mon expérience chez LINAGORA :
- Premières semaines dans ma nouvelle vie
- Je suis chef d'équipe ; tu nous rejoins ?
- Vous voulez que vos employés s'épanouissent ?
- Pour travailler avec moi au sein de mon équipe...

Pour travailler avec moi au sein de mon équipe…

Ce billet vient en complément de mon billet Je suis chef d'équipe ; tu nous rejoins ?.

Pour travailler avec moi au sein de mon équipe et sous ma direction, je recherche une personne expérimentée, ingénieure ou autodidacte, qui aime et connaît bien les technologies du logiciel libre.

Tu fais de la veille et tu es arrivé sur ce billet de blog via ton agrégateur... Tu es tout à fait capable de gérer plusieurs sujets en parallèle, tu es vraiment organisée (adepte de méthodologie de lifehacking comme GTD ou Pomodoro bienvenue). Tu rédiges des tutoriaux, ton propre wiki pour tes projets personnels (autohébergement ou autre), tu contribues au logiciel libre... Tu es la personne que je recherche !

Tu as envie de changer, tu veux de la reconnaissance de tes véritables compétences et tu veux débuter une nouvelle carrière. Tu veux travailler dans le monde du logiciel libre ?

Mon objectif est de consolider et renforcer mon équipe avec des personnes supplémentaires, sur lesquelles je peux m'appuyer pour qu'ensemble nous relevions et réussissions les défis de projets en cours et à venir. Je ne te cache pas que ce ne sera pas facile tous les jours, les journées passent vite... Je serai exigeant mais aussi à l'écoute, je jouerai mon rôle de leader et chef d'équipe, pour que nous puissions tous nous épanouir au sein de notre travail quotidien (Voir à ce sujet mes différents billets Premières semaines dans ma nouvelle vie, Je suis chef d'équipe ; tu nous rejoins ? et Vous voulez que vos employés s'épanouissent ?). Et mon expérience dont je témoigne ici est toujours et on ne peut plus vrai.

Regarde ici les annonces ici sur Linuxjobs, ça te donnera une idée des postes à pourvoir. En ce qui concerne mon équipe, les termes Intégrateur, Administrateur système, Messagerie, Identité sont les mots clefs. Si toutefois rien te correspond car tu es atypique, envoie une candidature spontanée. Prépares un CV et une lettre de motivation, et surtout ton entretien avec moi. Car je serai exigeant, je validerai que tu corresponds bien au profil que je cherche. Si c'est le cas, tu auras alors un entretien où tu devras confirmer que j'ai eu raison de croire en toi, de de soutenir. Et là, tu auras une proposition pour débuter ta nouvelle vie professionnelle à mes côtés.

Pour répondre aux questions fréquentes : pas de télétravail, travail à Paris la Défense (c'est là qu'on est), parfois en clientèle en Ile de France (il faut donc un bon relationnel client, et je serai là pour t'accompagner et te suivre). Junior accepté si tu te reconnais dans le profil que j'ai décrit et que tu sais démontrer ton potentiel. Tu rejoindras alors les pandawans !