Planet Libre

Thuban : Syspatch : patch smtpd - multiarch - 6.4-6.5

Un septième patch est disponible pour toutes les architectures afin de corriger un défaut dans smtpd qui pouvait planter à cause d'une entrée beaucoup trop grande, entraînant un déni de service.

 

Lancez-donc syspatch :)

Ensuite, c'est une bonne idée de relancer smtpd : rcctl restart smtpd

 

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.

Simon Vieille : Outil de création d’un espace web Apache et PHP

Dans mon activité personnelle et professionnelle, je suis amené à créer des espaces d’hébergement de sites web principalement écrits en PHP.

Il y a quelques années, j’ai écris un script en shell qui posait des questions et générait des fichiers de configuration pour Apache et PHP puis relançait ces services. Il a ensuite évolué et générait également les utilisateurs unix et affinait les permissions. Le principal problème du script est que d’un serveur à l’autre, il fallait mettre des coups de hache dans le code pour l’adapter.

Cette semaine, j’ai entamé une refonte complète du code. Au fur et à mesure du développement, j’ai rendu pas mal de choses configurables et je pense qu’il est fonctionnel sur des environnements relativement différents des miens.

Je vous présente donc vhost-manager, c'est un projet libre et est toujours orienté vers la génération de vhost Apache et de pools PHP FPM. Il faut make, gcc, wget pour l'installer et sh, whiptail et php sont nécessaires à son utilisation.

vhost-manager

Le code source est disponible ici. Le projet se configure via un fichier de variables et j'ai conservé le principe des questions/réponses pour générer les fichiers.

Gravatar de Simon Vieille
Original post of Simon Vieille.Votez pour ce billet sur Planet Libre.

Articles similaires

Benoît Boud@ud : La planète Archlinux (partie 4)

Sommaire 10 - Démonter et remonter les partitions 11 - Sélectionner le miroir 12 - Installer la base 13 - Configurer le nouveau système 14 - Installer le chargeur d'amorçage 15 - Redémarrage ________________________________ 10 - Démonter et remonter les partitions À ce stade de l'installation, vous pouvez très bien faire une pause-café et éteindre [...]

Gravatar de Benoît Boud@ud
Original post of Benoît Boud@ud.Votez pour ce billet sur Planet Libre.

Articles similaires

Journal du hacker : Liens intéressants Journal du hacker semaine #30

Pour la 30ème semaine de l'année 2019, voici 10 liens intéressants que vous avez peut-être ratés, relayés par le Journal du hacker, votre source d’informations pour le Logiciel Libre francophone !

Pour ne plus rater aucun article de la communauté francophone, voici :

De plus le site web du Journal du hacker est « adaptatif (responsive) ». N’hésitez pas à le consulter depuis votre smartphone ou votre tablette !

Le Journal du hacker fonctionne de manière collaborative, grâce à la participation de ses membres. Rejoignez-nous pour proposer vos contenus à partager avec la communauté du Logiciel Libre francophone et faire connaître vos projets !

Et vous ? Qu’avez-vous pensé de ces articles ? N’hésitez pas à réagir directement dans les commentaires de l’article sur le Journal du hacker :)

Gravatar de Journal du hacker
Original post of Journal du hacker.Votez pour ce billet sur Planet Libre.

Articles similaires

ephase : Importer des clefs GnuPG dans sa Nitrokey Pro

Dans un précédent article j’ai présenté la Nitrockey Pro et fait un bref tour du propriétaire. Cette fois si je vais expliquer comment y importer des clefs PGP déjà existante.

Bien entendu je part sur un système déjà installée et configurée et part du principe que la Nitrokey est paramétrée (PIN utilisateur et administrateur, nom du propriétaire etc.)

Avant de commencer

Voici la composition des clefs:

  • une clé principale servant a créer des sous clefs, de les révoquer et de signer celles des copains.
  • une sous clé permettant de chiffrer
  • enfin une sous clé permettant de signer

A partir de là nous allons mettre mes deux sous clefs sur la Nitrokey et garder la clé principale dans un endroit sûr.

L’importation n’est pas très difficile et prendra qu’une minute. Par contre il est important de réaliser quelques opérations en plus :

  • Créer un certificat de révocations.
  • Sauvegarder comme il se doit la clé maître et ses sous clefs, le certificat de révocation. En effet l’opération d’importation de vous sous clefs les supprimera du dossier ~/.GnuPG/
  • Sortir ma Master Key du trousseau GnuPG pour la mettre en sécurité sur un périphérique de stockage externe (clé USB)
Réaliser une sauvegarde

Avant tout, il est important de garder une copie de sauvegarde de sa clé maître et de ses sous clefs au cas où une manipulations ne se passerait pas comme prévu. Exportons les clefs privées, publiques et le certificat de révocation dans un fichier compressé et chiffré.

Commençons par créer un dossier dans le répertoire /tmp afin de recevoir le certificat de révocation et les sauvegardes de clefs :

mkdir /tmp/gpg_backup chmod 700 /tmp/gpg_backup Certificat de révocation

Voici la commande utile pour créer un certificat de révocation pour notre clé maître :

gpg --gen-revoke --output /tmp/gpg_backup/revoke.cert

Où représente l’identifiant de la clé. Une boite de dialogue apparaît ensuite demandant la phrase de passe permettant de débloquer la clé privée.

Exporter les clefs

Commençons par la clé privée :

gpg --export-secret-keys --armor --output /tmp/gpg_backup/ephase_private.asc

Bien entendu la phrase de passe de la clé sera demandée

Puis la clé publique, qui ne nécessite pas de phrase de passe pour être débloquée :

gpg --export --armor --output /tmp/gpg_backup/ephase_public.asc Créer une archive sécurisée

Bien entendu il ne faut pas que ces données (du moins le certificat de révocation et la clé privée) tombent entre de mauvaise main, il suffit simplement de créer une archive chiffrée du dossier /tmp/gpg_backup :

tar cz -C '/tmp/' gpg_backup | gpg --symmetric --output ephase_key.gpg && rm -rf /tmp/gpg_backup

Après avoir rentré un mot de passe de chiffrement fort pour protéger notre sauvegarde, nous sommes fin prêt pour la suite des opérations. Pour restaurer le dossier il suffira d’utiliser la commande suivante :

gpg --decrypt ephase_key.gpg | tar xz Mettre ce fichier à l’abri

Le fichier ephase_key.gpg sera mis à l’abri sur un espace de stockage hors ligne (voire même plusieurs).

Importer la paire de clefs

La manipulation se fait depuis la gestion de clefs gpg, nous y accédons avec la commande :

gpg --expert --edit-key gpg (GnuPG) 2.2.17; Copyright (C) 2019 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. La clef secrète est disponible. sec rsa4096/XXXXXXXXXXXXXXXX créé : 2016-07-07 expire : 2020-07-12 utilisation : SC confiance : ultime validité : ultime ssb rsa4096/YYYYYYYYYYYYYYYY créé : 2016-07-07 expire : 2020-07-12 utilisation : E ssb rsa4096/ZZZZZZZZZZZZZZZZ créé : 2016-07-07 expire : 2020-07-12 utilisation : S [ ultime ] (1). Yorick Barbanneau gpg>

À partir de là nous allons procéder par étape :

  1. choisir la sous clé pour 1 (le chiffrement) et l’exporter dans le slot chiffrement sur la Nitrokey
  2. choisir la sous clé 2 (signature) et l’exporter dans le slot signature

La clé maitre sera sortie du trousseau et mise à l’abri.

Exporter la clé ¨Chiffrement¨

Voici les commandes à entrer pour exporter la première clé sur la Nitrokey :

gpg> key 1 [...] gpg> keytocard

key 1 permet de dire à gpg que l’on travaille sur la première sous clé, et keytocard envoi celle-ci sur notre smartcard

gpg nous demande de déverrouiller par en entrant la phrase de passe et le code PIN administrateur de la Nitrokey.

Exporter la clé ¨Signature¨

Il faut maintenant dé-sélectionner la sous clé 1 :

gpg> key 1

Pour copier la clé 2:

gpg> key 2 [...] gpg> keytocard

Comme précédemment, gpg nous demande de déverrouiller par en entrant la phrase de passe et le code PIN administrateur de la Nitrokey.

Sauvegarder les changements.

Il ne reste plus qu’à sauvegarder nos changement sur les clefs et quitter gpg

gpg> save

Les deux sous clefs seront alors supprimées de notre trousseau et disponible uniquement via la smartcard.

Mettre sa clé maître à l’abri

La clé maître est la plus importante des clefs, elle permet de créer d’autre sous clefs, d’émettre des certificats de révocation pour celles-ci ou encore de signer les clefs publique des amis.

Il est tout à fait possible de la sortir du trousseau pour la mettre à l’abri et de la remettre lorsque l’on en a besoin.

Pour ma part j’ai choisi de mettre la clé sur un support externe chiffré, et avec l’aide d’un script de monter le support lorsque j’en ai besoin et de créer un lien symbolique de la clé depuis le répertoire de GnuPG.

Les outils utilisés sont en général installés de base : LUKS et udisk

Créer le conteneur chiffré

Toutes les opérations suivantes se font en super utilisateur ou avec sudo.

Dans un premier temps partitionnons la clé USB (ici sdb):

parted -s /dev/sdb mklabel msdos mkpart primary ext4 1MiB 100%

Il nous faut ensuite créer le conteneur chiffré :

cryptsetup luksFormat /dev/sdb1 WARNING! ======== Cette action écrasera définitivement les données sur /dev/sdb1. Are you sure? (Type uppercase yes): YES Saisissez la phrase secrète pour /dev/sdb1 : Vérifiez la phrase secrète :

Le déverrouiller :

cryptsetup luksOpen /dev/sdb1 gpg_master Saisissez la phrase secrète pour /dev/sdb1 :

Pour le formater :

mkfs.ext4 -E root_owner=1000:1000 -m 0 /dev/mapper/gpg_master

Il faut bien entendu adapter le paramètre root_owner en fonction de votre UID et de votre GID.

Et enfin monter la partition avec :

mkdir -p /mnt/usb mount /dev/mapper/gpg_master /mnt/usb

Puis s’assurer que la clé USB ne peut être lue seulement par notre utilisateur :

chmod 700 /mnt/usb Déplacer la clé maitre GnuPG sur votre clé USB

Les commandes suivante sont à faire dans la foulée mais en tant utilisateur courant.

Nous allons utilisé une fonctionnalité de GnuPG 2 : les clefs privées sont stockée dans le répertoire ~/.gnupg/private-keys-v1.d/ ou chaque fichier correspond à une clé et le nom est repris dans le champs keygrip :

gpg -K --with-keygrip /home/ephase/.gnupg/pubring.kbx ------------------------------- sec rsa4096 2016-07-07 [SC] [expire : 2020-07-12] 3526F4565D76C5674AA56690936CDF3783293949 Keygrip = ABCDEF1234567890ABCDEF1234567890ABCDEF12 uid [ ultime ] Yorick Barbanneau ssb> rsa4096 2016-07-07 [E] [expire : 2020-07-12] Keygrip = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ssb> rsa4096 2016-07-07 [S] [expire : 2020-07-12] Keygrip = BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB

Je doit donc chercher la clé 3526F4565D76C5674AA56690936CDF3783293949.key et la copier sur notre clé :

mkdir -p /mnt/usb/.gpg_master chown 700 /mnt/usb/.gpg_master mv ~/.gnupg/private-keys-v1.d/3526F4565D76C5674AA56690936CDF3783293949.key /mnt/usb/.usbmaster

Afin de bien vérifier que la clé n’est plus disponible, il suffit de faire :

gpg -K /home/ephase/.gnupg/pubring.kbx ------------------------------- sec# rsa4096 2016-07-07 [SC] [expire : 2020-07-12] 3526F4565D76C5674AA56690936CDF3783293949 uid [ ultime ] Yorick Barbanneau ssb> rsa4096 2016-07-07 [E] [expire : 2020-07-12] ssb> rsa4096 2016-07-07 [S] [expire : 2020-07-12]

Le # à côté de sec indique que la clé maître n’est plus disponible dans le trousseau GnuPG.

Automatiser le montage de la clé

Afin de faciliter les opération de montage et démontage de la clé USB contenant notre clé maître, on va s’aider d’un script.

L’utilisation est simple, une fois mis dans un endroit accessible via le $PATH il suffit de faire gpgmount.sh m pour monter la clé USB ou gpgmount.sh u pour la démonter.

#!/bin/bash UUID="" mountpoint="" usage () { cat < $0 m | u $0 mount | unmount mount or unmount encrypted device based on UUID and attach private keys EOF } if [ -L "/dev/disk/by-uuid/${UUID}" ] then case "$@" in "m"|"mount") echo "Mount encryted key" action=$(udisksctl unlock -b /dev/disk/by-uuid/${UUID}) if [ ! $? -eq 0 ] then echo $action exit 10 fi mountpoint=$(udisksctl mount -b /dev/mapper/luks-${UUID} | \\ awk '{print $4}') while read -r f do base=$(basename $f) #create symlink to key file if not exist if [ ! -e "~/.gnupg/private-keys-v1.d/$base" ] then ln -s $f ~/.gnupg/private-keys-v1.d/$base fi done < <(find ${mountpoint%.}/.gpg_master/ -type f -name "*.key") ;; "u"|"unmount") echo "unmount encrypted key" while read -r f do rm $f done < <(find ~/.gnupg/private-keys-v1.d -type l -name "*.key") udisksctl unmount -b /dev/mapper/luks-${UUID} 2&> /dev/null || \\ echo "Volume is already unmounted" udisksctl lock -b /dev/disk/by-uuid/${UUID} 2&> /dev/null || \\ echo "Encrypted container is not unlocked" ;; *) echo "parameter not understood, what do you want :" usage exit 1 ;; esac else echo "USB device $UUID is not connected" exit 5 fi exit 0

Il faut bien entendu mettre l’uuid de la partition contenant notre clé maître dans la variable UUID.

Pour le récupérer il suffit de lancer la commande blkid en tant que root avec en paramètre la partition en question:

blkid /dev/sdb1 /dev/sdb1: UUID="" TYPE="crypto_LUKS" PARTUUID="" En conlusion

J’ai essayé ici de créer un environnement équilibré entre sécurité et facilité. La Nitrokey permet donc de sécuriser mes sous clefs utilisées tous les jours tout en les rendant disponibles sur mes deux machines principales.

Bien sûr il serait plus sécurisé de n’utiliser la clé maître sur une machine totalement hors ligne démarrée par une distribution live. Mais avouez que pour signer les clé des amis (lors de chiffro-fête par exemple), ce n’est pas l’idéal.

Bibliographie

Kernel Maintainer PGP guide — The Linux Kernel documentation par Konstantin Ryabitsev - lien

Using an offline GnuPG master key (2015) par Damien Goutte-Gattat - lien

Gravatar de ephase
Original post of ephase.Votez pour ce billet sur Planet Libre.

Articles similaires

ephase : Importer des clefs GnuPG dans sa Nitrockey Pro

Dans un précédent article j’ai présenté la Nitrockey Pro et fait un bref tour du propriétaire. Cette fois si je vais expliquer comment y importer des clefs PGP déjà existante.

Bien entendu je part sur un système déjà installée et configurée et part du principe que la Nitrokey est paramétrée (PIN utilisateur et administrateur, nom du propriétaire etc.)

Avant de commencer

Voici la composition des clefs:

  • une clé principale servant a créer des sous clefs, de les révoquer et de signer celles des copains.
  • une sous clé permettant de chiffrer
  • enfin une sous clé permettant de signer

A partir de là nous allons mettre mes deux sous clefs sur la Nitrokey et garder la clé principale dans un endroit sûr.

L’importation n’est pas très difficile et prendra qu’une minute. Par contre il est important de réaliser quelques opérations en plus :

  • Créer un certificat de révocations.
  • Sauvegarder comme il se doit la clé maître et ses sous clefs, le certificat de révocation. En effet l’opération d’importation de vous sous clefs les supprimera du dossier ~/.GnuPG/
  • Sortir ma Master Key du trousseau GnuPG pour la mettre en sécurité sur un périphérique de stockage externe (clé USB)
Réaliser une sauvegarde

Avant tout, il est important de garder une copie de sauvegarde de sa clé maître et de ses sous clefs au cas où une manipulations ne se passerait pas comme prévu. Exportons les clefs privées, publiques et le certificat de révocation dans un fichier compressé et chiffré.

Commençons par créer un dossier dans le répertoire /tmp afin de recevoir le certificat de révocation et les sauvegardes de clefs :

mkdir /tmp/gpg_backup chmod 700 /tmp/gpg_backup Certificat de révocation

Voici la commande utile pour créer un certificat de révocation pour notre clé maître :

gpg --gen-revoke --output /tmp/gpg_backup/revoke.cert

Où représente l’identifiant de la clé. Une boite de dialogue apparaît ensuite demandant la phrase de passe permettant de débloquer la clé privée.

Exporter les clefs

Commençons par la clé privée :

gpg --export-secret-keys --armor --output /tmp/gpg_backup/ephase_private.asc

Bien entendu la phrase de passe de la clé sera demandée

Puis la clé publique, qui ne nécessite pas de phrase de passe pour être débloquée :

gpg --export --armor --output /tmp/gpg_backup/ephase_public.asc Créer une archive sécurisée

Bien entendu il ne faut pas que ces données (du moins le certificat de révocation et la clé privée) tombent entre de mauvaise main, il suffit simplement de créer une archive chiffrée du dossier /tmp/gpg_backup :

tar cz -C '/tmp/' gpg_backup | gpg --symmetric --output ephase_key.gpg && rm -rf /tmp/gpg_backup

Après avoir rentré un mot de passe de chiffrement fort pour protéger notre sauvegarde, nous sommes fin prêt pour la suite des opérations. Pour restaurer le dossier il suffira d’utiliser la commande suivante :

gpg --decrypt ephase_key.gpg | tar xz Mettre ce fichier à l’abri

Le fichier ephase_key.gpg sera mis à l’abri sur un espace de stockage hors ligne (voire même plusieurs).

Importer la paire de clefs

La manipulation se fait depuis la gestion de clefs gpg, nous y accédons avec la commande :

gpg --expert --edit-key gpg (GnuPG) 2.2.17; Copyright (C) 2019 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. La clef secrète est disponible. sec rsa4096/XXXXXXXXXXXXXXXX créé : 2016-07-07 expire : 2020-07-12 utilisation : SC confiance : ultime validité : ultime ssb rsa4096/YYYYYYYYYYYYYYYY créé : 2016-07-07 expire : 2020-07-12 utilisation : E ssb rsa4096/ZZZZZZZZZZZZZZZZ créé : 2016-07-07 expire : 2020-07-12 utilisation : S [ ultime ] (1). Yorick Barbanneau gpg>

À partir de là nous allons procéder par étape :

  1. choisir la sous clé pour 1 (le chiffrement) et l’exporter dans le slot chiffrement sur la Nitrokey
  2. choisir la sous clé 2 (signature) et l’exporter dans le slot signature

La clé maitre sera sortie du trousseau et mise à l’abri.

Exporter la clé ¨Chiffrement¨

Voici les commandes à entrer pour exporter la première clé sur la Nitrokey :

gpg> key 1 [...] gpg> keytocard

key 1 permet de dire à gpg que l’on travaille sur la première sous clé, et keytocard envoi celle-ci sur notre smartcard

gpg nous demande de déverrouiller par en entrant la phrase de passe et le code PIN administrateur de la Nitrokey.

Exporter la clé ¨Signature¨

Il faut maintenant dé-sélectionner la sous clé 1 :

gpg> key 1

Pour copier la clé 2:

gpg> key 2 [...] gpg> keytocard

Comme précédemment, gpg nous demande de déverrouiller par en entrant la phrase de passe et le code PIN administrateur de la Nitrokey.

Sauvegarder les changements.

Il ne reste plus qu’à sauvegarder nos changement sur les clefs et quitter gpg

gpg> save

Les deux sous clefs seront alors supprimées de notre trousseau et disponible uniquement via la smartcard.

Mettre sa clé maître à l’abri

La clé maître est la plus importante des clefs, elle permet de créer d’autre sous clefs, d’émettre des certificats de révocation pour celles-ci ou encore de signer les clefs publique des amis.

Il est tout à fait possible de la sortir du trousseau pour la mettre à l’abri et de la remettre lorsque l’on en a besoin.

Pour ma part j’ai choisi de mettre la clé sur un support externe chiffré, et avec l’aide d’un script de monter le support lorsque j’en ai besoin et de créer un lien symbolique de la clé depuis le répertoire de GnuPG.

Les outils utilisés sont en général installés de base : LUKS et udisk

Créer le conteneur chiffré

Toutes les opérations suivantes se font en super utilisateur ou avec sudo.

Dans un premier temps partitionnons la clé USB (ici sdb):

parted -s /dev/sdb mklabel msdos mkpart primary ext4 1MiB 100%

Il nous faut ensuite créer le conteneur chiffré :

cryptsetup luksFormat /dev/sdb1 WARNING! ======== Cette action écrasera définitivement les données sur /dev/sdb1. Are you sure? (Type uppercase yes): YES Saisissez la phrase secrète pour /dev/sdb1 : Vérifiez la phrase secrète :

Le déverrouiller :

cryptsetup luksOpen /dev/sdb1 gpg_master Saisissez la phrase secrète pour /dev/sdb1 :

Pour le formater :

mkfs.ext4 -E root_owner=1000:1000 -m 0 /dev/mapper/gpg_master

Il faut bien entendu adapter le paramètre root_owner en fonction de votre UID et de votre GID.

Et enfin monter la partition avec :

mkdir -p /mnt/usb mount /dev/mapper/gpg_master /mnt/usb

Puis s’assurer que la clé USB ne peut être lue seulement par notre utilisateur :

chmod 700 /mnt/usb Déplacer la clé maitre GnuPG sur votre clé USB

Les commandes suivante sont à faire dans la foulée mais en tant utilisateur courant.

Nous allons utilisé une fonctionnalité de GnuPG 2 : les clefs privées sont stockée dans le répertoire ~/.gnupg/private-keys-v1.d/ ou chaque fichier correspond à une clé et le nom est repris dans le champs keygrip :

gpg -K --with-keygrip /home/ephase/.gnupg/pubring.kbx ------------------------------- sec rsa4096 2016-07-07 [SC] [expire : 2020-07-12] 3526F4565D76C5674AA56690936CDF3783293949 Keygrip = ABCDEF1234567890ABCDEF1234567890ABCDEF12 uid [ ultime ] Yorick Barbanneau ssb> rsa4096 2016-07-07 [E] [expire : 2020-07-12] Keygrip = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ssb> rsa4096 2016-07-07 [S] [expire : 2020-07-12] Keygrip = BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB

Je doit donc chercher la clé 3526F4565D76C5674AA56690936CDF3783293949.key et la copier sur notre clé :

mkdir -p /mnt/usb/.gpg_master chown 700 /mnt/usb/.gpg_master mv ~/.gnupg/private-keys-v1.d/3526F4565D76C5674AA56690936CDF3783293949.key /mnt/usb/.usbmaster

Afin de bien vérifier que la clé n’est plus disponible, il suffit de faire :

gpg -K /home/ephase/.gnupg/pubring.kbx ------------------------------- sec# rsa4096 2016-07-07 [SC] [expire : 2020-07-12] 3526F4565D76C5674AA56690936CDF3783293949 uid [ ultime ] Yorick Barbanneau ssb> rsa4096 2016-07-07 [E] [expire : 2020-07-12] ssb> rsa4096 2016-07-07 [S] [expire : 2020-07-12]

Le # à côté de sec indique que la clé maître n’est plus disponible dans le trousseau GnuPG.

Automatiser le montage de la clé

Afin de faciliter les opération de montage et démontage de la clé USB contenant notre clé maître, on va s’aider d’un script.

L’utilisation est simple, une fois mis dans un endroit accessible via le $PATH il suffit de faire gpgmount.sh m pour monter la clé USB ou gpgmount.sh u pour la démonter.

#!/bin/bash UUID="" mountpoint="" usage () { cat < $0 m | u $0 mount | unmount mount or unmount encrypted device based on UUID and attach private keys EOF } if [ -L "/dev/disk/by-uuid/${UUID}" ] then case "$@" in "m"|"mount") echo "Mount encryted key" action=$(udisksctl unlock -b /dev/disk/by-uuid/${UUID}) if [ ! $? -eq 0 ] then echo $action exit 10 fi mountpoint=$(udisksctl mount -b /dev/mapper/luks-${UUID} | \\ awk '{print $4}') while read -r f do base=$(basename $f) #create symlink to key file if not exist if [ ! -e "~/.gnupg/private-keys-v1.d/$base" ] then ln -s $f ~/.gnupg/private-keys-v1.d/$base fi done < <(find ${mountpoint%.}/.gpg_master/ -type f -name "*.key") ;; "u"|"unmount") echo "unmount encrypted key" while read -r f do rm $f done < <(find ~/.gnupg/private-keys-v1.d -type l -name "*.key") udisksctl unmount -b /dev/mapper/luks-${UUID} 2&> /dev/null || \\ echo "Volume is already unmounted" udisksctl lock -b /dev/disk/by-uuid/${UUID} 2&> /dev/null || \\ echo "Encrypted container is not unlocked" ;; *) echo "parameter not understood, what do you want :" usage exit 1 ;; esac else echo "USB device $UUID is not connected" exit 5 fi exit 0

Il faut bien entendu mettre l’uuid de la partition contenant notre clé maître dans la variable UUID.

Pour le récupérer il suffit de lancer la commande blkid en tant que root avec en paramètre la partition en question:

blkid /dev/sdb1 /dev/sdb1: UUID="" TYPE="crypto_LUKS" PARTUUID="" En conlusion

J’ai essayé ici de créer un environnement équilibré entre sécurité et facilité. La Nitrokey permet donc de sécuriser mes sous clefs utilisées tous les jours tout en les rendant disponibles sur mes deux machines principales.

Bien sûr il serait plus sécurisé de n’utiliser la clé maître sur une machine totalement hors ligne démarrée par une distribution live. Mais avouez que pour signer les clé des amis (lors de chiffro-fête par exemple), ce n’est pas l’idéal.

Bibliographie

Kernel Maintainer PGP guide — The Linux Kernel documentation par Konstantin Ryabitsev - lien

Using an offline GnuPG master key (2015) par Damien Goutte-Gattat - lien

Gravatar de ephase
Original post of ephase.Votez pour ce billet sur Planet Libre.

Articles similaires

Full Circle Magazine FR : Le numéro 146 est disponible

Bonjour !

En cette fin de juillet, l'équipe du FCMfr vous propose de quoi lire à la plage, à la compagne, en montagne ou carrément chez vous : le numéro 146 du magazine Full Circle, celui de juin 2019, en français. Comme d'habitude, il est disponible sur notre page NUMÉROS ou peut être récupéré directement en cliquant sur la photo de couverture ci-dessous. issue146fr.png

Outre les bonnes rubriques habituelles, vous y trouverez notamment :

  • une critique élogieuse de Lubuntu 19.04 avec son bureau LXQt, symbolisé par le joli colibri sur notre couverture. Vous serez peut-être tenté de l'essayer vous-même !
  • les tutoriels habituels (Inkscape, Python, Freeplane et Darktable) ;
  • d'autres liens vers de l'aide sur Ubuntu donnés par Richard dans Ubuntu au quotidien ;
  • une critique sur un livre disponible uniquement en anglais, mais qui a l'air passionnant (Math Adventures With Python) ;
  • et, dans la rubrique Mon Histoire, une présentation de tout ce qu'Erik fait quand il installe une nouvelle version d'Ubuntu, ce qui peut lui prendre entre plusieurs heures et plusieurs jours ! Et vous ?!

Nous vous en souhaitons bonne lecture.

Passez un excellent été et à la rentrée !

Bab, scribeur et relecteur, d52fr, traducteur et relecteur, mais aussi scribeur remplaçant juste avant la parution du numéro (merci, d52fr !), et moi-même, AuntieE, traductrice et relectrice

Gravatar de Full Circle Magazine FR
Original post of Full Circle Magazine FR.Votez pour ce billet sur Planet Libre.

Articles similaires

Yannic Arnoux : Je vous l’avais bien dit

Mini-bilan après les décisions des 8 derniers mois : migration Docker, refonte du blog, nouveau domaine, hébergement chez GitHub Pages…

Je n’ai pas achevé le système de sauvegarde (alors que je tourne sur un VPS à 4 euros le mois),

Je n’ai pas achevé le système de monitoring,

Je viens de découvrir que le blog a perdu magiquement sa barre de navigation ! Je ne sais pas depuis quand, ce qui est sûr c’est que je ne maîtrise pas la génération HTML des pages GitHub.

J’ai voulu lever le pied sur la gestion de l’infra, me reposer sur GitHub mais c’est la cata ! Il est temps de se retrousser les manches.

Bruce et Alfred

Nous savons tous le réel plaisir que vous avez à dire : je vous l’avais bien dit…

Gravatar de Yannic Arnoux
Original post of Yannic Arnoux.Votez pour ce billet sur Planet Libre.

RaspbianFrance : Raspbian France change de nom et devient Raspberry Pi FR !

Cela fait maintenant 5 ans que nous avons lancé le site Raspbian France. Au départ simple blog autour de Raspbian, le site s’est petit à petit étoffé et est parvenu à rassembler une communauté nombreuse et fidèle, venant apprendre avec les tutoriels, s’informer avec les articles d’actualité, ou échanger sur le forum !

Au cours de ces 5 années, le site a bien changé, et il nous semble opportun d’acter ce changement en changeant le nom du site.

Un nom reflétant mieux notre contenu.

À l’origine, Raspbian France a été lancé au cours de notre seconde année d’études supérieures, comme un blog autour du système d’exploitation Raspbian. Tutoriel après tutoriel, notre thématique s’est élargie et nous traitons maintenant de la Raspberry Pi en général plutôt que d’un système d’exploitation.

Du fait de ces évolutions, le nom Raspbian France ne nous semble plus refléter le contenu du site, et nous avons donc pris la décision de changer le nom du site ainsi que le nom de domaine associé.

Ancien design raspbian franceÀ l’époque, Raspbian France ça ressemblait à ça !Un nom plus explicite et mieux reconnaissable.

Que ce soit à travers les tutoriels, le forum ou RaspiSMS, je crois pouvoir dire que nous avons pleinement contribué à la communauté française autour de la Raspberry Pi, et que nous sommes aujourd’hui connus et reconnus par cette communauté.

Toutefois, si le site est bien connu parmi les plus confirmés, nous avons pu constater que les nouveaux venus dans la communauté ont tendance à avoir un peu de mal avec le nom du site.

En effet, pour une personne débutant avec la Raspberry Pi, le nom Raspbian n’évoque pas forcément grand chose et le lien avec la Raspberry Pi n’est pas évident.

Ce changement de nom devrait donc permettre aux nouveaux venus de trouver plus facilement le site, et de rendre le nom plus représentatif du contenu.

Comment le changement de nom va-t-il se passer ?

Dès aujourd’hui, le site va officiellement être renommé. Techniquement, cela signifie que l’ancien nom de domaine sera redirigé vers le nouveau et que les références internes à « Raspbian France » seront modifiées pour « Raspberry Pi FR ».

En clair, à chaque fois que vous tenterez d’accéder au site Raspbian France, vous serez automatiquement redirigé vers le nouveau nom de domaine, raspberry-pi.fr, sur la page que vous vouliez consulter sur le site historique. Il en va de même pour le forum.

De votre côté, tout sera donc totalement transparent ! Si vous avez fait un lien vers le site, vous n’avez pas besoin de le mettre à jour !

En interne, l’ensemble des liens vont être mis à jour vers la nouvelle adresse.

Nous souhaitons conserver le nom de domaine historique pendant encore plusieurs années pour assurer les redirections dans le temps et éviter que des tutoriels externes ne pointent vers des pages inexistantes !

Nous espérons que vous nous suivrez sous ce nouveau nom comme vous l’avez fait sous l’ancien !

Lire l'article complet : Raspbian France change de nom et devient Raspberry Pi FR !

Gravatar de RaspbianFrance
Original post of RaspbianFrance.Votez pour ce billet sur Planet Libre.

Articles similaires

Thuban : Syspatch : patch tcp - tcpsack - multiarch - 6.4+6.5

L'équipe OpenBSD nous a avertit hier d'un nouveau correctif :

- nommé "tcpsack" : un attaquant peut ralentir temporairement le système, en créant de longues chaînes de trous TCP SACK.


Architectures concernées : amd64, arm64 et i386

Nécessite le redémarrage de la machine, car affecte le fonctionnement du noyau !

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.

Goffi : Salut à Toi v0.7 « La Commune »

Salut to you!

It is with a big pleasure and a sort of relief that I announce you the release of "Salut à Toi" v0.7.0 (La Commune).

To remind you "Salut à Toi" (or SàT) is an ecosystem of decentralised communication, based on "XMPP" established standard.
It features many functionalities (instant chatting, file sharing, blogging/microblogging, events organisation, forums, etc.) and has the particularity of being multi-interfaced (different "frontends" are available for the web, desktop, mobile devices or even the terminal and command line).

The preparation of this version has taken 3 years. This is the first version we can call "general audience", in other words it is approachable also by those without technical background . Though, there are still some improvements to be done in the frontend and "user experience" level.

I shall not enumerate again all the functionalities with screenshots, you can consult the announcement of the alpha version to do so by yourself. I'd rather explain some major updates, which has been done:

Cagou, the desktop/mobile interface

As promised by our modest crowdfunding, Cagou is the name of the new desktop/mobile frontend (Android only at this moment). To share a little story with you, it is a reference to a beautiful bird, which does not fly, but barks, and is endemically present on the no less beautiful island of New-Caledonia. It is also a nod to Kivy, the framework we are using and from which the name and logo may remind you of Kiwi of New-Zeland.

So, this interface is multi-platforms, not focusing only on instant messaging: you can use it for file-sharing (e.g. the videos/photos between your computer and phone), or as a remote-control for your media player. It is of course planned that it will be able to cope with blogging in the close future.

Cagou is thought to be usable on a little screen, as well in full-screen mode of desktop, and allows the screen division into zones - to, for instance, follow several discussions at the same time.

On android, the application has still some problems with the reactivity and bugs time to time. Lot of problems will be corrected by with Python 3 port. Consider this version as the first one to have you commentaries et propositions.

Cagou sur Android

End-to-end encryption

Of course, SàT has been featuring end-to-end encryption for several years already through "OTR", however this version witnesses the arrival of "OMEMO", an algorithm correcting the issues of previous one (specially allowing sending of offline encrypted messages, or to display them on multi-devices). OMEMO is implemented only for simple conversation ("1:1", between 2 people) at the moment, but the next version will surely cope with end-to-end-encrypted conversations within groups.

Events, photo-albums, forums, ticket-handling, merge-requests

Numerous new functionalities has appeared in this version. You can now create and manage events (e.g. for the family) with the classic list of invited persons et the replies of type "RSVP" (attending, not attending, maybe attending). It is possible to invite people, even though they don't have XMPP account - using the "invitation" accounts which are automatically generated and sent to their emails.

You can create and share the photo albums, a specialisation of file-sharing. The possibility to create one is not yet available from graphic interface, however, this is planned to be improved soon. To consult the photos is simple from Libervia (web interface).

The forum is also in the party, as well as the tickets handling and merge requests. These two last functionalities have been implemented for the project needs, but they are very flexible and can be (in the next version) easily used in a everyday life (e.g. as a shopping lists, to do lists etc.)

All of this take profit from XMPP "PubSub" capabilities, and can benefit of its permission system (we can imagine the shopping list being shared between the family members indicating who bought what).

Remark - to actually benefit from all this it is necessary to use the "SàT Pubsub" service, the project made for the needs of Salut à Toi (but which can be used by all XMPP based programs)

un blog sur Libervia

album photo sur Libervia

Web Framework

The development of Libervia, the web frontend of SàT, has evolved to make it become a web framework. The reason of this evolution is the need of a very flexible interface, one which would allow implementation and testing of new ideas and functionalities easily. The goal is to have a naturally decentralised and federative framework (thanks to XMPP), which integrates simply to the ecosystem. I will speak only briefly about the technical details, but the point is to join Jinja2 with SàT and use PubSub as the database. Also CLI frontend (jp) allows to use the same models to make a static rendering (for instance to generate a static blog or chat archives).

It is with this framework that these above mentioned features were developed, they are organised in "pages" which are supposed to be simple to use and can work without JavaScript (when possible, it is not the case for the chat). The new official website works thanks to the new framework, you'll find there an introductory documentation.

Even More

I won't get too much into details as the updates are too numerous, but though it it worth mentioning that SàT can be also used to store your folders on the server (it can be used as a "component"), or jp, the command line frontend allows manage a lot of things (find or publish an article or blog, send encrypted or non-encrypted message, find someone's avatar, etc.)

Installation

Salut à Toi is available on Debian and its derivates, but attention! It is only the case for the backend, the console interface and the command line. By the way, a help to make the Cagou package land there too would be much appreciated.

It is also available on the Arch Linux's AUR repository, and you'll also find there the development versions.

The Flatpak packages allows the easy installation of Cagou, Primitivus (terminal) and jp (command line) on most of GNU/Linux distributions, you can find the links on the main page of the site.
You can of course, use as well pip, the Python packages manager. A simple pip2 install --user sat followed by pip2 install --user cagou and pip2 install --user libervia should be enough. The instructions are available in the site's documentations.

For Android, you can find a APK on this link (unsigned, a definitive version will follow in a couple of days). After the release, I will make steps to make it available on F-Droid, and eventually the "play store".

Even though SàT should technically be working on Mac OS X, Windows and *BSD, however on these platforms it is not yet tested (as I do not have any of this devices). I have had some feed-backs concerning Mac use. If you are interested, help with testing and packaging would be nice.

Future

The principal planned development of 0.8 is the port to Python 3, which is now finally possible, as no more dependency is blocking, and it is the only thing promised for the next version. Lot of big steps are to follow, and it will be inevitable to make some choices. Don't hesitate to give me opinions/feedback in the commentaries.

Video conference

With Jingle already implemented, the video conference has been planned for a long time. It shouldn't be too difficult to be implement it into the web interface (thanks to WebRTC), but certainly would need a lot of work on desktop/Android (to evaluate different options, GSTreamer is the hot candidate at the moment, and integrate with Cagou). This is an important work.

Improving the file sharing

SàT already allows advanced file sharing (more than a simple sending of the files to the server), including a server component. It is very possible, that the future developments will continue in this direction.

share a directory with Cagou

iOS Version

It would be technically possible to use Cagou on iPhone. Though, there are several obstacles to cope with - especially the legal ones (Apple store is not compatible with the current licence, AGPL 3+). Lot of time and investments would be needed. This is clearly not the priority, but keep in mind that an iOS version is doable.

ActivityPub Gateway

With this version, SàT can be used as a "component", i.e. a server service. This possibility can be used to build an ActivityPub gateway, that would allow 2 ways communication with projects using this protocol. There is already somebody working on a similar gateway for Prosody, , so I will certainly wait to see how it evolves before starting it by myself.

Chat Evolution

Though its already functional, the chat can become very complete if we take the time for it. Here, we speak of adding some missing features (like reactions or editing of the last sent message), improving the file handling, copy/pasting of code, end-to-end group encryption, etc.
All this is on the roadmap, the question is whether this is a priority or not.

Improvement of User Experience

This is probably the project which will have the priority, once Python 3 port is done. SàT has already lot of features, but the interfaces need some work to become really user-friendly. I would specially like to work on launch screen and contacts discovery. There are as well lots of "small details " which all together take lots of time, but in total make the user-experience much more pleasant: integration to desktop, file-sharing actions, easier file selection, etc.

Well, so much for the future steps, all of this would take time, but again - your feedbacks are highly welcomed. There are other ideas to think about, but one has to choose her priorities.

But…

Salut à Toi is an huge project with a potential - and it is currently developed by a single person. I have currently only one day a week dedicated to SàT (besides mornings, evenings and nights), the rhythm is very difficult to cope with. In the next months I will seriously study the projects financing possibilities. It will be necessary that I find a way to keep the project on track.

Useful Links
  • official website: https://salut-a-toi.org
  • documentation: https://salut-a-toi.org/documentation
  • my blog: https://www.goffi.org (I publish there weekly progress notes)

Gravatar de Goffi
Original post of Goffi.Votez pour ce billet sur Planet Libre.

Articles similaires

Goffi : Salut à Toi v0.7 « La Commune »

Salut à vous,

c'est avec plaisir et un certain soulagement que je vous annonce la sortie de « Salut à Toi » v0.7 (La Commune).

Pour mémoire « Salut à Toi » (ou SàT) est un écosystème de communication décentralisé, basé sur le standard établi « XMPP ».
Il vous permet de faire de nombreuses choses (messagerie instantanée, partage de fichiers, blogage/microblogage, événements, forums, etc.) et a la particularité d'être multi-interfaces (différents « frontaux » sont disponibles pour le web, le bureau, les appareils mobiles, ou encore le terminal et la ligne de commande).

La préparation de cette version aura pris 3 ans, c'est la première version dite « grand public », autrement dit qui est utilisable par un public qui n'est pas forcément technique, même s'il y a encore des améliorations à faire au niveau de l'interface et l'« expérience utilisateur ».

Il n'est pas question de refaire une longue énumération de fonctionnalités avec captures d'écrans, vous pouvez vous référer à l'annonce de la version alpha pour ceci. Je vais plutôt expliquer certaines nouveautés majeures :

Cagou, l'interface bureau/appareils mobiles

Promis suite à notre modeste campagne de financement participatif, Cagou est le nom du nouveau frontal bureau/appareils mobiles (Android uniquement pour le moment). Pour la petite histoire, c'est une référence à un superbe oiseau qui ne vole pas et aboie, endémique à la non moins superbe Nouvelle-Calédonie, mais aussi un clin d'œil à Kivy, le cadriciel que nous utilisons et dont le nom et logo rappellent le Kiwi de la Nouvelle-Zélande.

Cette interface est donc multi-plateformes, et ne se contente pas de la messagerie instantanée : vous pouvez vous en servir pour transférer des fichiers (par exemple vos films/photos entre votre téléphone et votre ordinateur de bureau), ou comme télécommande pour votre lecteur de médias. Il est bien entendu prévu qu'il gère également le blogage dans un avenir proche.

Cagou est pensé pour être utilisable aussi bien sur un petit écran qu'en plein écran sur un grand moniteur de bureau, et permet de diviser facilement l'écran en zones pour, par exemple, suivre plusieurs salons de discussion en même temps.

Sur Android l'application souffre encore de quelques problèmes de lenteur et même parfois de plantages. Plusieurs problèmes seront corrigés avec le port sur Python 3, aussi considérez cette version comme un premier jet qui permet d'avoir vos commentaires et suggestions.

Cagou sur Android

Chiffrement de bout en bout

Bien que SàT gère le chiffrement de bout en bout depuis plusieurs années via « OTR », cette version voit l'arrivée d'« OMEMO », un algorithme palliant des défauts du précédent (il permet notamment d'envoyer des messages chiffrés hors ligne, ou de les afficher sur plusieurs appareils). OMEMO n'est implémenté qu'en conversation simple (dites « 1:1 », entre 2 personnes) pour le moment, mais la prochaine version verra certainement la gestion des conversations de groupes chiffrées de bout en bout.

Événements, album photos, forums, gestion de tickets, requêtes de fusion

De nombreuses fonctionnalités font leur apparition. Vous pouvez désormais créer et gérer des événements (familiaux par exemples), avec une classique liste d'invités et de réponses types « RSVP » (je viens, je ne viens pas, je viens peut-être). Il est possible d'inviter des gens même s'ils ne sont pas sur le réseau XMPP en utilisant des comptes « invités » générés automatiquement et envoyés à des adresses de courriel.

Vous pouvez créer et partager des albums photos, une spécialisation du partage de fichiers. La création n'est pas encore disponible depuis les interfaces graphiques, c'est une amélioration à prévoir rapidement, la consultation par contre est simple depuis Libervia (l'interface web).

Un forum basique est également de la partie, ainsi qu'une gestion des tickets et requêtes de fusion (« merge requests »). Ces 2 dernières fonctionnalités ont été implémentées pour les besoins du projet, mais elles sont très souples et pourront (dans une prochaine version) facilement être utilisée dans la vie courante (par exemple pour des listes de courses ou de choses à faire).

Tout ceci tire parti des capacités de publication/abonnement (ou « PubSub ») de XMPP, et peuvent profiter de son système de permissions (on peut ainsi imaginer une liste de courses partagée entre les membres de la famille, pour indiquer qui a pris quoi).

À noter que pour en profiter il est actuellement nécessaire d'utiliser le service PubSub « SàT Pubsub », un project fait pour les besoins de Salut à Toi (mais utilisable par tout logiciel XMPP).

un blog sur Libervia

album photo sur Libervia

Cadriciel (framework) web

Le développement de Libervia, le frontal web, l'a mené à devenir un cadriciel (ou « framework ») web. La raison de cette évolution est qu'il fallait une interface très souple, permettant d'implémenter et tester facilement de nouvelles idées ou fonctionnalités. Le but est d'avoir un cadriciel naturellement décentralisé et fédéré (parce que basé sur XMPP), qui s'intègre simplement dans l'écosystème. Je passe rapidement sur les détails techniques, mais il s'agit de lier le moteur de rendu Jinja2 avec SàT et d'utiliser PubSub comme base de données. En outre, le frontal en ligne de commande (jp), permet d'utiliser les même modèles pour faire un rendu statique (par exemple pour générer un blog statique ou des archives d'un salon de discussion).

C'est avec ce cadriciel qu'ont été développées les fonctionnalités mentionnées ci-dessus, elles sont organisées en « pages » qui se veulent simple d'utilisation et peuvent fonctionner sans javascript (quand c'est possible, ce qui n'est pas le cas pour le « chat »). C'est grâce à lui que fonctionne le nouveau site officiel où vous trouverez une documentation d'introduction.

mais encore

Je ne vais pas trop m'étendre, les nouveautés sont trop nombreuses, mais il vaut tout de même la peine de mentionner que SàT peut également être utilisé pour stocker vos fichiers sur le serveur (il peut être utilisé en tant que « composant »), ou que jp, le frontal en ligne de commande permet de gérer beaucoup de choses (retrouver ou publier un article de blog, envoyer un message chiffré ou non, retrouver l'avatar de quelq'un, etc.).

Installation

Salut à Toi est disponible dans Debian et ses dérivées, mais attention c'est le cas seulement pour le backend, et les interfaces console et ligne de commandes, de l'aide serait d'ailleurs apprécié pour empaqueter Cagou (interface bureau/appareils mobiles) et Libervia (interface web).

Il est également disponible sur les dépôts AUR d'Arch Linux, et sur cette distribution il existe des paquets pour installer les versions de développement.

Des paquets Flatpak permettent une installation aisée de Cagou, Primitivus (console) et jp (ligne de commande) sur la plupart des distributions GNU/Linux, vous trouverez les liens sur la page principale du site.
Vous pouvez bien sûr aussi utiliser pip, le gestionnaire de paquets de Python. Un simple pip2 install --user sat suivit d'un pip2 install --user cagou voire d'un pip2 install --user libervia devrait suffire. Les instructions sont disponibles dans la documentation du site.

Pour Android, vous trouverez un Apk sur ce lien. Je vais faire les démarche pour le rentre disponible sur F-Droid, et éventuellement le « play store ».

Bien que SàT devrait techniquement fonctionner sur Mac OS X, Windows et les *BSD, il n'est pas testé sur ces plateformes (car je ne les ai pas à disposition). J'ai eu quelques retours sur Mac. Si des personnes sont intéressées, une aide pour tester et empaqueter serait plus que bienvenue.

Avenir

La principale chose attendue pour la 0.8 est le port sur Python 3, il est enfin possible maintenant que plus aucune dépendance ne bloque, et c'est la seule chose certaine pour la version à venir. Plusieurs grosses pistes sont envisagées ensuite et il va falloir faire des choix, n'hésitez pas à donner votre avis/préférence en commentaire.

Visioconférence

Jingle étant déjà implémentée, la visioconférence est prévue de longue date. Elle ne devrait pas être trop difficile à implémenter pour l'interface web (grâce à WebRTC), mais demandera certainement plus de travail sur bureau/Android (évaluer les différentes options, GSTreamer étant le candidat envisagé pour le moment, et intégrer ça à Cagou). C'est un chantier important.

Améliorer le partage de fichiers

SàT propose déjà un partage de fichiers avancé (plus qu'un simple envoi de fichier sur le serveur), incluant un composant serveur. Il est fort possible que des développements continuent dans cette direction.

partager un répertoire avec Cagou

Version iOS

Il serait techniquement possible de porter Cagou sur iPhone. Il y a plusieurs obstacles à cela, notamment juridique (l'Apple store n'est pas compatible avec la licence actuelle, AGPL 3+). IL faudrait également du matériel dédié, et du temps. Ce n'est clairement pas la priorité, mais sachez qu'une version iOS est envisageable.

Passerelle ActivityPub

Avec cette version, SàT peut désormais être utilisé en « composant », c'est-à-dire un service côté serveur. Cette possibilité peut être mise à profit pour créer une passerelle ActivityPub, ce qui permettrait de communiquer dans les 2 sens avec les projets utilisant ce protocole. Il y a déjà un projet en cours de passerelle XMPP pour Prosody, aussi je vais certainement attendre de voir son évolution avant de me lancer moi-même.

Évolution de la messagerie instantanée

Bien que déjà fonctionnelle, la messagerie instantanée peut devenir très complète si on y consacre du temps. Il s'agirait d'ajouter les quelques fonctionnalités manquantes (réactions, correction du dernier message), d'améliorer la gestion des fichiers, des copier-collers des morceaux de code, d'implémenter le chiffrement de bout en bout en groupe, etc. Tout ceci est prévu, la question est de savoir si on en fait la priorité ou pas.

Amélioration de l'utilisabilité

C'est probablement le chantier qui sera prioritaire une fois le port Python 3 effectué. SàT est déjà bien fourni en fonctionnalité, mais les interfaces ont besoin de travail pour être facilement utilisable. J'aimerais en particulier travailler sur le lancement de l'application et la découverte de contacts. Il y a également beaucoup de « petits détails » qui accumulés prennent du temps mais rendent le logiciel beaucoup plus agréable : intégration au bureau, aux actions de partage, une sélection plus agréable des fichiers, etc.

Voilà pour les pistes envisagées, chacune demande du temps et encore une fois vos commentaires/avis sont les bienvenus. Il y a d'autres idées qui traînent, aussi il va falloir bien choisir les priorités.

Mais…

Salut à Toi est un gros projet qui a un potentiel, mais il est pour le moment développé par une seule personne. Je n'ai qu'un jour par semaine consacré à SàT, et le rythme est très difficile à tenir. Dans les mois qui viennent je vais étudier les options de financement du projet. Il va être nécessaire que je trouve une solution à moyen terme pour que ce projet reste sur les rails.

Liens utiles
  • site officiels: https://salut-a-toi.org
  • documentation: https://salut-a-toi.org/documentation
  • notes de progression (en anglais): https://www.goffi.org/tag/S%C3%A0T%20progress

Gravatar de Goffi
Original post of Goffi.Votez pour ce billet sur Planet Libre.

Articles similaires

Benoît Boud@ud : La planète Archlinux (partie 3)

Sommaire 7 - Le formatage des partitions 7.1 - Qu'est-ce que le formatage 7.2 - Les différents systèmes de fichiers 7.3 - Les commande de formatage mkfs et mkswap 7.4 variante uefi 8 - Le montage des partitions Conclusion Commandes utilisées depuis le début de l'aventure 7 - Le formatage des partitions 7.1 - Qu'est-ce [...]

Gravatar de Benoît Boud@ud
Original post of Benoît Boud@ud.Votez pour ce billet sur Planet Libre.

Articles similaires

Marthym : Ma configuration Tmux

Je ne partage pas mes dotfile files sur github comme le font pas mal de dev. C’est long et pas forcément optimal. En plus c’est un risque si j’ai dans mes fichiers de données sensibles comme des mots de passes. Pour mes fichiers de configuration, j’utilise un gros playbook ansible qui va installer et configurer mon environnement. Alors je pourrais le mettre lui mais idem, je suis pas sur qu’il n’y ai aucun mot de passe ou données sensible dans je préfère le garder pour l’instant.

Gravatar de Marthym
Original post of Marthym.Votez pour ce billet sur Planet Libre.

citizenz7 : Seedbox "complète" sous Debian 10 avec Rtorrent, Rutorrent, Emby, Couchpotato

SEEDBOX COMPLETE SOUS DEBIAN 10

Pourquoi créer une seedbox ?
- partager facilement les médias libres (films, animés, OS, etc.)

Cette seedbox sera composée de :
- Debian 10
- Rtorrent
- Rutorrent
- Emby
- Couchpotato
- phpsysinfo
Cet article est fortement basé sur le tuto de EX_RAT sur mondedie.fr : https://mondedie.fr/d/10831-tuto-installer-rutorrent-sur-debian-10-nginx-php-fpmhttps://mondedie.fr/d/10831-tuto-installer-rutorrent-sur-debian-10-nginx-php-fpm
Il reprend l'installation sur un serveur de type VPS Hetzner (https://hetzner.com/ ) + un volume monté en /home


Serveur VPS Hetzner CX21 (2 cpu, 4 GB RAM, 40 GB SSD, 1 Gbps): 5.88 €/M
+ volume supplémentaire de 200 GB monté en /home/seedbox pour fichiers médias : 9,60 €/M

AVANTAGES
- proc performant
- connexion 1 Gbps
- volume à la dimension voulue
- payable à l'heure

INCONVÉNIENTS
- VPS (ressource théoriquement partagées)
- Petit espace de stockage- Trafic (Out) limité à... 20 TB
- Plus cher qu'un "petit" serveur Dédié Kimsufi ou Online

Postulats de départ :
- J'utilise la même annotation que le tuto de ex-rat : signifie qu'il faut remplacer par son véritable nom d'utilisateur, signifie qu'il faut remplacer par son véritable nom de domaine, etc.
- Installation "fraîche" d'une Debian 10.
- Le Volume de 200 GB est monté en /home/

--------------------------------------------
AVERTISSSEMENT :
Cet article n'a pas pour but de décrire la mise en place d'un "système" servant à "pirater" des oeuvre sous droit(s) d'auteur.
La seedbox devra être utilisée à des fins de test ou de partage de médias sous licences libres ou licences de libre diffusion (GPL, Creative commons, etc.).
--------------------------------------------

TUTORIEL : Go !
Une fois le serveur installé avec une Debian 10, on met à jour et on installe quelques applis :
sudo apt update && apt upgrade -y
sudo apt install -y sudo nano vim-nox htop git mc screen ntp rkhunter fail2ban ufw curl

On crée un utilisateur qui aura les droits sudo (il ne s'agit pas de l'utilisateur de la seedbox. Il s'agit d'un "vrai" utilisateur avec les droits sudo) :
sudo adduser citizenz
sudo adduser citizenz sudo

On crée le /home de l'utilisateur (fichiers multimédia) :
sudo mkdir /home/

On configure le fstab pour "monter" le volume à chaque redémarrage.
Pour trouver la config exacte de ce volume, dans votre Panel Hetzner, pour votre serveur :
- menu Volumes
- Trois petits points au bout de la ligne de votre volume puis Configuration

Sur mon serveur, ça donne ça :
sudo echo "/dev/disk/by-id/scsi-0HC_Volume_2942248 /home/ ext4 discard,nofail,defaults 0 0" >> /etc/fstab

Redémarrage nécessaire :
sudo reboot

L'essentielle de la config de base du système est prête, on va désormais suivre le tutoriel de ex_rat :
https://mondedie.fr/d/10831-tuto-installer-rutorrent-sur-debian-10-nginx-php-fpm


Après un reboot, on a accès à :
ruTorrent Webui
URL : XXX.XXX.XXX.XXX/rutorrent

SFTP
IP : XXX.XXX.XXX.XXX
Port : 22

Pour obtenir de l'aide plus facilement, un script de debug est dispo, qui permet d'obtenir un lien vers un récap' complet de vos fichiers de conf en rapport avec le tuto.
cd /tmp
git clone https://github.com/exrat/Script-Debug-MonDedie
cd Script-Debug-MonDedie
chmod a+x Script-Debug-Mondedie.sh && ./Script-Debug-Mondedie.sh

Vous aurez accès à un lien sur Pastebin. En ouvrant le lien dans votre navigateur vous verrez une "copie" des infos de votre système concernant votre seedbox.
En fin de fichier, il peut y avoir des erreurs qui s'affichent. Elles permettront certainement de voir où se situe votre problème de config et cela permettra d'y remédier rapidement.

#########################################
AJOUTS PERSOS
#########################################

-----------------------------------------
1/ Letsencrypt (HTTPS)
-----------------------------------------
Votre fichier Nginx de configuration pour votre seedbox (vhost) ne comporte pas de nom de domaine.
Si vous souhaitez en configurer un, il va falloir légèrement modifier le fichier.
Par contre, même si la connexion sur l’adresse IP + SSL restera possible, votre seedbox sera associée à un nom de domaine. A vous de voir si vous voulez faire ça (anonymat, etc.).

sudo nano /etc/nginx/sites-enable/seedbox.conf

Début du fichier :
server {   
listen 80 default_server;   
server_name _;
On va remplacer par : à remplacer par votre vrai nom de domaine ou sous-domaine... par exemple : seedbox.mondmaine.com
server {   
listen 80;   
server_name ;
Vérifiez toujours que votre configuration Nginx ne comporte pas d'erreur - avant de relancer Nginx - avec la commande :
sudo nginx -t

Vous devriez avoir quelque chose comme ça si tout va bien :
nginx: the configuration file /etc/nginx/nginx.conf syntax is oknginx: configuration file /etc/nginx/nginx.conf test is successful
On va ajouter le plugin Nginx de Letsencrypt (certbot). Très pratique pour Nginx, cela permettra de générer "tout ce qu'il faut" et de configurer automatiquement votre fichier Nginx vhost pour HTTPS.
On installe quelques dépendances :
sudo apt install python3-acme python3-certbot python3-mock python3-openssl python3-pkg-resources python3-pyparsing python3-zope.interface

Puis on installe le plugin Nginx pour certbot (letsencrypt) :
sudo apt install python3-certbot-nginx

On va demander un certificat SSL Letsencrypt avec la commande suivante :
* évidemment et sont à adapter avec votre VRAI domaine
** vous n'êtes pas obligé de déclarer un www. et vous pouvez juste faire : certbot --nginx -d
sudo certbot --nginx -d -d www.

1/ Vous devrez ensuite rentrer une adresse E-mail qui servira à vous envoyer des infos de renouvellement du certificat - valable 90 jours mais renouvelable - ou des infos de sécurité.
2/ Acceptez les termes du service.
3/ Vous pouvez répondre non à la question d'après qui consiste à donner votre e-mail.
4/ Enfin vous choisirez la manière dont le HTTPS sera configuré :
- soit en entrant l'URL HTTPS directement dans le navigateur, à savoir que vous aurez aussi le choix de rester en HTTP (choix 1)
- soit en redirigeant toutes les demandes sur HTTPS (choix 2)
Moi je prends le 2ème choix.

Une fois fait, vous aurez votre certificat Letsencrypt installé pour votre domaine et votre fichier vhost Nginx aura été reconfiguré automatiquement pour tenir compte de la nouvelle configuration.
En vous reconnectant sur votre seedbox, vous pourrez voir que le cadenas vert est apparu (sous Firefox). Votre seedbox est désormais accessible en HTTPS.

Petit ajout pour HTTP2 :
Vers la fin du fichier vhost Nginx seedbox.conf, vous verrez cette ligne :
listen 443 ssl; # managed by Certbot

Ajoutez http2 en fin de ligne, juste avant le point-virgule :
listen 443 ssl http2; # managed by Certbot

Redémarrez Nginx :
sudo /etc/init.d/nginx restart

HTTP2 va permettre d'apporter certaines fonctionnalités. Vous retrouvez toutes les infos ici : https://blog.eleven-labs.com/fr/http2-nest-pas-le-futur-cest-le-present/


-----------------------------------------------
2/ Emby
-----------------------------------------------
Emby (anciennement Media Browser) est un serveur multimédia conçu pour organiser, lire et diffuser du contenu audio et vidéo sur une variété de périphériques.
Très pratique (à mon goût...), il va permettre d'organiser tous les fichiers multimédia, les lire, etc.

On va prendre le lien pour Debian 9, Debian 10 n'existe pas... encore :
wget -nv http://download.opensuse.org/repositories/home:emby/Debian_9.0/Release.key -O Release.key
sudo apt-key add - < Release.key
sudo apt-get update
sudo echo 'deb http://download.opensuse.org/repositories/home:/emby/Debian_9.0/ /' > /etc/apt/sources.list.d/emby-server.list
sudo apt-get update
sudo apt-get install emby-server
Pour permettre à Emby de démarrer automatiquement à chaque reboot :
systemctl enable embyserver.service
systemctl start emby-server.service

Vous devriez pourvoir accéder à Emby sur le port 8096 de votre serveur/seedbox.
Exemple : http://:8096

(Attention pas d'accès en HTTPS, ca ne fonctionne pas chez moi...)
Lors de votre première connexion, plusieurs options de configuration vous seront proposées. Rien de compliqué.


--------------------------------------------
3/ Couchpotato
--------------------------------------------
CouchPotato est un téléchargeur automatique NZB et torrent.
Vous pouvez garder une liste de "films que je veux" et il recherchera les NZBs/torrents de ces films toutes les X heures.
Une fois qu'un film est trouvé, il téléchargera le torrent dans un répertoire spécifié.
Il correspond à la version "films" de SickRage.

J'ai choisi de mettre les fichier de Couchpotato dans /opt

sudo apt install git-core python python-cheetah
cd /opt
sudo git clone https://github.com/CouchPotato/CouchPotatoServer.git couchpotato
sudo cp couchpotato/init/ubuntu.default /etc/default/couchpotato
sudo nano /etc/default/couchpotato
Adaptez le fichier /etc/default/couchpotato come ceci :
CP_USER=
CP_HOME=/opt/couchpotato
CP_DATA=/opt/couchpotato
CP_PIDFILE=/var/run/couchpotato/couchpotato.pid
PYTHON_BIN=/usr/bin/python

Création d'un fichier service systemd :
sudo cp couchpotato/init/couchpotato.service /etc/systemd/system/couchpotato.service
sudo nano /etc/systemd/system/couchpotato.service

On adapte le path du ExecStart dans /etc/systemd/system/couchpotato.service :
ExecStart=/opt/couchpotato/CouchPotato.py

Pour permettre à Couchpotato de démarrer automatiquement à chaque reboot :
sudo systemctl enable couchpotato
sudo systemctl start couchpotato

Vous devriez pourvoir accéder à Couchpotato sur le port 5050 de votre serveur/seedbox.
Exemple : http://:5050

P.S. : Couchpotato c'est bien, mais on y trouve surtout des médias en langue anglaise (GB/US)... Il y a peu de médias FR.
La faute au "Searchers", c'est à dire aux sites de torrents référencés. Dommage qu'il ne soit pas possible d'en ajouter.

--------------------------------------------
4/ phpsysinfo
--------------------------------------------
PhpSysInfo (PSI) est une interface web, écrite avec le langage PHP, qui permet d'afficher des informations concernant le système et le matériel sur lequel elle est installée.
phpSysInfo est distribué sous GNU GPL version 2.

On télécharge la dernière version de phpsysinfo dans /var/www :
cd /var/www
wget https://github.com/phpsysinfo/phpsysinfo/archive/v3.3.1.tar.gz
tar xvfz v3.3.1.tar.gz
mv phpsysinfo-3.3.1/ phpsysinfo
chown -R www-data:www-data phpsysinfo
cd phpsysinfo
cp phpsysinfo.ini.new phpsysinfo.ini

Tout devrait fonctionner "tel quel".
Si vous voulez mettre phpsysinfo en FR :
nano phpsysinfo.ini
DEFAULT_LANG="fr"

--------------------------------------------
Résumé des accès :
--------------------------------------------
PAGE D'ACCUEIL : https:// : y'a rien ! A vous de voir pour y mettre une page d'accueil, une "plateforme" type muximux (https://github.com/mescon/Muximux), etc.

RUTORRENT : https:///rutorrent - Connectez vous avec votre nom d’utilisateur + mot de passe créés grâce au tuto de ex_rat
EMBY :  http://:8096 - Connectez vous avec votre nom d’utilisateur + mot de passe créés grâce au tuto de ex_rat
COUCHPOTATO : http://:5050 - Connectez vous avec votre nom d’utilisateur + mot de passe créés grâce au tuto de ex_rat
PHPSYSINFO : http:///phpsysinfo
PS : si vous avez installé un firewall (type UFW), pensez à ouvrir les ports suivants :
80 + 443 : HTTP + HTTPS
5050 : Couchpotato
8096 : Emby
Pensez aussi à SSH (généralement sur le port 22) et votre ou vos port(s) Rtorrent !

Gravatar de citizenz7
Original post of citizenz7.Votez pour ce billet sur Planet Libre.

Journal du hacker : Liens intéressants Journal du hacker semaine #29

Pour la 29ème semaine de l'année 2019, voici 10 liens intéressants que vous avez peut-être ratés, relayés par le Journal du hacker, votre source d’informations pour le Logiciel Libre francophone !

Pour ne plus rater aucun article de la communauté francophone, voici :

De plus le site web du Journal du hacker est « adaptatif (responsive) ». N’hésitez pas à le consulter depuis votre smartphone ou votre tablette !

Le Journal du hacker fonctionne de manière collaborative, grâce à la participation de ses membres. Rejoignez-nous pour proposer vos contenus à partager avec la communauté du Logiciel Libre francophone et faire connaître vos projets !

Et vous ? Qu’avez-vous pensé de ces articles ? N’hésitez pas à réagir directement dans les commentaires de l’article sur le Journal du hacker :)

Gravatar de Journal du hacker
Original post of Journal du hacker.Votez pour ce billet sur Planet Libre.

Articles similaires

Benoît Boud@ud : La planète Archlinux (partie 2)

Sommaire 4 - Le partitionnement 4.1 - Pourquoi est-il nécessaire de partitionner? 4.1.1 - La partition moteur 4.1.2 - La partition habitacle 4.1.3 - La voiture non partitionnée 4.2 - Déterminer le nom de son disque grâce à l'utilitaire fdisk 4.3 - Choisir le type de la table de partitionnement 4.4 - Partitionner son disque [...]

Gravatar de Benoît Boud@ud
Original post of Benoît Boud@ud.Votez pour ce billet sur Planet Libre.

Articles similaires

citizenz7 : OneProvider : la Dacia des serveurs dédiés !

Je viens de découvrir Oneprovider .OneProvider est une compagnie Canadienne qui offre une gamme complète de solutions en ligne : serveurs dédiés, virtuels, colocation dans plus 145 villes à travers le monde.C'est en fait une filiale de Online... et des serveurs Online "reconditionnés"... ou "qui ont fait leur temps", etc.Il y a notamment une gamme de serveurs dédiés impressionnante dans une bonne trentaine de villes d'Europe, d'Amérique du Nord et du sud, d'Asie, d'Afrique et d'Océanie. La gamme de serveur est très étendue (niveau proc, RAM, DD, etc.).
Avec les "Summer sell " vous pouvez trouver un dédié basé en France pour 6.99 €/m TTC !  C'est pas cher... mais certaine chose sont minimalistes.Le panel de gestion client est plutôt pas mal fait, la gestion du serveur est plutôt pratique.Mais première surprise lors de l'install ou de la reinstall de l'OS du serveur dédié, pas possible de choisir autre chose que des versions "anciennes" des OS (Debian v8, Ubuntu 14.04, ...) Ça commence à dater un peu.Pourtant, sur l'annonce au moment de l'achat il est bien noté que Debian 9 fait partie des OS disponibles tout comme Ubuntu 18.04.Par contre, sur simple demande au support, ils vous l'installent (Debian 9) après que vous leur ayez affirmé que vous êtes au courant que la réinstall va effacer toutes les données du serveur.
 

Mais à 6.99 €/mois, le serveur dédié que j'ai choisi (Intel Atom C2350 - 1.7 GHz, 4GB Ram DDR3, 1 TB HDD SATA et surtout une connexion à 1 Gb/s unmetered) est quand même pas mal !Le processeur est assez limité mais pour un "petit" serveur web ou une seedbox, c'est parfait ! La connexion à 1 GB/s est parfaite !
Mais moi, je voulais me faire un serveur avec une Debian 10 O_o !!!
Donc pas d'autre alternative que d'upgrader à la main l'OS installé.Plutôt que de passer de Jessie à Buster directement (je pense que ce n'est pas indiqué : vous confirmez ?), j'ai préféré upgrader vers Strech dans un premier temps, puis vers Buster dans un deuxième temps.Voila comment je m'y suis pris et c'est en fait très simple.
Première chose à faire : s’assurer qu’on est bien à jour sur Jessie :$ su
# apt update
# apt full-upgrade
# reboot

Puis on met à jour le fichier /etc/apt/sources.list en remplaçant jessie par stretch :$ su# sed -i 's|jessie|stretch|' /etc/apt/sources.list
Vérifiez aussi les dépôts dans /etc/apt/sources.list.d/
Puis on met à jour vers Stretch (v9) :# apt update
# apt full-upgrade# reboot
Bingo ! On est sous Debian Strech (9).
 

Vérifiez avec :$ lsb_release -a
Vous aurez peut-être quelques fichiers à supprimer :#apt autoremove#reboot
Si tout est bon, on passe de Strech (9) à Buster (10) avec la même procédure :$ su
# sed -i 's|stretch|buster|' /etc/apt/sources.list# apt update# apt full-upgrade# reboot
Bingo (2) ! On est sous Debian Buster (10).
Vérifiez avec :$ lsb_release -a
No LSB modules are available.Distributor ID: DebianDescription:    Debian GNU/Linux 10 (buster)Release:        10Codename:       buster
$ uname -aLinux AMS-144116 4.19.0-5-amd64 #1 SMP Debian 4.19.37-5 (2019-06-19) x86_64 GNU/Linux
Bien que vous soyez en Debian 10 (Buster), vous garderez la version Debian 8 sur votre panel d'administration client OneProvider.
 

Gravatar de citizenz7
Original post of citizenz7.Votez pour ce billet sur Planet Libre.

Simon Vieille : *.deblan.org censuré sur Facebook

Hier, en partageant un lien vers un dossier Nextcloud dans une conversation Messenger, Facebook m'a affiché un message qui indique que deblan.org ne suit pas les "Standards de la communauté".

capture d'écran

En fouillant un peu plus, il s'avère que tous les domaines de deblan.org sont concernés. Il semble également que le mot deblan.org est aussi en liste noire.

capture d'écran

En fouillant encore un peu plus, Facebook a décidé que le partage de l'article vers mon projet deblan/deblan-report était lui aussi contraire à ces fameux "Standards de la communauté" (cf la capture d'écran) alors que je suis l'auteur d'absolument tous les contenus du dit article.

Alors, on peut se demander pourquoi une telle décision ? Aucune idée. Mais si de mon coté ça ne me pose pas plus de soucis que ça, les quelques personnes qui hébergent du contenu sur mon serveur seront peut-être un peu plus contrariées.

Voici un bel exemple de censure, sans fondement et sans explication. Il faut rappeler que Facebook n'est pas qu'un simple hébergeur de contenus, c'est avant tout un site éditorialiste qui décide de ce qui doit apparaître ou pas dans ces pages en dehors de tout cadre juridique.

Ce web égo-centré est de l'ancien monde et ça me pousse encore plus vers les services du Fediverse, loins de ces sociétés nauséabondes qui crachent à la gueule de tout le monde et qui continueront à le faire car la majorité des gens s'en tapent.

Gravatar de Simon Vieille
Original post of Simon Vieille.Votez pour ce billet sur Planet Libre.

Littlewing : Comment coacher des jeunes développeurs ?

En changeant de société l’année dernière j’ai eu l’impression de monter d’un cran dans la pyramide des ages.
Pour faire plus simple, je me suis senti un peu plus vieux.

Si vous avez quelques années d’expérience dans le développement ou tout simplement dans la technique, vous avez déjà eu l’occasion de coacher ou d’encadrer techniquement des jeunes diplômés.

Et oui, c’est un signe !

Maintenant vous avez assez de recul ( pour ne pas dire que vous êtes vieux/vieille) pour encadrer techniquement des jeunes ingénieur.e.s
Certes vous n’avez pas fait le choix de partir vers la gestion de projet ou le management.
Cependant l’encadrement technique ( vous pouvez l’appeler mentorat, tutorat, apprentissage,… ) est nécessaire pour faire monter en compétence les nouveaux arrivants et les rendre autonomes.

Je vais essayer de mettre en lumière quelques pratiques que je mets en œuvre et que j’ai pu remettre au goût du jour depuis un an.
Si vous avez des idées, avis, n’hésitez pas à les mettre en commentaire.

Documentation

Il y a plusieurs types de documentation que je partage.
Tout d’abord, j’ai partagé quelques sites et ouvrages qui me paraissent indispensables.
Clean  Code arrive en premier. Effective Java en second.
A mon avis, ça ne sert pas à grand chose d’aller plus loin dans le développement si on n’a pas acquis les notions décrites dans ces livres!
Puis vient le refactoring puis les design patterns.

Ensuite, j’essaye de partager via notre chat interne les quelques solutions trouvées dans les projets.

Enfin, j’ essaye de m’ astreindre à mettre à jour la documentation.
Oui c’est un combat de tous les jours 😀
Ça commence par les exemples de code.

J’essaye d’ avoir des repos git assez lisibles (c.-à-d. avec un README intelligible) et un code à jour correspondant aux normes en vigueur.
Un exemple, j’ai crée un projet permettant d’ illustrer la mise en œuvre des tests unitaires et d’intégration dans un projet standard (spring, tomcat, docker,…).

Ces éléments nécessitent un travail important, que ça soit à la création ou pour tenir à jour la documentation. Cependant, ça me permet de ne pas me répéter, et d’ illustrer via un cas pratique ce que j’attends dans les Merge Requests. En effet, chaque développement est assujetti à une Definition of Done ( tests, qualité, …) . Il faut donc que la qualité de la documentation soit en rendez vous !

Veille

Au delà de la documentation, je « pousse » aux différents dev, les articles que je trouve pertinent pendant ma veille technologique.
J’invite également tout le monde à en faire.
Je ne peux pas les obliger.
Maintenant comme je peux le dire régulièrement.
Si on souhaite rester dans la technique, il faut se tenir à jour. La veille (sites web, confs, livres,…) en est le meilleur moyen.

Ateliers / Workshops

Organiser un workshop ou atelier d’une heure ou deux max est un bon moyen de fédérer les troupes.
J’essaye d’organiser deux types d’atelier.
Le premier est uni directionnel : Une personne présente un sujet technique et les autres en profitent.
Ça permet tout d’abord de diffuser plus simplement certains messages.
Par exemple, j’ai organisé une présentation de 30 mn sur l’utilisation de NULL dans le code et l’utilisation des Optional.

Le deuxième est plus long à préparer.
C’est un atelier organisé à la manière d’un hands on sur un sujet très précis.
Pendant 1H ou 2H, l’équipe planche sur un sujet. La session est organisé et animé idéalement par un ou plusieurs membres de l’équipe ( ça ne vous empêche pas d’avoir votre mot à dire lors de la préparation 😀 ).
Récemment j’ai co-organisé un hands on « Clean Code » en illustrant quelques notions qui nous paraissaient essentielles.

Ces évènements sont évidemment chronophages mais offrent un certains retour sur investissement.
Outre la présentation technique des différents sujets, les membres de l’équipe se forment et apprennent.
Ils peuvent voir en situation les différentes notions que vous évoquez (en fait je les rabâche) lors des MR ou pendant les revues de code.
Aussi, je pense que ça contribue à une certaine émulation technologique.
Ça prend du (beaucoup de) temps, mais ça en vaut la peine!
L’idéal dans ce genre d’exercice est quand tout le monde propose des sujets.
Pas seulement l’architecte ou le lead dev.
Les développeurs peuvent prendre le lead dans cet exercice. Ca permet d’une part de les valoriser, de les faire monter en compétence. Quoi de mieux pour approfondir un sujet que de monter un talk et/ou hands on dessus ?

Revues de code

Je ne vais pas aborder dans ce chapitre les revues de code que l’on peut faire dans le cadre des projets, lors des MR par exemple.
Pour certaines personnes, surtout les juniors, je fais régulièrement une revue de code alternative.
Je passe une 1/2 heure, une heure max sur un bout de code que le dev m’aura sélectionné. Je lis le code avec le développeur et je donne quelques axes d’amélioration: design patterns, tests unitaires, refactoring,… Tout y va.
Ça permet de se poser et d’aborder quelques sujets: la programmation fonctionnelle, les IO en java,…

Pour aller plus loin

Bien évidemment, beaucoup d’autres actions peuvent être mises en place. La plupart de l’accompagnement que je peux réaliser se fait quotidiennement, dans les projets.

Pour aller un peu plus loin, un collègue a mis en place un système de mentorat pour accompagner les jeunes développeurs et accélérer leur montée en compétence.
Cette idée est très intéressante et peut être appliquée dans beaucoup de contextes.

Si vous avez des idées, questions, remarques, pratiques que vous développez chez vous, n’hésitez pas à les partager!

Gravatar de Littlewing
Original post of Littlewing.Votez pour ce billet sur Planet Libre.

Pages