Dans cet #annuaire_index je partage des liens qui nourrissent ma recherche
En #2024 j'ouvre un nouveau site de recherche
+plus formel, inspiré de celui-ci : https://dn.vincent-bonnefille.fr
{Ici} je (b)log des #notes_perso et mentionne tout #projet_perso !
Cet espace m'engage vers une #d_centralisation des #GAFAM_NATU
Retrouvez mon #corpus de #2017 ( sous la forme d'une #map_carte) ici
Ce site { ici } fonctionne grâce au génialissime #shaarli site
Quelques sujets :
#ShadowLibraries / #défense_numérique / #luddites / #jardin(s numériques)
Vous pouvez afficher une vue d'ensemble / mur d'images :
( des bulles les plus importantes : taguées #! ou #<3 )
/?do=picwall&searchtags=! ou /?do=picwall&searchtags=<3 ou <3 et ! ...
- LES INCONTOURNABLES : <3 / ! / corpus
- LES GRANDES CLASSES : .i / .p / .r / .art
(.i : informatique, .p : politique, .r : recherche)
- LES CATÉGORIES :
darknet : #dn_darknet : #dn_tor_onion #dn_lokinet ... dn_*
perso : #projet_perso #log_perso #notes_perso ... *_perso
recherche_création / _thèse / _outils ... recherche_*
orga. / artiste / auteur.ice : @
Mise à jour majeure de ma petite #raspberrypi
( sur laquelle une grande partie de mes sites tournent )
64bit pour du calcul plus rapide, il était temps !
même si j'étais dans une résistante pro lenteur...
je me confrontais à de trop nombreuses limites
( #Docker demande souvent de l'ARMel
= 64bit )
L'occasion de faire le ménage dans mes services
De réinstaller pas mal à la main, de vérifier mes acquis
Projet monté en #2020~ la remise à plat était bienvenue !
Bonne visites . Bonnes vacances . Bonne rentrée .
Chroot
- Permet d'accéder au contenu d'un système avec les ressources propres d'une autre machine
Je peux accéder à au système contenu sur une carte_SD ou disque dur... depuis mon terminal... sans avoir démarrer dessus (sur ces supports)... qui normalement sont branchés sur un autre ordinateur. - C'est très pratique (par exemple quand la machine en question ne démarre plus /ou/ comme ici, quand on veut apporter des modifications /ou/ accéder au contenu).
- Mais je n'y suis pas arrivé pour cette fois ... j'ai donc fais mes migrations avec
rsync
etsshfs
- J'ai finalement utilisé :
losetup
et ce petit alias : https://unix.stackexchange.com/a/430415 (pour monter mon img, retrouver mes fichiers : pas une emu/chroot...)
Les pistes ( VM/Docker/chroot ) :
-
Chroot to pi sd card
↳ https://gist.github.com/htruong/7df502fb60268eeee5bca21ef3e436eb -
[GUIDE] Build Debian image to run on Tab via chroot | XDA Forums
↳ https://xdaforums.com/t/guide-build-debian-image-to-run-on-tab-via-chroot.1172504/ -
Chroot into Raspberry Pi ARMv7 Image with Qemu on Linux
↳ https://docs.j7k6.org/raspberry-pi-chroot-armv7-qemu/ -
Comment "chroot" une raspbian sur son linux? [script] - tutox.fr
↳ https://tutox.fr/2020/01/08/comment-chroot-une-raspbian-sur-son-linux-script/ -
lukechilds/dockerpi: A Virtualised Raspberry Pi inside a Docker image
↳ https://github.com/lukechilds/dockerpi -
carlosperate/docker-qemu-rpi-os: Docker images with Raspberry Pi OS running on QEMU
↳ https://github.com/carlosperate/docker-qemu-rpi-os?tab=readme-ov-file -
Emulating Raspberry Pi 4 with Qemu
↳ https://gist.github.com/cGandom/23764ad5517c8ec1d7cd904b923ad863 -
Chroot into Raspberry Pi ARMv7 Image with Qemu
↳ https://gist.github.com/jkullick/9b02c2061fbdf4a6c4e8a78f1312a689
FULL tuto : https://www.youtube.com/watch?v=-huRykhjs6g
DETAIL : https://dortania.github.io/OpenCore-Install-Guide/
( + à la fin )
D'autres solutions, liste de compatibilité :
https://gist.github.com/wolfiediscord/d02d5d30898c8cacd6b5c1ab83af95b9
La liste des macs et leurs compatibilités / specs :
https://everymac.com/systems/apple/index-apple-specs-applespec.html
Trop vieux pour être à jour
@Apple bloque la mise-à-jour de son OS (Operating System) sur de vieilles machines.
On peut voir cette limitation de plusieurs façons :
Un but...
- marchand / commercial
: bloquer les mises à jour de l'OS oblige d'acheter un nouvel ordinateur - Ou technique
pour faire tourner parfaitement son système (OS)..@Apple encourage l'achat d'un nouvel ordinateur +plus rapide...
: cela garantit une expérience de qualité supérieure...
: un vieil ordi serait incapable de répondre aux attentes de la marque
( en termes de stabilité ) ( réservée à une population plus+ aisée )
Les 2 sont vrais !
Mais on voit, avec {ce} hack (bidouille) que ce choix est logiciel
! un vieux Mac peut faire tourner /Ventura/ et autres versions !
! C'est Apple qui bloque artificiellement sa mise à jour
: C'est de l’obsolescence logicielle et non matérielle
@Apple est surplombant, autoritaire dans sa façon de développer
( du haut vers le bas , pas du bottom-up )
Si l'entreprise qu'on ne peut pas on est bloqué.es !
Contourner le blocage : ruser / hacker
( Installer un OS sur un Mac non reconnu )
On peut contourner l'obsolescence d'un vieux macOS...
Par le passé, j'avais essayé :
http://dosdude1.com/catalina/
http://dosdude1.com/software.html
Mais j'ai trouvé ce projet mieux maintenu <---
https://github.com/dortania/OpenCore-Legacy-Patcher
https://dortania.github.io/OpenCore-Legacy-Patcher/START.html
Attention, le BOOT loader autorise le mac non reconnu à démarrer...
Cela se fait en passant par une clé USB
On peut aussi installer un patch sur le system (OS)
Un autre PC est possible
+ Impact écologique
Apple n'est pas connu pour faire de l'OpenHardware ou OpenSoftware
Détourner leurs pratiques propriétaires est peut-être illégale au regard des #CGU
Utiliseriez-vous ces outils malgré tout ?
Si vous cherchez un PC réparable / ouvert
vous pouvez penser aux ordinateurs #@Framework
https://liens.vincent-bonnefille.fr/?EbwC_A
J'y relate également mes mésaventures avec Apple...
https://liens.vincent-bonnefille.fr/?EbwC_A#goto_MsaventureavecApple
Un smartphone ouvrable, facile à upgradé ?
/FairPhone/ s'attaque à cette part de marché !
Pour rappel, pourquoi l'open_hardware est importante :
Un smartphone est un concentré d’industries : minière, pétrolière, chimique, auxquelles s’ajoute l’industrie du data mining, de l’extraction de données. Comme je l’indique dans mon livre, selon les données de Fairphone, il faut des composants issus de plus de mille usines différentes pour permettre produire un seul « smartphone »
@Celia_Izoard #2024
https://www.contretemps.eu/entretien-celia-izoard-ruee-miniere/
Bloquer artificiellement (par logiciel) l'évolution d'un ordinateur, encourage des achats matériels qui ne sont pas sans conséquences pour la planète !
Asahi - linux on New Mac
Si vous voulez vous pouvez aussi basculer sur Linux
Installez Asahi sur votre M1_M2 hors de prix :-)
https://asahilinux.org/about/
Infos ( article )
https://www.frandroid.com/marques/apple/1912403_linux-sadapte-de-mieux-en-mieux-aux-macbook-m1-et-m2-grace-aux-progres-du-projet-asahi
STORY : Xcode obsolescence programmée
( cas concret )
Pièce centrale du dev sur Mac (OSX),
Xcode doit être à jour pour installer d'autres logiciels
: faire des mises à jour, etc
! Sans cette pièce, on est bloqué.e
( EX/ quand on veut installer des composants ..
( ou/ des logiciels complets ou parties, tel /nodejs/ )
Or, pour installer la version ultime d'XCODE il faut...
un Mac à jour ( son OS : Operating System )
https://xcodereleases.com
R) Sans Mac OS à jour, pas de XCode à jour !
ISSUES
DISCORD : https://discord.com/invite/rqdPgH8xSN
https://discord.com/channels/417165963327176704/835336744710438913/1213568065443471441
POST
POST insta : https://youtu.be/-huRykhjs6g?si=i8UYeTvTWrql6UCp&t=1134
POST root : https://youtu.be/-huRykhjs6g?si=TlLhZH6YD8Ln57fl&t=1567
https://dortania.github.io/OpenCore-Legacy-Patcher/TROUBLESHOOTING.html#stuck-on-boot-after-root-patching
Stuck 1 ?
+ https://www.youtube.com/watch?v=mNcjmvzS0Vo <-- Good détails Fix
UPGRADE / Stuck
Stuck 2 (new) ?
+ https://www.youtube.com/watch?v=fhQ7SWhRakU <--- New OS update Fix
-
Reboot + NVRAM CMD+P+R (2shim) -> (Alt) -> opencore UEFI /ou/ USB
-
DONT WORKS !!!
-
System Safe MODE -- REBOOT
-
ALT -> (in open_boot_Chooser) -> select HD_MAC + PRESS Shift
-
-> Boot .... will continue INSTALL
-
Réinstall openpatcher after (sauf si installé depuis la cléf usb)
Notes
On peut avoir un soucis avec certains périphériques al pris en charge .... tel les ports USB qu'il faudra remaper !
- https://dortania.github.io/OpenCore-Post-Install/#how-to-follow-this-guide ( menu )
- https://dortania.github.io/OpenCore-Post-Install/usb/system-preparation.html#checking-what-renames-you-need ( usb )
- https://dortania.github.io/OpenCore-Post-Install/usb/intel-mapping/intel.html#Intel-usb-mapping ( intel, usb cli )
USB - yt
- https://www.youtube.com/watch?v=2hZPMHSfkS0 ( OCAuxiliaryTools + Hackintool )
- https://www.youtube.com/watch?v=hvpStozAfmE ( new 2024 )
--> https://www.technolli.com/downloads
Full tuto Mac 5.1
https://www.youtube.com/watch?v=-S0eN_hzMto
Des plugins / Thèmes dans votre terminal !
Customise Zsh un shell présent par défaut sur MacOSx
Facilement installé sur Android
https://github.com/matricci/oh-my-zsh-termux
🙃 A delightful community-driven (with 2,200+ contributors) framework for managing your zsh configuration. Includes 300+ optional plugins
- plugins favori :
https://github.com/z-shell/H-S-MW
BONUS
https://lib.rs/crates/eza ( replace ls
)
https://github.com/ajeetdsouza/zoxide ( replace cd
)
Prise de notes
Je prend des notes avec #dendron ( PC )
J'ai installé /Zettel Notes/ sur mon téléphone #Android ... super, mais ne synchronise pas avec #git / #cloud ...
D'autres apps le font :
/Dendron/ about mobile_apps :
https://wiki.dendron.so/notes/401c5889-20ae-4b3a-8468-269def4b4865/#mobile-support
Git_journal
App + simple : intègre git
( déjà test par le passé ) :
Git_journal
À la main
( #tuto de cette bulle )
Tutos/explications plus après...
J'y ai appris/révisé
- comment utiliser une clef publique pour se connecter (sans id/mot de passe), ici à GitHub
- prise en main de /Termux/ : #Android == #Linux !
( au moins un peu plus ouvert qu'Apple, mais sous surveillance de #Google )
Git c'est quoi ?
#git c'est formidable pour synchroniser l'état d'avancement d'un projet
Ce système de sauvegarde enregistre toutes les versions des fichiers de votre projet : du code, une ensemble de fichiers/fiches .. qui peut être mises bout-à-bout, un jour, formerons une #thèse ( c'est en tour cas mon projet )
Et, il m'arrive de finir une phrase/idée dans le train, entre deux connexions wifi
Cette mobilité impact mon #écriture ( #flow )
. . .
Je passe de mon ordi à mon téléphone
( #périphériques_devices )
le tout selon une nomenclature de fichiers que je voudrais maitriser davantage, pour,..
, in fine, facilement synchroniser mes versions de #fichiers
( oui, cette chose toute simple avec un G***le drive )
#git peut faire ça !
...
: Synchroniser l'état de mon écriture sur petit écran
.. avec l'état d'avancement sur les serveurs hébergeant #git
.. des fichiers/fiches que je compose en utilisant #dendron et non pas /Obsidian/
Syncro locale, outils
Pour m'aider dans l'exécution du tuto...
J'ai synchronisé le presse-papier de mon ordi avec celui de mon téléphone
en utilisant /KDE_Connect/ + /Scrcpy/
Tuto +
Le lien de cette bulle : https://lucidhacker.substack.com/p/setting-up-git-syncing-for-obsidian
nous explique comment faire ..
en utilisant un Émulateur de Terminal sous #Android : /Termux/
On peut y installer /oh-my-zsh/
- https://github.com/matricci/oh-my-zsh-termux
et plein d'autres outils/packages..
communément utilisés sous #Linux
( on est pas perdu.es )
Dans {ce tuto} il manque un détail si on utilise une clef RSA depuis un dossier non par défaut :
https://ralphjsmit.com/git-custom-ssh-key
( une fois la clef RSA publique générée depuis #Android il faut la transmettre à votre serveur #git . Moi je passe par /GitLab/ plutôt que /GitHub/ )
( on peut l'ajouter en passant directement par la page web d'administration utilisateur.ice )
Eduroam est un réseau hotspot assez rependu dans les universités...
Il clame une interopérabilité :
"où que tu.vous alliez vous pouvez vous connecter !"
Sauf que ca bug souvent...
DOC illisible
Par exemple, depuis Paris 8
? C'est moi ou tous les liens d'aide sur cette page sont morts
=> https://numerique.univ-paris8.fr/index.php?page=eduroam
Simple sur le papier
Normalement on se rend ici :
- https://cat.eduroam.org
( Click here to download... )
On trouve son univ,
( => Eduroam_Paris8_etud )
( ou installer sur Mac/PC )on vérifie qu'on a les bons ids...
on se connecte via le CAS
( P8 : https://cas.univ-paris8.fr/cas/login )
On ouvre l'installer...
on indique mail universitaire
on indique mot de passe lié
Linux / exemple
Pour vous donner une idée...
Sous #linux on a un script python en guise d'installeur...
Un prompt qui me demande mon nom/user + pwd
( AT () == @ )
eduroam-linux-UP8-Eduroam_Paris8_etud.py -u vbonnefille(AT)etud.univ-paris8.fr -p "Password"
and it's done !
Tutos pdf
Sur le même principe...
Voilà quelques tutos pour...
Se connecter depuis le wifi de ton.votre université
- eduroam Configuration Assistant Tool
https://cat.eduroam.org/ - Installation.pdf
https://eduroam.cnrs.fr/pdf/Installation.pdf - procedure_installation_cat_eduroam_new.pdf
https://etu.univ-lyon1.fr/medias/fichier/procedure-installation-cat-eduroam-new_1603971927115-pdf - Configure eduroam on Linux using CAT - IT - Teamwork at Constructor University
https://teamwork.constructor.university/display/ircit/Configure+eduroam+on+Linux+using+CAT
CopyQ : Clipboard Manager with Advanced Features
Tout est dit, allé, ciao !
. En faits, non.
. Je vais faire court...
: c'est mon outil préféré sur mon ordinateur
Il m'a suivi sur toutes les distros :
- mac
- pc windows
- pc linux Debian . Arch
: on l'installe où qu'on veut
( peut-être même sur une calculette )
C'est un presse papier : copier coller : tmtc
mais là ça sauvegarde tout : c'est une auto-archive..
hyper pratique pour #écrire et avoir une #sauvegarde
... j'y stock ces bouts (snipets
que j'utiliserai plus tard)
... ou même mes prises de notes / #documentation
... le tout fonctionne par onglets !
On peut ainsi copier autre chose puis encore autre chose
... sans crainte de perdre le morceau précédent
... qu'on va ainsi pouvoir placer au bon endroit
: c'est simple, en code ou écriture je ne sais plus faire sans !
( oui je vous vend ce tapis volant )
C'est surtout une boite à outils #app_tools
on peut y installer une multitude de fonctions
( qui vous facilitent... la vie (oui rien que ça) )
Ça va de la transformation de text :
-
txt -> Majuscule
-
txt -> QrCode
-
txt -> Brut
-
On peut ajouter ses #Regex ( ex/ remplacer les
espaces
par\
) -
faire plein de raccourcis
-
ajouter des étiquettes
-
prendre des captures écran...
( etc. vers l'infini )
Le dernier plugin/module, "Commande", installée :
Hex Color Item Format
- https://github.com/hluk/CopyQ/issues/1583
=#ef0303
--> aperçu en rouge (oui je fais du CSS)
Docker acces via SSH
Objectif :
Simplifier le développement en accédant aux fichiers de mon container #Docker via SSH
( on ouvre le container comme dans un gestionnaire de fichier )
STORY (motivation)
J'installe un nouveau #Shaarli
( autour d'un #corpus élargi ) ( qui sera privé )
Je voudrais suivre la branche Master du projet Shaarli
( {ici} j'ai bifurqué pour ajouter quelles fonctionnalités )
( {ici} j'ai ajouté un champ pour l'aperçu illustrant chaque {bulle} )
( l'image à gauche... car parfois Shaarli n'en trouve pas dans la page/lien )
Ajout de champ
Dans la nouvelle version je veux ajouter le même champ
... en suivant la documentation : edit_link_plugin
En faisant mes propres recherches...
je m'aperçois que le plugin Démo nous montre la voie :
- https://github.com/shaarli/Shaarli/tree/master/plugins/demo_plugin
( après, intégrer par moi-même un field.champ n'avait pas été compliqué )
( la Démo nous montre comment l'ajouter + enregistrer -pas comment l'intégrer )
Bug
Malheureusement, dans la nouvelle version de #shaarli il y a un bug...
- https://github.com/shaarli/Shaarli/issues/2000
- https://github.com/shaarli/Shaarli/issues/1808 )
qui fait que l'ajout de champ + récupération des données ne marche pas...
( ... c'est bien la peine que je mette en place un accès à mon #Docker #SSH en local )
Docker
Du coup je repars sur une version Docker
Et pour faire ça (mes modifs / ajouts)..
je vais vouloir interagir avec le contenu de container de façon fluide.
. La technique "normale" consiste à récupérer un fichier dans le Container
. L'éditer
. et le remettre...
. . cela me semble fastidieux...
Du coup, j'ai envie de tester avec #SSH !
Pour cela le container doit faire tourner SSH
( et ses ports doivent être ouverts vers l'Host )
( Host = hôte = machine.ordi dans lequel est installé Docker qui contient le container)
( Ordi = Host > Docker > Container(s) > OS > Apps.services, ex: Shaarli )
Version courte
( open host -> docker )
sudo docker exec -it -u root DOCKER_NAME sh
( dans docker )
sleep 1
echo "--- Install stuffs"
apk update; apk add openssh-server
apk add openrc openssh
# opt
apk add --no-cache nano
apk add --no-cache bash
echo
echo "--- Generate SSH Keys" && sleep 3
mkdir -p /root/.ssh
chmod 0700 /root/.ssh
ssh-keygen -A
echo
echo "--- allow ROOT Authentification" && sleep 3
echo " " >> /etc/ssh/sshd_config
echo " " >> /etc/ssh/sshd_config
echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config
echo "PermitEmptyPasswords yes" >> /etc/ssh/sshd_config
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
echo
sleep 1
echo "--- creat ROOT password"
passwd
echo "\n------- ALL CONFIGURED ==> reStart \n"
echo
echo "--- reSTART sshd, can be long" && sleep 3
rc-status
touch /run/openrc/softlevel
/etc/init.d/sshd restart
( ok, on exit du Docker_Container )
( on chope son IP, on s'y connecte en SSH )
echo "---- You can exit"
exit
echo "\n------- HOWTO CONNECT \n"
echo
echo "then get Container IP"
echo "D_NAME == Container Name"
echo "docker container inspect -f '{{ .NetworkSettings.Networks.shaarli_default.IPAddress }}' D_NAME"
echo
echo "---- Then connect"
ssh root@172.17.0.X -p 22
Marche à suivre (notes installation)
SOURCES
- https://dev.to/yakovlev_alexey/running-ssh-in-an-alpine-docker-container-3lop
- https://techoverflow.net/2021/05/17/how-to-enable-ssh-root-login-on-alpine-linux/
DOCKERFILE
( ex. instructions - shot version )
- https://gdevillele.github.io/engine/examples/running_ssh_service/
- https://stackoverflow.com/a/68302177
PORT forward
( Port SSH par défaut : 22 )
( Connexion Host -> Docker )
0.0.0.0:2222 22/tcp
! at dock creation
--publish 8800:80 --publish 2222:22
Go into Docker Container
( where to install ssh-serveur access )
( on pourra aussi créer un nouvel utilisateur non root )
docker exec -it -u root D_CONTAINER_NAME sh
INSTALL d'app/services via APK (Alpine)
apk update
apk add openssh-server
apk add openrc openssh
Optionnel
apk add nano
apk add bash
INIT CONFIG SSH
mkdir -p /root/.ssh
chmod 0700 /root/.sshssh-keygen -A
rc-status
touch /run/openrc/softlevel
/etc/init.d/sshd start
SET PWD (root)
passwd
passwd -u root # <- UNSET = null
Allow Host SSH->Container connexion
( default user is root )
( here we allow for root, not most secure )
( ... you can creat a new user if needed )
For Root user :
nano /etc/ssh/sshd_config
PermitRootLogin yes
authentification w/ pwd
PasswordAuthentication yes
PermitEmptyPasswords yes
... THEN on redémarre le service SSH
... pour qu'il fonctionne avec nos nouveaux paramètres
service sshd restart
CONNECTION
GET CONTEINER IP
( into docker > sh/bash )
ifconfig
( or outside, from host )
sudo docker container inspect shaarli_e2jk | grep -i IPAddress
( or )
docker container inspect -f '{{ .NetworkSettings.Networks.shaarli_default.IPAddress }}' D_NAME
FINALY : CONNECT
ssh root@172.21.0.2 -p 22
PASSWORD
AUTOreSTART - OPENRC
- https://docs.alpinelinux.org/user-handbook/0.1a/Working/openrc.html
- https://www.linuxtricks.fr/wiki/openrc-les-commandes-essentielles (FR)
- https://wiki.gentoo.org/wiki/OpenRC_to_systemd_Cheatsheet
- https://www.cyberciti.biz/faq/how-to-enable-and-start-services-on-alpine-linux/
ex
Status
service sshd status
Redémarrer
service sshd restart
-- auto-restart (on host restart)
( rc-update add <service> <runlevel> )
rc-update add sshd
( not working for me )
-> temp. solution
sudo docker restart D_NAME
sudo docker inspect D_NAME -f "{{json .NetworkSettings.Networks.bridge.IPAddress }}"
AUTRES PISTES
C to C
TOC
Update
Story
Janitor
scraper
WebGrep
Alt
Headless
OutilspourMD
Annoter
Linkscheckers
Tunnels
Archive
indexserveur
Textpocessing
via
Update
Dernière version ( #2024 )
https://liens.vincent-bonnefille.fr/?Jxnufg
( dncorpus )
j'ai mis au point un fichier #cli_bash
pour GRAV ( #grav_wordpress )
qui va chercher les liens dans les pages (sous-dossiers)
- EX/ A => B
puis chercher le fichier/la page en question (liée) ( B )
et indique dans la page ( B ) que ( A ) pointe vers elle - https://gitlab.com/bonnebulle/grav_dn/-/blob/main/user/recursiv_mod.sh?ref_type=heads
Story
Je reprends ma prise de notes avec #dendron / #Zettelkasten
J'en suis pas à mon premier essai {bulle}
article de référence sur cette méth. de prise de notesJe veux automatiser la mise en prod / publication
Je veux ajouter quelques fonctions "de base" qui font d'un (b)log un jardin...
... tel les /Backlinks/ (liens entre articles.notes connexes)
... ce que propose {cet article.lien.bulle}
--> https://sebastiandedeyne.com/adding-backlinks-to-a-github-wiki/
... avec le script /Janitor/Backlinks, or bi-directional links, are becoming table-stakes for productivity apps since they’ve been popularized by Roam. It’s a simple …
Janitor
-
https://github.com/andymatuschak/note-link-janitor
-> forks https://www.npmjs.com/search?q=note-link-janitor
-> FR : https://www.npmjs.com/package/@arthurperret/note-link-janitor-fr !
Quelques alternatives et autres outils...
pour se balader de liens en liens,
de sites en sites
...
scraper
Un scraper c'est une automatisation de taches programmables permettant de visiter et inte agir avec une page web, sa structure ou des données. On peut ainsi simuler un clic, copier du contenu tel des liens (d'images ou hypertextes), faire une capture écran, etc.
Plusieurs approches...
WebGrep
va chercher du texte à la façon de /grep/
on pourrait ainsi lister les liens
se balader de l'un à lautre...
- https://webgrep.readthedocs.io
- (=) https://github.com/dhondta/webgrep
- (=) https://pypi.org/project/webgrep-tool/
(=/=) des variants
- https://github.com/LLazarek/webgrep
wgrep.py
-u URLS, --urls URLS Regexp for urls to search. By default all urls are searched.
wg (an other)
Alt
Recursive by rounds -R
Spider
Headless
des navigateurs 'sans tête'
on intéragis sans afficher à l'écran la page
on a un accès textuel / via du code
( possible par terminal #cli_bash )
- https://github.com/lbarnkow/no_browser
- https://lib.rs/crates/surf
- https://lib.rs/crates/longboard
- https://github.com/http-rs/surf
Je suis aussi tombé sur des outils qui vont me servir dans la création des pages (et leurs interactions par backlinks...
Outils pour MD
toc
tag search <3
like dendron linked notes
Annoter / pdf
extraire annotations pdf -> md <3
Hypothesis direct dans vsc
Search in PDF
pdfgrep
rga
Links checkers
Vérifier la validité des liens
peut être utilile avec le scraper
chker
chker status
Tunnels
Rendre accessible un site en devellopement local
au reste du web en créant un tunel
tunnels
Archive
Sauvegarde, téléchargement de pages
archive / dwl pages
- https://github.com/bcmyers/urls2disk
- https://github.com/mattgathu/duma
- https://lib.rs/crates/shirodl
index_serveur
afichier le contenu d'un dossier
mise en place d'un micro-serveur
j'utilisais http-server
- https://lib.rs/crates/dufs
- https://github.com/http-server-rs/http-server
- https://github.com/svenstaro/miniserve
Text pocessing
-> https://lib.rs/text-processing
via
A lot of #Linux #ressources ! (cadeau !) -- in english
Guides / Articles / lists #alternativeto
Learn up-to-date, idiomatic C++ with code examples, concise explanations, cheat sheets and infographics. -- Lerne aktuelles, idiomatisches C++ mit Code-Beispielen, knappen Erklärungen und Infografiken. -- 学现代的C++
via https://hackingcpp.com/dev/command_line_tools.html
... I will try :
- nschloe/deadlink: Checks and fixes URLs in code and documentation.
https://github.com/nschloe/deadlink - sharkdp/pastel: A command-line tool to generate, analyze, convert and manipulate colors
https://github.com/sharkdp/pastel - sharkdp/bat: A cat(1) clone with wings.
https://github.com/sharkdp/bat - Broot
https://dystroy.org/broot/ - BurntSushi/ripgrep: ripgrep recursively searches directories for a regex pattern while respecting your gitignore
https://github.com/BurntSushi/ripgrep
An extensive and up-to-date collection of beautifully formatted man pages.
Man : Manuel
( les instructions affichées pour aider à utiliser un log.app.cmd )
Voir aussi
Liste d'antisèches #cheatsheet ( dont Commande not found)
Apprendre à utiliser un terminal
( via une petite histoire relationelle )
/Wireguard/ permet de créer très facilement des tunnels VPN !
Permet à des "clients" de se connecter via un ordi distant : "host/serveur"
... et ainsi, le client utilise une nouvelle adresse IP de sortie : de changer d'identité
... dit à l'envers : le serveur.host sert de point de sortie à une connexion distante
Pour un #web_master ça sert aussi à accéder à un environnement local !
/Wireguard/ est dit plus souple et rapide que /OpenVPN/
ce #proto est utilisé par /Mozilla VPN/
/Wireguard/, basé comme #i2p /ou/ #WhatsApp sur :
Explications / ressources
Image (illu. {cette bulle})
- https://pimylifeup.com/raspberry-pi-wireguard/
( #tuto d'installation auto. sur #raspberrypi )
Une petite vidéo (récente en #français) pour le détail :
- https://invidious.fdn.fr/watch?v=K3ZClFTVVOU < 3 #@PafLeGeek
WireGuard est donc la nouvelle coqueluche des enthousiastes du VPN. Ce protocole tout récent a pris le monde du VPN par surprise. On relève notamment un développement éclair, des performances surprenantes, sans oublier son intégration au très select Kernel Linux. Avec autant d'arguments en sa faveur, il a vite trouvé preneur chez de nombreux éditeurs de VPN qui n'ont pas manqué d'intégrer le protocole dans leurs services.
MAJ
J'ai fini par utiliser un Web UI :
https://wg.bonnebulle.xyz
Très utile pour générer des cléfs / profiles / qrcode pour mes "clients"/ami.es
-> https://github.com/WeeJeWel/wg-easy
Cela permet de les échanger sans échanger les .conf via /WormHole/ ou autre...
/WormHole/ = <3 = https://liens.vincent-bonnefille.fr/?27Q_IQ
MAJ 2
#todo : split-tunnel & kill-switch
: faire passer certaines applications via WG !
- https://github.com/dadevel/wg-netns
- https://github.com/chrisbouchard/namespaced-wireguard-vpn
- https://volatilesystems.org/wireguard-in-a-separate-linux-network-namespace.html
( namespaces )
MAJ 3 #todo
Utiliser WG avec /Deluge/, web-client #bittorent_p2p ;)
- https://yarmo.eu/blog/wireguard-docker/
- https://shkspr.mobi/blog/2023/03/a-quick-guide-to-getting-mozilla-vpn-working-on-a-headless-linux-server/
--> TUNNELING some apps - https://github.com/jamesmcm/vopono/
Recherches, liens préalables
Doc.mans / Tools
Aur man (dyndns possible)
(full + update endpoint serverside)
LAN access
- https://unix.stackexchange.com/a/639011
- https://www.mickaelwalter.fr/extend-your-lan-with-wireguard/
- https://emersonveenstra.net/blog/access-local-network-with-wireguard/
- https://www.laroberto.com/remote-lan-access-with-wireguard/
- https://davidshomelab.com/access-your-home-network-from-anywhere-with-wireguard-vpn/
Allowed IP and exculde rang calculator
(and detailled explaination)
Très complet
Tools
- https://github.com/WeeJeWel/wg-easy
- https://github.com/complexorganizations/wireguard-manager
https://github.com/EmbarkStudios/wg-ui
Monitoring
Update EndPoint
! à utiliser côté serveur
( perso je remplace l'IP manuellement )
( dommage que WG ne vérifie pas tout seul si le dyn.host.xyz a changé d'IP )
Bash Auto create clients ( try fails /etc/wireguard/autogen )
alt bundle
Un article de #@noted.lol https://noted.lol/self-hosted-roundup-34/
fait récemment le tour des #alternativeto :
/borg/ (souvent cité sur des sites.forums.blogs) me parait une bonne piste
: https://www.borgbackup.org/?ref=noted
Duplicati
Free backup software to store backups online with strong encryption. Works with FTP, SSH, WebDAV, OneDrive, Amazon S3, Google Drive and many others.
Faire des sauvegardes est mère de toutes les vertus !
Hacked ? Restore from last week Backup !
Est plutôt pensé pour de la sauvegarde de HDD en local, on peut faire monter le contenu d'un serveur (FTP) en local... et en copier le contenu.
installation ( docker )
MAIS ne prend en charge que les dossiers LOCAUX (pas FTP/SFTP/SSH)
(une honte !) Du coup, il faut monter son serveur distant en local(host)
...
DIRECT try...
FTP ( ncftp )
- https://www.filestash.app/ovh-ftp.html (*ndbp)
- https://nguoiquynhon.blogspot.com/2009/08/how-to-backup-to-ftp-with-ncftp.html
Monter le contenu d'un serveur ( curlftpfs + Fuse )
--> /!\ Buggy/Laggy #error_échec <--
Final use ( service.systemd : root ready )
-
https://github.com/systemd/systemd/issues/1053#issuecomment-921456374
-
https://linuxconfig.org/mount-remote-ftp-directory-host-locally-into-linux-filesystem ( détailed )
Using Curl profiles
Rclone
( ma solution de cœur, avec un GUI/WebGUI )
( ... but, it's not working with my hoster, cant figure out why )
( mon IP était... blacklistée ! trop de requêtes avec curlftpfs )
fonctionne avec moult protocoles / plateformes !
Après configuration ( rclone config )
Lister
rclone lsd conf_name:
rclone lsd conf_name:Path/to/folder
Sync ( du serveur -> localhost ) :
TESTS
rclone sync --interactive conf_name:Path/folder /local/folder/
rclone sync conf_name:Path/folder /local/folder/ --dry-run --verbose
GO
rclone sync conf_name:Path/folder /local/folder/ --verbose
*) /Filestash/ est pas mal pour se connecter depuis le web à un serveur !
( bon remplaçant de web2ftp ) --- avec une offre gratuite en self_host !
Complémentaire d'un /Filebrowser/
qui, lui, affiche vos dossiers locaux dans votre Navigateur !
( avec une authentification "normale" : non s.FTP )
--> Supprimer/déplacer/renommer (bien sûr)
--> Possibilité de liens de partage (mdp/non)
--> Upload (même gros fichiers)
Tuto source :
.filebrowser.json
{
"port": 80,
"baseURL": "",
"address": "",
"log": "stdout",
"database": "/database.db",
"root": "/srv"
}
Ma commande finale ( pour un user www-data )
docker run --name filebrowser -d \
-v /mon_dossier_racine/Fichiers/:/srv \
-v /mon_dossier_config/filebrowser.db:/database.db \
-v /mon_dossier_config/.filebrowser.json:/.filebrowser.json \
--user $(id -u www-data):$(id -g www-data) \
--restart=always \
-p PORTDISPO:80 \
filebrowser/filebrowser
https://hub.docker.com/r/filebrowser/filebrowser
https://github.com/filebrowser/filebrowser
" A collection of introductory technology tutorials covering Linux, Web development, general problem solving and graphic design. "
J'ai un dongle USB <-> Ethernet
https://plugable.com/products/usb3-e1000
Quand on débranche/re.branche il n'est pas reconnu...
Comment faire pour que linux le reconnecte (sans redémarrer) ??
Après installation (Make) de https://github.com/jerome-pouiller/ioctl
Automating the reset {cf. lien_bulle} is working !!!!
( reconnu dès que re.branché )
....
Sinon on peut faire :
- On récupère le DBUS de l'adaptateur ( AX88179 )
- On le reconnecte
- On récupère le DBUS de l'adaptateur ( AX88179 )
À la main
lsusb | grep AX88179
# ==> GET ... 0XX ... 0YY
Pseudo-automatisation :
J'utilise une fonction "regex1" trouvée sur internet
https://stackoverflow.com/a/14229597
pour récupérer le...
AX88179_BUS et AX88179_DEV : 0XX ... 0YY
function regex1 { gawk 'match($0,/'$1'/, ary) {print ary['${2:-'1'}']}'; }
#!/bin/bash
AX88179_BUS=$(lsusb | grep AX88179 | gawk 'match($0,/Bus (0(.*))\s/, ary) {print ary['${2:-'1'}']}' | cut -c -3)
AX88179_DEV=$(lsusb | grep AX88179 | gawk 'match($0,/Device (0(.*))\s/, ary) {print ary['${2:-'1'}']}' | cut -c -3)
# NEED Admin
pkexec $(python3 /usr/bin/ioctl /dev/bus/usb/$AX88179_BUS/$AX88179_DEV)
- On le reconnecte
Exécution Python
sudo python3 /usr/bin/ioctl.py /dev/bus/usb/$AX88179_BUS/$AX88179_DEV
Script Python
\#!/usr/bin/python3
## SOURCE :: https://scarff.id.au/blog/2021/resetting-usb-ethernet-linux/
print("\n\nFIRST DO :: \nlsusb | grep AX88179")
print("==> GET ... 0XX ... 0YY")
print("\nEXEC :: \nsudo python3 ioctl.py /dev/bus/usb/0XX/0YY\n\n")
##
# in ioctl.py
import fcntl, sys
# defined in linux/usbdevice_fs.h
USBDEVFS_RESET = 21780
with open(sys.argv[1], "wb") as fd:
fcntl.ioctl(fd, USBDEVFS_RESET, 0)
" Display and control your Android device. Contribute to Genymobile "
Contrôler son téléphone #Android depuis son ordinateur ! Un must-have !
Bonus : j'ai créé ce petit script de connexion en Wifi (Bash) : gist
Wiki : https://en.wikipedia.org/wiki/Scrcpy
Genymotion https://www.genymotion.com
est derrière un outil de virtualisation #VM
Blog ressource en #français : https://blog.rom1v.com
Une VM (/quickemu/) MacOS avec #Docker
https://github.com/sickcodes/Docker-OSX
+ astuces add memory
-e RAM=8
source
+ ....
https://github.com/sickcodes/osx-optimizer
Tutos
-> Howto
https://github.com/sickcodes/Docker-OSX#additional-boot-instructions-for-when-you-are-creating-your-container
-> Tuto
https://dev.to/gombosg/running-macos-inside-linux-with-docker-osx-4e1i
+ Xcode + iOS simulator + SSH
https://dev.to/ianito/how-to-emulate-ios-on-linux-with-docker-4gj3
Android VM w/ /Quickemu/
. . .
Explications
Docker ≠ VM
. . . oui on peut installer un système dans un Docker...
. . . avec /Qemu/ .... qui virtualise le système OSx (VM)
. . . le Container va ici pré-configurer l'installation de /Qemu/
. . . et télécharger l'img du système
Alors c'est quoi la différence entre VM et Docker ?
VM = Virtual Machine
Chemin ( Linux /VS/ Docker Containers )
Á l'écriture de {cette} bulle je me mélangeais un peu les pinceaux,
je commençais tout juste à basculer vers #Docker
Au sein d'un même système Linux, sur ma Raspberrypi..
je comprends assez bien..
les interactions entre logiciels installés pêle-mêle
tous inter-dépendants / de vulnérabilités (allongeant la chaîne de risques).
ex/ de /Faker/ :
https://liens.vincent-bonnefille.fr/?-YFRMg
Les app installées pour qu'un site web fonctionne communiquent par des ports avec le reste du monde, le web !
Elles sont chargées simultanément, ce qui peut devenir compliqué à gérer.
Avec Docker, chaque application/projet démarre dans son propre système (linux) avec les variables et dépendances nécessaires à son déploiement/installation.., sans nécessairement avoir de relation avec les autres application/projet.
: les app sont séparées dans leur propre environnement
: des "Containers"
C'est + propre, + facile à mettre à jour...
Courbe d'apprentissage
Éviter #Docker dans ma phase d'apprentissage m'a permis de comprendre tout un spectre de problèmes inhérents à la mise en production (ex : port forward/ NAT.PAT ; d.dns ; loging et autres maintenances).
: Docker rend industrialisable un déploiement que j'ai eu le temps et plaisir de faire de façon artisanale !
Limites
Le fait que les Containers soient isolés rend parfois difficile la modification de leurs contenus.
On peut utiliser #SSH .. j'ai essayé de faire comme ca :
Si on veut bidouiller à l'intérieur, on se trouve embêter à chaque pull de mise à jour (de la part du développeur du logiciel). On est aussi limité avec des outils de base : comme on l'a dit, ces systèmes viennent souvent avec le minimum vital.
Monter des volumes -- comme si c'était un serveur distant -- pour travailler ses données avec les outils locaux -- habituels dans mon quotidien -- est compliqué.
- https://github.com/plesk/docker-fs est instable (Fuse se déconnecte)
- https://blog.px.dev/container-filesystems/
- https://martinheinz.dev/blog/44
... en recherche d'alternatives / solutions
... voir d'un alt. à Docker :
https://medium.com/nttlabs/containerd-and-lima-39e0b64d2a59
VM
Un container Ce n'est pas lourd comme une VM.
Petite video bien faite a ce sujet.
https://youtu.be/J0NuOlA2xDc
Une VM vient simuler l'intégralité des composants d'un ordinateur, une carte vidéo, une carte mère, son, un processeur, etc
L'application qui crée et lance la VM va démarrer un ordinateur dans votre ordinateur !
On prenait /Quemu/ et MacOSX en ex/ au début de cette {bulle}
{ Bulle } d'origine :::
Non VM
- https://alternativeto.net/software/distrobox/
- https://alternativeto.net/software/lxc-linux-containers/
( l'intérêt ici c'est d'avoir les avantages d'autres distributions sans l'imulation de tout un système -- mémoire / GPU / CPU == plus léger, intégrable, #linux first )
... me fait plus penser à de la virtualisation ou à https://www.dosbox.com !
... mais sans doute rien à voir ( je mets juste ici des pistes )
/VS/ VM
- https://github.com/quickemu-project/quickemu (dont MacOSX )
- https://www.osboxes.org/virtualbox-images/
- https://www.linuxvmimages.com (non testé)
- https://bitnami.com/stacks/virtual-machine
( dont env. MYSQL / LAMP + #Docker )
Remarque
De nombreux systèmes proposent des VM prêtes au téléchargement
Docker #GUI #linux
Pour une gestion #GUI j'ai test https://www.portainer.io
puis https://podman.io
( et https://podman-desktop.io )
. Il y aussi https://cockpit-project.org
. ( gestion #linux dans un Web #GUI .. )
. . ( intégration de /Podman/, #VM ... )
. Au sujet de #Docker / Podman
( / Kubernetes ), un article sur...
https://www.lemondeinformatique.fr
via : https://www.parinux.org
"Chaque premier samedi de chaque mois, de 14h00 à 18h00, des bénévoles passionné·es de logiciels libres se retrouvent au Carrefour Numérique² de la Cité des Sciences, pour une install-party de distributions GNU/Linux, ainsi que des ateliers et des conférences."
. . .
Installations de distributions GNU/Linux et Android de 14h à 18h
Ateliers de 14h à 18h
Conférences (occasionnellement) de 14h30 à 18h.
/Wetty/ sert à accéder à un terminal de commandes ( #cli_bash ) via le protocole #SSH ...
mais en passant par le wwweb (via n'importe quel #navigateur ) !
Normalement on se connect avec le protocole #SSH via un terminal (application)
ssh user@adresse_du_serveur_ou_son_IP
<
Sur un wifi public (ou protégé) certain #admin empêchent l'accès au port :22
(SSH)
Aussi, en passant par le web ( port :80
) on peut contourner cette limitation...
Pratique quand on veut accéder sans délais à son serveur distant !
- https://computingforgeeks.com/run-linux-terminal-on-web-browser-using-wetty/
Full #tuto - https://distroid.net/linux-terminal-using-wetty/
. . .
En remplaçant de /Shell in a box/ ( discontinued )
/Bitwarden/ un gestionnaire de mots de passes que j'utilise depuis longtemps...
suite au rachat de /LastPass/ . BW est Multi-platforme j'utilise aussi leur #cli_bash ici
L'occasion pour moi d'une petite prise en main de #Docker avec l'interface #GUI :
Portainer ( #GUI : +facile à configurer qu'en ligne de #cli_bash ... {tuto intégré}
( Depuis, j'ai aussi découvert https://podman-desktop.io )