[NAS Syno] Installation de l'application de FreshRSS
FreshRSS est un agrégateur de flux RSS permettant de centraliser les flux RSS sur son propre serveur (le NAS Syno 713+ dans mon cas) et d'y accéder de n'importe où.
Site officiel : https://freshrss.org/
Il existe bien l'extension Brief pour Firefox mais il faut toujours utiliser le même navigateur Internet pour les synchronisations (pas de synchronisation possible avec son ordiphone par exemple).
Tutoriel d'installation ici : https://mariushosting.com/how-to-install-freshrss-on-your-synology-nas/
Autre tuto sur Docker sur Synology : https://www.nas-forum.com/forum/topic/65309-tuto-docker-introduction/
I- Installer Docker sur son NAS Syno via le paquet dédié
II- Créer le dossier "freshrss" (tout en minuscules) dans le dossier "Docker" de File Station :
III- Récupérer les identifiants PUID et PGID de l'utilisateur
Pourquoi on ne devrait pas coller directement dans son terminal du code copié sur un site Internet
Via SebSauvage, un article (en anglais) expliquant ce qu'il peut se passer lorsqu'on copie des lignes de codes récupérées sur un site Internet : https://www.bleepingcomputer.com/news/security/dont-copy-paste-commands-from-webpages-you-can-get-hacked/. Qui ne l'a pas déjà fait, confiant⋅e que nous sommes en la nature humaine 😉 ?
C'est très bien fait, subtil et assez simple à mettre en œuvre (avec un retour à la ligne inclus qui fait que lorsqu'on colle la ligne, elle s'exécute automatiquement et qu'il ne reste plus qu'à pleurer). Ça passe par du code JavaScript s'exécutant sur la page web qui détecte la ligne copiée et la remplace dans le presse papier par une ligne malicieuse.
Page sur laquelle on peut tester l'entourloupe expliquée par Gabriel Friedlander (on colle pas dans son terminal ! 😁) : https://www.wizer-training.com/blog/copy-paste.
Du coup, avant de copier/coller du code :
- on désactive le JS dans son navigateur avec une extension comme NoScript Security Suite,
- ou on copie d'abord dans un éditeur de texte au lieu de le faire directement dans son terminal,
- ou on ajoute dans le terminal, le signe de commentaire "#" avant de coller le code,
- ou on configure son terminal (si c'est possible) afin de ne pas exécuter automatiquement la ligne lorsqu'on colle "\n" (instruction de retour à la ligne).
À bon⋅ne entendeur⋅euse, ...
Rajout : le problème n'arrive pas uniquement avec JavaScript car on pourrait avoir le même type "d'attaque" en copiant/collant du texte rendu invisible par formatage Html / CSS (même si c'est plus grossier et plus facilement détectable)...
[Home Assistant] Installation sur Raspberry Pi 4
Jusqu'à présent j'utilisais Home Assistant à partir d'une installation sur mon NAS Synology DS 713+ mais suite aux dernières évolutions (disparition de Hassio et du "superviseur", utilisation uniquement possible via Docker et non pas avec une VMM car mon NAS ne le supporte pas) et de profiter d'une version la plus complète possible avec l'ajout facilité d'extensions, j'ai décidé de tenter le coup sur un Raspberry Pi 4 avec 4 Go avec un disque SSD de récupération dans un boîtier pour contourner les possibles problèmes avec une carte microSD.
La version utilisée sera donc Home Assistant Operating System (anciennement HassOS) : https://github.com/home-assistant/operating-system.
I- Préparation du Raspberry Pi 4
Tout d'abord, il faut veiller à mettre à jour le firmware du Raspberry Pi 4 car si on a un appareil de première génération, le boot en dehors de la carte SD n'était pas implémenté. J'ai donc décidé de réaliser une installation de Home Assistant sur une carte SD afin de pouvoir faire tous les réglages du firmware et du boot à partir du même système et ensuite de le dupliquer sur le disque SSD.
En fait, Home Assistant sur Raspberry Pi 4 n'est pas basé sur Raspberry Pi OS et il n'est donc pas possible de mettre à jour le firmware à partir de Home Assistant Operating System. Il faut donc utiliser une distribution Raspberry Pi OS (ex Raspbian) pour régler un boot sur USB.
Sources :
[Linux] Commandes utiles
Site source où j'ai repris ces infos afin d'avoir un accès direct depuis n'importe quelle machine sans avoir à chercher : https://www.citizenz.info/note-obtenir-les-details-systeme-et-materiel-linux-par-ligne-commande (merci à Citizenz pour son partage).
Affichage des informations système de base sur Linux Shell
$ uname
$ uname -s (kernel name)
$ uname -r (kernel release)
$ uname -v (kernel linux version)
$ uname -n (hostname - Network Node Hostname)
$ uname -m (Machine Hardware Architecture: i386, x86_64, etc.)
$ uname -p (processor type)
$ uname -i (hardware plateforme)
$ uname -o (operating system informations)
$ uname -a (display all info)
Affichage d'informations détaillées sur le matériel
$ sudo lshw (Hardware Information)
$ sudo lshw -short (Résumé des infos)
$ sudo lshw -html > hardwareinfo.html (créer une page HTML des résultats)
Affichage des informations sur le CPU
$ lscpu
Affichage des infos sur les périphériques type disques, lecteurs
$ lsblk
$ lsblk -a (informations encore plus détaillées - loop devices)
Affichage des informations sur les périphériques USB
$ lsusb
$ lsusb -v (informations encore plus détaillées : "verbose")
Affichage des informations sur les périphériques PCI
$ lspci (lspci --help pour voir toutes les options)
Affichage des informations sur les périphériques SCSI
$ lsscsi (vous devrez peut-être installer : sudo apt install lsscsi)
Affichage des informations sur les périphériques SATA
$ sudo hdparm [devicelocation] ==> exemple : $ sudo hdparm /dev/sda1
Résumé de la configuration matérielle
$ sudo inxi -Fxz
Exemple de règles REGEX
Je recense ici des règles REGEX pouvant être utiles pour valider des données dans des formulaires.
Site où l'on peut tester ses règles : https://regex101.com/
- Pour n'accepter que des courriels (avec ou sans tirets - _) en @ac-montpellier.fr :
^[^\W][a-zA-Z0-9\-\._]+[^\W]@ac\-montpellier\.fr$ - Pour n'accepter que des courriels (source https://openclassrooms.com/forum/sujet/amelioration-de-regex-verification-adresse-mail) :
^[^\W][a-zA-Z0-9\-\._]+[^\W]@[^\W][a-zA-Z0-9\-\._]+[^\W]\.[a-zA-Z]{2,6}$
Liens vers des sites intéressants
- Mesure de la fluence en français (met en forme un texte avec le nombre de mots lu à chaque ligne) : https://micetf.fr/fluence/
- Moodle / M@gistère (tableau synthétique des différents outils et leurs usages): https://moodletoolguide.net/fr/
[Inkscape] Partager une image en 4 pour créer des grands pochoirs
J'ai eu besoin d'agrandir un pochoir initialement prévu pour être découpé à la CNC. Ce pochoir avait une taille initiale de 50 x 45 cm et j'avais besoin d'une image finale d'environ 1 m x 1 m.
Vu la taille finale et la capacité de découpe de ma CNC, ce grand pochoir de près d'1 mètre peut être la résultante de 4 morceaux de pochoirs obtenus avec la CNC.
- J'agrandis d'abord la page à 104 x 100 cm.
- Puis j'agrandis le pochoir initial pour lui donner la taille finale plus petite que la page de manière à avoir des pourtours blancs (pour maintenir les parties découpées entre-elles) : passage de 50 x 45 cm -> 98 x 90 cm.
- On centre l'image verticalement et horizontalement.
- Pour s'aider et obtenir 4 morceaux de taille équivalente, on peut utiliser une grille de 52 cm en X et 50 en Y.
- On trace un premier rectangle en s'aidant de l'aimantation sur la grille de 52 cm x 50 cm et on va utiliser la fonction "Division" du menu "Chemin".
- On sélectionne les parties des différents chemins qui se trouvent dans le rectangle 52 x 50 cm pour les isoler et on les rassemble avec la fonction "Union" du menu "Chemin".
- On met ce 1er pochoir sur un nouveau calque.
- On procède de même pour les 3 autres morceaux que l'on met aussi sur 3 calques différents.
- On génère ensuite les 4 fichiers GCode comme habituellement à partir de chacun des 4 calques (voir cette page explicative).
- Il peut être intéressant de visualiser le GCode produit pour voir le chemin du laser ici : https://ncviewer.com/. Ça m'a permis de me rendre compte que le laser parcourait plusieurs fois le même chemin à cause d'informations redondantes dans Inkscape dans la partie "Objets" : il faut nettoyer et ne laisser que 3 morceaux : 2 groupes correspondant aux outils et à l'échelle de l'extension GcodeTools + le chemin "path" représentant le parcours.
Remarque : il peut arriver que des morceaux ne se séparent pas complètement lors de la division. Pour contourner ce problème, on sélectionnera les morceaux en cause et on appliquera la fonction "Séparer" du menu "Chemin".
Page 18 sur 37