lauhub 1 неделя назад
Родитель
Сommit
8e376831d0
100 измененных файлов с 6939 добавлено и 29 удалено
  1. 48 0
      applications/automultiplechoice.md
  2. 1 0
      applications/certbot-letsencrypt.md
  3. 9 0
      applications/faceswap.md
  4. 26 0
      applications/hister-search-engine-firefox-bookmarks.md
  5. 6 0
      applications/iag/analyse-video.md
  6. 96 0
      applications/icecast2.md
  7. BIN
      applications/images/install-vmware-ws-1.png
  8. BIN
      applications/images/install-vmware-ws-2.png
  9. BIN
      applications/images/install-vmware-ws-3.png
  10. BIN
      applications/images/install-vmware-ws-4.png
  11. BIN
      applications/images/vmware-install-1.png
  12. BIN
      applications/images/vmware-install-2.png
  13. BIN
      applications/images/vmware-install-3.png
  14. BIN
      applications/images/vmware-install-4.png
  15. BIN
      applications/images/vmware-install-5.png
  16. 6 0
      applications/keepass.md
  17. 22 0
      applications/keyboard-clavier.md
  18. 93 0
      applications/kodi-libreelec.md
  19. 50 0
      applications/llama.cpp.md
  20. 18 0
      applications/nextcloud.md
  21. 0 0
      applications/onlyoffice.md
  22. 31 0
      applications/rsync.md
  23. 81 0
      applications/thunderbird.md
  24. 24 0
      applications/time-machine.md
  25. 56 0
      applications/vmware-workstation-debian.md
  26. 9 0
      applications/vscodium-visualstudio-code.md
  27. 105 0
      applications/wallabag.md
  28. 951 0
      documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem.html
  29. BIN
      documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/140338da61f6172949f863b39e61afae.png
  30. BIN
      documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/140338da61f6172949f863b39e61afae_002.png
  31. BIN
      documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/88x31.png
  32. BIN
      documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/898adf8a77d33a03aaa1350d9668f19a.png
  33. BIN
      documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/898adf8a77d33a03aaa1350d9668f19a_002.png
  34. BIN
      documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/998587771c95a1af44d18d1321cce77d.png
  35. BIN
      documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/998587771c95a1af44d18d1321cce77d_002.png
  36. BIN
      documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/ac5cf9b8c56666785aec4ee01f96f589.png
  37. BIN
      documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/ac5cf9b8c56666785aec4ee01f96f589_002.png
  38. BIN
      documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/bc28c8d99fa1a0a955e9876454a99862.png
  39. BIN
      documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/bc28c8d99fa1a0a955e9876454a99862_002.png
  40. BIN
      documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/c8a313fafe2aa9765a40bfcb3bab04e3.png
  41. BIN
      documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/c8a313fafe2aa9765a40bfcb3bab04e3_002.png
  42. BIN
      documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/ccfd95793067b52bcc07d3e71d3cf1e0.png
  43. BIN
      documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/ccfd95793067b52bcc07d3e71d3cf1e0_002.png
  44. 14 0
      documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/consolas.css
  45. 31 0
      documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/custom-fonts.css
  46. BIN
      documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/eae0d0475f9879bd658914161afc2087.png
  47. BIN
      documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/eae0d0475f9879bd658914161afc2087_002.png
  48. 263 0
      documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/genericons.css
  49. 13 0
      documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/imagesloaded.min.js
  50. 2 0
      documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/jquery-migrate.min.js
  51. 593 0
      documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/jquery.lightbox.js
  52. 3 0
      documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/jquery.min.js
  53. 10 0
      documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/jquery.touchwipe.min.js
  54. 1 0
      documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/lightbox.min.css
  55. 17 0
      documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/masonry-init.js
  56. 10 0
      documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/masonry.min.js
  57. 191 0
      documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/navigation.js
  58. 137 0
      documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/overrides.css
  59. 6 0
      documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/panzoom.min.js
  60. 2 0
      documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/purify.min.js
  61. 78 0
      documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/seb.js
  62. 84 0
      documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/style.css
  63. 11 0
      documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/style.min.css
  64. 2058 0
      documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/style_002.css
  65. 167 0
      documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/sublime-text.css
  66. 244 0
      documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/themezee-related-posts.css
  67. 1 0
      documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/urvanov_syntax_highlighter.min.css
  68. 1 0
      documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/urvanov_syntax_highlighter.min.js
  69. BIN
      documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/utf8_madness-657x300.png
  70. 26 0
      gnu-linux/awk.md
  71. 47 0
      gnu-linux/bash.md
  72. 21 0
      gnu-linux/debian.md
  73. 3 0
      gnu-linux/debian/debian-mises-a-jour-apt.md
  74. 40 0
      gnu-linux/debian/signatures-apt.md
  75. 11 0
      gnu-linux/history.md
  76. 56 0
      gnu-linux/partitionnement/cryptsetup.md
  77. 142 0
      gnu-linux/partitionnement/mdadm-raid.md
  78. 8 1
      gnu-linux/partitionnement/raid5-luks-lvm-configuration.md
  79. 0 0
      gnu-linux/quota.md
  80. 103 0
      gnu-linux/serveurs/debian-miroir-apt.md
  81. 80 9
      gnu-linux/serveurs/installation/post-installation-serveur.md
  82. 20 2
      gnu-linux/serveurs/installation/reverse-proxy.md
  83. 4 16
      gnu-linux/serveurs/installation/serveur-deux-disques.md
  84. 68 0
      gnu-linux/serveurs/nas-rockpi-penta.md
  85. 96 0
      gnu-linux/serveurs/nextcloud.md
  86. 47 0
      gnu-linux/serveurs/proxmox/cluster-modification-ip.md
  87. 1 0
      gnu-linux/serveurs/proxmox/infrastructure-ovh.md
  88. 76 1
      gnu-linux/serveurs/securisation/bastion.md
  89. 18 0
      gnu-linux/serveurs/securisation/proxy-jump.md
  90. 67 0
      gnu-linux/serveurs/securisation/sauvegarde-yunohost.md
  91. 89 0
      gnu-linux/user-monitoring.md
  92. 38 0
      installation/ffmpeg.md
  93. 14 0
      installation/firefox/extensions-firefox.md
  94. 167 0
      installation/homebrew+alternatives.md
  95. 48 0
      installation/migration-python-venv-list.txt
  96. 33 0
      installation/migration-python-venv.md
  97. 5 0
      installation/pycharm-projects.md
  98. 31 0
      installation/venv-python.md
  99. 11 0
      organisation-technique/maison.md
  100. 0 0
      organisation-technique/services.md

+ 48 - 0
applications/automultiplechoice.md

@@ -0,0 +1,48 @@
+% Auto-Multiple-Choice AMC
+
+## Emplacement du fichier .sty
+
+```bash
+$ locate automultiplechoice.sty
+$ ls -l /usr/local/texlive/texmf-local/tex/latex/automultiplechoice.sty
+/usr/local/texlive/texmf-local/tex/latex/automultiplechoice.sty -> /usr/local/opt/auto-multiple-choice/share/texmf-local/tex/latex/AMC/automultiplechoice.sty
+```
+
+NOT FOUND
+
+On va recopier celui de Debian
+
+```
+sudo rm /usr/local/texlive/texmf-local/tex/latex//automultiplechoice.sty
+
+sudo ln -s /Users/lauhub/Documents/04_travail/AV-enseignement/Evaluations/MC-Projects/_automultiplechoice_lib/automultiplechoice.sty /usr/local/texlive/texmf-local/tex/latex//automultiplechoice.sty
+```
+
+
+## Exemple de code pour des combinaisons de bonnes réponses multiples et disjointes
+
+```tex
+    \element{prog25}{%
+            \begin{questionmult}{011-prog25-1}%
+            %\baramechoixmax%
+            \bareme{default.A1=0,default.A2=0,default.A3=0,default.A4=0,default.A5=0,default.A6=0,%
+            formula=(A1 == A2 || A6 == 1 ? 2 : 0)}    
+            L'exécution de \texttt{prog25} produit \texttt{sortie25}.
+
+Quelle(s) ligne(s) modifier pour obtenir \texttt{sortie25-1} ?
+
+            
+          \begin{reponsemulticol}{3}\baremeuniqdansrep
+              \bonne{(lg.4) \texttt{...\ ;\ i\ \textless{}=\ n\ ;\ ...}}\bareme{set.A1=1}
+              \bonne{(lg.4) \texttt{i\ =\ 1\ ;\ ...\ ;\ ...}}\bareme{set.A2=1}
+              \mauvachoix{(lg.6) \texttt{j\ \textless{}\ n\ +\ 1\ -\ i}}\bareme{set.A3=1}
+              \mauvachoix{(lg.10) \texttt{j\ \textless{}\ n\ -\ 1}}\bareme{set.A4=1}
+              \mauvachoix{(lg.10) \texttt{j\ \textless{}\ n\ -\ i}}\bareme{set.A5=1}
+              \bonne{(lg.6) \texttt{j\ \textless{}\ n\ -\ 1\ -\ i}}\bareme{set.A6=1}
+          \end{reponsemulticol}
+            \end{questionmult}
+        }
+
+
+```
+

+ 1 - 0
applications/certbot-letsencrypt.md

@@ -1,5 +1,6 @@
 % Certbot Letsencrypt
 
+Sur `ecazreverseproxy` 
 
 # Ajout d'un certificat
 

+ 9 - 0
applications/faceswap.md

@@ -0,0 +1,9 @@
+% FaceSwap
+
+
+```bash
+
+conda create --name faceswap  python=3.10 pip=26.0
+conda activate faceswap
+pip install -r ./requirements/requirements_apple-silicon.txt
+```

+ 26 - 0
applications/hister-search-engine-firefox-bookmarks.md

@@ -0,0 +1,26 @@
+% Search Engine for Firefox Bookmarks
+
+# Moteur de recherche pour mes signets Firefox
+
+[hister](korben.info/hister-moteur-recherche-historique-web.html) permet de créer un index de ses bookmarks
+
+- [Hister](https://hister.org/docs/installing)
+- [Releases · asciimoo/hister · GitHub](https://github.com/asciimoo/hister/releases)
+
+## Installation
+
+1. Téléchargement vers `/usr/local/bin`
+2. Vérification de virus avec ClamXAV
+3. Suppression de l'attribut de quarantaine pour pouvoir lancer le programme : `xattr -dr com.apple.quarantine /usr/local/bin/hister_0.11.0_darwin_arm64`
+4. Création d'un lien symbolique + rendre exécutable
+
+```
+cd /usr/local/bin
+sudo ln -s hister_0.11.0_darwin_arm64 hister
+chmod +x hister_0.11.0_darwin_arm64
+```
+
+5. Exécution du serveur : `hister listen`
+
+
+

+ 6 - 0
applications/iag/analyse-video.md

@@ -0,0 +1,6 @@
+
+
+(mlx-vlm) lauhub@MB-P--L  ~
+$ python -m mlx_vlm video_generate --model mlx-community/Qwen2.5-VL-7B-Instruct-4bit --max-tokens 2000 --prompt "$(cat /Users/lauhub/Documents/04_travail/AV-enseignement/Evaluations/Generation-Evaluations/prompt.txt)" --video /Users/lauhub/Documents/04_travail/AV-enseignement/Evaluations/Videos-evalmiroir-IPI/fichiers/louna.cazaubon/eval.mp4 --max-pixels 224 224 --fps 1.0
+
+

+ 96 - 0
applications/icecast2.md

@@ -0,0 +1,96 @@
+# Serveur Radio icecast2
+
+# Installation sur Debian
+
+
+IP: 192.168.0.17
+
+```bash
+sudo apt install icecast2 libfdk-aac2
+```
+
+-  libfdk-aac2 pour streamer avec les meta-données
+
+Configurer les mots de passe lors de l'installation:
+
+- source
+- adminitration
+- relay
+
+Les noter: ils serviront plus tard
+
+## Listen-socket
+
+Dans `/etc/icecast2/icecast.xml` j'ajoute la section suivante:
+
+:::warning
+
+Voir si ça marche sans
+
+:::
+
+
+```
+    <listen-socket>
+        <port>8080</port>
+        <bind-address>192.168.0.17</bind-address>
+    </listen-socket>
+```
+
+## Configuration mixxx
+
+Mixxx > Préférences > Diffusion en direct
+
+Créer (ou modifier) un serveur:
+
+- Type: Icecast2
+- hôte: http://192.168.0.17
+- Identifiant: source
+- Montage: mixxx
+- Port : 8000
+- Mot de passe: le mot de passe de source
+
+Appliquer et activer
+
+Sortir des préférences et activer `On Air` en haut à droite
+
+## Radios disponibles
+
+Aller sur [http://192.168.0.17:8000/admin/listmounts.xsl](http://192.168.0.17:8000/admin/listmounts.xsl)
+
+
+## Écoute
+
+
+### Navigateur
+
+Aller sur un navigateur Web: `http://192.168.0.17:8000/mixxx`
+
+[http://192.168.0.17:8000/mixxx](http://192.168.0.17:8000/mixxx)
+
+### LibreElec
+
+Adapter le fichier `/storage/.kodi/userdata/playlists/music/mixxx.xspf` et l'ouvrir depuis l'interface graphique:
+
+```xml
+<?xml version="1.0" encoding="UTF-8"?>
+<playlist xmlns="http://xspf.org/ns/0/" version="1">
+  <title/>
+  <creator/>
+  <trackList>
+    <track>
+      <location>http://192.168.0.17:8000/mixxx</location>
+      <title/>
+      <annotation>Stream Title: Mixxx Laurent
+Stream Description: C est pour les tests
+Content Type:application/ogg
+Bitrate: 128
+Current Listeners: 0
+Peak Listeners: 0
+Stream Genre: Live Mix</annotation>
+      <info>https://www.mixxx.org</info>
+    </track>
+  </trackList>
+</playlist>
+```
+

BIN
applications/images/install-vmware-ws-1.png


BIN
applications/images/install-vmware-ws-2.png


BIN
applications/images/install-vmware-ws-3.png


BIN
applications/images/install-vmware-ws-4.png


BIN
applications/images/vmware-install-1.png


BIN
applications/images/vmware-install-2.png


BIN
applications/images/vmware-install-3.png


BIN
applications/images/vmware-install-4.png


BIN
applications/images/vmware-install-5.png


+ 6 - 0
applications/keepass.md

@@ -0,0 +1,6 @@
+% Keepass et KeepassXC
+
+
+# Liste de mots français
+
+Chemin : `~/Library/Application Support/KeePassXC/wordlists/francais.txt`

+ 22 - 0
applications/keyboard-clavier.md

@@ -0,0 +1,22 @@
+% Clavier / Keyboard
+
+# Analyse de raccourcis signaux signal clavier avec cat
+
+```bash
+cat -v
+```
+
+Extrait man:
+
+```
+     -v      Display non-printing characters so they are visible.  Control
+             characters print as ‘^X’ for control-X; the delete character
+             (octal 0177) prints as ‘^?’.  Non-ASCII characters (with the high
+             bit set) are printed as ‘M-’ (for meta) followed by the character
+             for the low 7 bits.
+```
+
+
+# Nom de touches
+
+Backspace = back space = rubout = delete

+ 93 - 0
applications/kodi-libreelec.md

@@ -0,0 +1,93 @@
+% Kodi LibreElec
+
+# Extension Youtube
+
+## COnfigureation
+
+### Clef d'API Google
+
+
+Éditer le fichier `/storage/.kodi/userdata/addon_data/plugin.video.youtube/settings.xml`
+
+Sur https://console.cloud.google.com/ aller sur `API et services -> Identifiants`
+
+Créer ou utiliser une clé client OAuth
+
+Choisir :
+
+- `Type d'application` : `Périphérique d'entrée TV et limitée`
+- Nom: `LibreElec-20251020`
+
+
+Valider et recopier/conserver les informations fournies
+
+Récupérer les informations de cette page et dans le fichier `settings.xml` saisir:
+
+- `youtube.api.id` : la valeur de l'ID client
+- `youtube.api.key` : `lh-le-297410` (le nom de la clef)
+- `youtube.api.secret` : le code secret du client
+
+
+
+# Réglage volume audio son
+
+Installer l'extension `Multimedia Tools` (ou chercher `alsa` dans les extensions)
+
+```bash
+mount -o remount,rw /flash
+echo "dtparam=audio=on" >> /flash/config.txt
+
+```
+
+Voir [Config.txt | LibreELEC.wiki](https://wiki.libreelec.tv/configuration/config_txt)
+
+- [Add-on:Audio Profiles - Official Kodi Wiki](https://kodi.wiki/view/Add-on:Audio_Profiles)
+- [Tuning pulseaudio for RPi - Development - LibreELEC Forum](https://forum.libreelec.tv/thread/413-tuning-pulseaudio-for-rpi/)
+- [Audio in 2 outputs: hdmi AND headphones. Possible? - General Support - LibreELEC Forum](https://forum.libreelec.tv/thread/975-audio-in-2-outputs-hdmi-and-headphones-possible/?postID=69221#post69221)
+
+## GROSSES PISTES:
+
+À partir [de là](https://forum.libreelec.tv/thread/975-audio-in-2-outputs-hdmi-and-headphones-possible/?postID=69221#post69221), j'ai cherché...
+
+(Source: [ALSA audio configuration for simultaneous HDMI and analogue audio output - General Support - LibreELEC Forum](https://forum.libreelec.tv/thread/23542-alsa-audio-configuration-for-simultaneous-hdmi-and-analogue-audio-output/))
+
+### COnfiguration pulseaudio dans libreelec
+
+Première page à tester : [Tuning pulseaudio for RPi - Development - LibreELEC Forum](https://forum.libreelec.tv/thread/413-tuning-pulseaudio-for-rpi/)
+
+Sur [cette page](https://forum.libreelec.tv/thread/413-tuning-pulseaudio-for-rpi/):
+
+```
+pactl load-module module-udev-detect
+```
+
+### Lister les sorties
+
+
+```bash
+aplay --list-pcms
+```
+
+- [https://askubuntu.com/a/1412506/138954](https://askubuntu.com/a/1412506/138954)
+- [How to display your sound card details using the terminal on Ubuntu 22.04](https://net2.com/how-to-display-your-sound-card-details-using-the-terminal-on-ubuntu-22-04/)
+
+### Gérer les sorties
+
+-[https://unix.stackexchange.com/a/459725/33297](https://unix.stackexchange.com/a/459725/33297)
+- [pulseaudio - Route application&#39;s audio output to multiple playback devices - Unix & Linux Stack Exchange](https://unix.stackexchange.com/questions/458044/route-applications-audio-output-to-multiple-playback-devices)
+- [Changing audio output from terminal - Unix & Linux Stack Exchange](https://unix.stackexchange.com/questions/459240/changing-audio-output-from-terminal)
+
+### Commandes pulseaudio
+
+[How to Control Audio in Linux with `pactl` (with Examples)](https://commandmasters.com/commands/pactl-common/)
+
+
+
+- [arch linux - PulseAudio list-sinks missing ALSA Devices - Unix & Linux Stack Exchange](https://unix.stackexchange.com/questions/223147/pulseaudio-list-sinks-missing-alsa-devices)
+
+
+### LibreELec pour info
+
+[Pulseaudio | LibreELEC.wiki](https://wiki.libreelec.tv/configuration/pulseaudio)
+
+[Tuning pulseaudio for RPi - Development - LibreELEC Forum](https://forum.libreelec.tv/thread/413-tuning-pulseaudio-for-rpi/)

+ 50 - 0
applications/llama.cpp.md

@@ -0,0 +1,50 @@
+% Compilation llama.cpp Turboquant
+
+
+## Compilation
+
+```bash
+git clone git@github.com:TheTom/turboquant_plus.git
+cd llama-cpp-turboquant/
+git checkout feature/turboquant-kv-cache
+cmake -B build -DGGML_METAL=ON -DGGML_METAL_EMBED_LIBRARY=ON -DCMAKE_BUILD_TYPE=Release
+cmake --build build -j
+```
+
+## Lancement
+
+```bash
+cd ~/Documents/15_informatique/installation/llama-cpp-turboquant/
+build/bin/llama-server -m ~/Downloads/llm-models/Qwen3.5-27B.Q5_K_M.gguf --alias "Qwen35-27B" --jinja -ngl 99 -c 262144 -ctk turbo3 -ctv turbo3 -fa on -np 1 --metrics --host 0.0.0.0 --port 8082
+```
+
+
+## Navigateur
+
+ALler sur `http://127.0.0.1:8082/`
+
+
+
+## Ancienne manière
+
+```bash
+unset CC
+unset CXX
+unset CFLAGS
+unset CXXFLAGS
+
+cmake -B build \
+  -DCMAKE_C_COMPILER=clang \
+  -DCMAKE_CXX_COMPILER=clang++ \
+  -DCMAKE_C_COMPILER_LAUNCHER=ccache \
+  -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
+
+
+cmake --build build -j
+```
+
+
+## Voir aussi
+
+
+Documentation et autres informations importantes: [GitHub - TheTom/turboquant_plus · GitHub](https://github.com/TheTom/turboquant_plus)

+ 18 - 0
applications/nextcloud.md

@@ -0,0 +1,18 @@
+% NextCloud
+
+# Keepass
+
+Source: [How to sync using Nextcloud | KeePassium](https://support.keepassium.com/kb/sync-nextcloud/)
+
+*Find your server URL address. Its typical format is `https://cloud.SERVER.com/remote.php/dav/files/USERNAME`
+Follow the direct WebDAV connection setup guide*
+
+Puis suivre les instructions ici: [How to sync using WebDAV | KeePassium](https://support.keepassium.com/kb/sync-webdav/#direct)
+
+# Sync Obsidian
+
+Adresse de la forme:
+
+- `https://cloud.SERVER.com/remote.php/dav/files/USERNAME/dossier-notes`
+
+

+ 0 - 0
applications/onlyoffice.md


+ 31 - 0
applications/rsync.md

@@ -0,0 +1,31 @@
+% Rsync
+
+
+## Avec exclusions
+
+- `-n` : dry-run
+
+```bash
+$ cat transfert.txt 
+jdl330/**
+Documents/**
+Downloads/**
+Machines_virtuelles/**
+Videos/**
+backup-VM/**
+A_TRIER_LHSD32/**
+Images/**
+$ rsyncy -n --inplace -avm --exclude='*/._*' --exclude='*/.DS_Store' --include='*/' --include-from="transfert.txt" --exclude='*'  ./ nas5:/srv/toCaba3/backup-mbp15/
+```
+
+## Sous macOS pour envoyer vers Linux
+
+```bash
+rsync -av --iconv=UTF-8-MAC,UTF-8 /Volumes/Lite128/Images/ nas5:/srv/data/backups/nu.aezi.fr/yunohost.multimedia/share/Picture/lite128
+```
+
+## Vers exFAT
+
+```bash
+rsyncy -rltDm --inplace --exclude='*/._*' --exclude='*/.DS_Store' --include='*/' --include-from="transfert.txt" --exclude='*'  ./ nas5:/srv/toCaba3/backup-mbp15/ # Sync to exfat
+```

+ 81 - 0
applications/thunderbird.md

@@ -0,0 +1,81 @@
+% Thunderbird
+
+# ThunderAI
+
+## Références
+
+Gemini : [Aide de gemini](https://gemini.google.com/app/0f39927ce580efca)
+
+* [Using Ollama with Thunderbird ThunderAI plugin - Notes_Wiki](https://www.sbarjatiya.com/notes_wiki/index.php/Using_Ollama_with_Thunderbird_ThunderAI_plugin#google_vignette)
+* ["ThunderAI" Thunderbird Addon - Ollama CORS Information - Mic's](https://micz.it/thunderbird-addon-thunderai/ollama-cors-information/)
+* ["ThunderAI" Thunderbird Addon - Ollama CORS Information - Mic's](https://micz.it/thunderbird-addon-thunderai/ollama-cors-information/)
+* [Tutoriel "ThunderAI" - Créez votre premier prompt personnalisé - Mic's](https://micz.it/fr/thunderbird-addon-thunderai/tutorial/)
+
+## Configuration
+
+### Configuration de l'application
+
+```
+launchctl setenv OLLAMA_HOST "0.0.0.0"
+launchctl setenv OLLAMA_ORIGINS "moz-extension://*,http://127.0.0.1:*,http://localhost:*"
+```
+
+### Serveur Ollama
+
+```bash
+export OLLAMA_ORIGINS="moz-extension://*,http://127.0.0.1:*,http://localhost:*"
+export OLLAMA_HOST="0.0.0.0"
+ollama serve
+```
+
+
+
+### Tags
+
+
+```
+### ROLE
+Expert en gestion de projet. Analyse ce mail et réponds UNIQUEMENT en JSON.
+
+
+
+### OUTPUT FORMAT
+
+Génère une réponse uniquement au format JSON. La sortie doit être uniquement un tableau JSON de tags, sans commentaire ni texte supplémentaire. Voici un exemple du format JSON à utiliser :
+{
+"tags" : ["travail", "administratif", "promotion", "notification", "amis_ou_famille", "militantisme"]
+}
+
+
+### INSTRUCTIONS DE TRI
+
+Analyse l'e-mail suivant et détermine sa ou ses catégories, associe les à un tag. 
+
+1. TRAVAIL : Projets, collègues, clients, demandes de tâches professionnelles ou de formation, vérification ou signature de documents.
+2. ADMINISTRATIF : Factures, banques, impôts, santé.
+3. PROMOTION : Newsletters, offres commerciales (même légitimes).
+4. NOTIFICATION : Alertes système, réseaux sociaux, confirmations d'envoi.
+5. AMIS_OU_FAMILLE : amies, amis, personnes de ma famille ou proches, autres que professionnelles, fêtes, naissances, mariages, anniversaires de personnes, décès, maladie ou hospitalisation
+6. MILITANTISME : politique, environnement, écologie, pétitions, manifestations, France Insoumis ou autre organisation politique 
+
+
+Tu peux ajouter des tags supplémentaires non listés ici si nécessaire (ex: achats et commandes, nom de client)
+
+### EMAIL DATA
+
+Analyse le texte de l’e-mail suivant et génère un tableau JSON de tags résumant son contenu. Utilise des thèmes, des sujets clés et des descripteurs pertinents comme tags. Assure-toi que les tags soient concis et en lien direct avec le contenu de l’e-mail.
+
+Génère les tags en te basant sur le texte de l’e-mail et le contexte, en ignorant les informations inutiles ou les détails sans importance.
+
+
+Considérez les détails suivants pour le contexte :
+
+Expéditeur : "{%author%}"
+Destinataires : {%recipients%}
+Liste CC : {%cc_list%}
+Objet : "{%mail_subject%}"
+Corps : "{%mail_text_body%}"
+
+
+
+```

+ 24 - 0
applications/time-machine.md

@@ -0,0 +1,24 @@
+% Time machine
+
+# Mise en place de time machine editor
+
+
+# Réveil automatique pour les sauvegardes
+
+
+
+Ne fonctionne pas:
+
+```bash
+$ sudo pmset repeat wake MTWRF 8:59:00 wake MTWRF 11:59:00 wake MTWRFSU 14:59:00 wake MTWRFSU 17:59:00 wake MTWRFSU 20:59:00 wake MTWRFSU 23:59:00 wake MTWRFSU 2:29:00 
+$ pmset -g sched
+Repeating power events:
+  wake at 2:29AM every day
+Scheduled power events:
+ [0]  wake at 03/20/2026 05:53:19 by 'com.apple.alarm.user-invisible-com.apple.calaccessd.travelEngine.periodicRefreshTimer'
+ [1]  wake at 03/20/2026 09:13:20 by 'com.apple.alarm.user-invisible-com.apple.acmd.alarm'
+ [2]  wake at 03/20/2026 20:04:06 by 'com.apple.alarm.user-invisible-com.apple.acmd.alarm'
+ ```
+
+
+Écrire un script

+ 56 - 0
applications/vmware-workstation-debian.md

@@ -0,0 +1,56 @@
+% Installation de VMware Workstation sur Debian Trixie
+
+Version 25H2
+
+Debian 13
+
+```bash
+sudo apt install build-essential dkms pkexec
+```
+
+Récupérer la version des headers à installer: 
+
+```bash
+$ apt search linux-headers 2> /dev/null | grep linux-headers-$(uname -r) | cut -d/ -f1
+linux-headers-6.12.57+deb13-amd64
+```
+
+Puis installer la version correspondante:
+
+```bash
+sudo apt install linux-headers-6.12.57+deb13-amd64
+```
+
+Ou 
+
+```bash
+sudo apt install $(apt search linux-headers 2> /dev/null | grep linux-headers-$(uname -r) | cut -d/ -f1)
+```
+
+Exécuter VMware Workstation depuis le menu de démarrage de l'environnement de bureau
+
+Saisir le mot de passe pour sudo
+
+![](images/install-vmware-ws-4.png)
+
+Valider les choix pour permettre la compilation des modules.
+
+Accepter les choix :
+
+![](images/vmware-install-1.png)
+
+
+Désactiver les mises à jour automatiques:
+
+![](images/install-vmware-ws-2.png)
+
+Accepter (ou non) la collecte d'informations:
+
+![](images/install-vmware-ws-3.png)
+
+Cliquer sur `Finish`
+
+Saisir à nouveau le mot de passe si nécessaire:
+
+![](images/install-vmware-ws-4.png)
+

+ 9 - 0
applications/vscodium-visualstudio-code.md

@@ -12,3 +12,12 @@
 
 ![Tri des fichiers](images/vscodium-explorer-tri-des-fichiers-dossiers.png)
 
+
+
+# MarkdownPaste
+
+Pour coller au format Markdown
+
+Aller dans settings sur cette extension et trouver (en descendant en bas des options) [~/Library/Application Support/VSCodium/User/settings.json](éditer `settings.json`) et aller sans la section `MarkdownPaste.turndownOptions`
+
+Choisir `atx` pour le HeadingStyle

+ 105 - 0
applications/wallabag.md

@@ -16,4 +16,109 @@ Nom du client 	laurent
 ID client 	
 Clé secrète 	
 
+# Conf NGINX
+
+Il faut désactiver les redirections mauvaises données par yunohost pour autoriser l'utilisation de clients iOS (ReadKit)
+
+## Reverse proxy
+
+```
+server {
+    server_name wallabag.aezi.fr;
+
+    # HTTP configuration
+
+    # HTTP to HTTPS
+    if ($scheme != "https") {
+        return 301 https://$host$request_uri;
+    } # managed by Certbot
+
+    # HTTPS configuration
+    #listen [::]:443 ssl ipv6only=on; # managed by Certbot
+    #listen 443 ssl; # managed by Certbot
+    #ssl_certificate /etc/letsencrypt/live/nu.aezi.fr/fullchain.pem; # managed by Certbot
+    #ssl_certificate_key /etc/letsencrypt/live/nu.aezi.fr/privkey.pem; # managed by Certbot
+    #include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+    #ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+    #location /yunohost/sso {
+    #    rewrite ^ $scheme://nu.aezi.fr/$request_uri ;
+    #}
+
+    listen 443 ssl; # managed by Certbot
+    listen [::]:443 ssl; # managed by Certbot
+    ssl_certificate /etc/letsencrypt/live/nu.aezi.fr/fullchain.pem; # managed by Certbot
+    ssl_certificate_key /etc/letsencrypt/live/nu.aezi.fr/privkey.pem; # managed by Certbot
+    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+
+    # IMPORTANT : headers proxy standards
+    proxy_set_header  Host              $host;
+    proxy_set_header  X-Real-IP         $remote_addr;
+    proxy_set_header  X-Forwarded-For   $proxy_add_x_forwarded_for;
+    proxy_set_header  X-Forwarded-Proto $scheme;
+    proxy_pass_header Set-Cookie;
+    proxy_pass_header Cookie;
+    proxy_read_timeout                  900;
+
+    # OAuth endpoint (ReadKit, applis mobiles)
+    location ^~ /oauth/ {
+        proxy_pass https://10.1.0.14:443;
+    }
+
+    # API endpoint (clients wallabag)
+    location ^~ /api/ {
+        proxy_pass https://10.1.0.14:443;
+    }
+
+
+    location / {
+        proxy_pass  https://10.1.0.14:443;
+        proxy_redirect                      off;
+        #proxy_set_header  Host              $http_host;
+    }
+
+    #location ^~ /yunohost/ {
+	#rewrite ^ $scheme://nu.aezi.fr/$request_uri permanent;
+        #proxy_pass  https://10.1.0.14:443;
+        #proxy_redirect                      off;
+        #proxy_set_header  Host              $http_host;
+        #proxy_set_header  X-Real-IP         $remote_addr;
+        #proxy_set_header  X-Forwarded-For   $proxy_add_x_forwarded_for;
+        #proxy_set_header  X-Forwarded-Proto $scheme;
+        #proxy_read_timeout                  900;
+    #}
+
+
+}
+server {
+    if ($host = wallabag.aezi.fr) {
+        return 301 https://$host$request_uri;
+    } # managed by Certbot
+
+
+    server_name wallabag.aezi.fr;
+    listen 80;
+    listen [::]:80;
+    return 404; # managed by Certbot
+
+
+}
+
+
+```
+
+
+
+
+## Yunohost
+
+Dans `/etc/nginx/conf.d/wallabag.aezi.fr.conf`, désactiver ces lignes:
+
+
+```conf
+    #access_by_lua_file /usr/share/ssowat/access.lua;  # Bloque ReadKit sur iOS
+    #include /etc/nginx/conf.d/yunohost_sso.conf.inc; # Bloque ReadKit sur iOS
+```
+
 

Разница между файлами не показана из-за своего большого размера
+ 951 - 0
documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem.html


BIN
documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/140338da61f6172949f863b39e61afae.png


BIN
documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/140338da61f6172949f863b39e61afae_002.png


BIN
documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/88x31.png


BIN
documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/898adf8a77d33a03aaa1350d9668f19a.png


BIN
documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/898adf8a77d33a03aaa1350d9668f19a_002.png


BIN
documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/998587771c95a1af44d18d1321cce77d.png


BIN
documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/998587771c95a1af44d18d1321cce77d_002.png


BIN
documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/ac5cf9b8c56666785aec4ee01f96f589.png


BIN
documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/ac5cf9b8c56666785aec4ee01f96f589_002.png


BIN
documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/bc28c8d99fa1a0a955e9876454a99862.png


BIN
documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/bc28c8d99fa1a0a955e9876454a99862_002.png


BIN
documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/c8a313fafe2aa9765a40bfcb3bab04e3.png


BIN
documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/c8a313fafe2aa9765a40bfcb3bab04e3_002.png


BIN
documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/ccfd95793067b52bcc07d3e71d3cf1e0.png


BIN
documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/ccfd95793067b52bcc07d3e71d3cf1e0_002.png


+ 14 - 0
documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/consolas.css

@@ -0,0 +1,14 @@
+@font-face {
+    font-family: 'ConsolasRegular';
+    src: url('consolas/consolas-webfont.eot');
+    src: url('consolas/consolas-webfont.eot?#iefix') format('embedded-opentype'),
+         url('consolas/consolas-webfont.woff') format('woff'),
+         url('consolas/consolas-webfont.ttf') format('truetype'),
+         url('consolas/consolas-webfont.svg#ConsolasRegular') format('svg');
+    font-weight: normal;
+    font-style: normal;
+}
+
+.urvanov-syntax-highlighter-font-consolas * {
+    font-family: Consolas, 'ConsolasRegular', 'Courier New', monospace !important;
+}

+ 31 - 0
documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/custom-fonts.css

@@ -0,0 +1,31 @@
+/*
+ * Embed Theme Fonts
+ *
+ * Font Face code generated with the great Google Webfonts Helper by Mario Ranftl
+ * https://github.com/majodev/google-webfonts-helper/
+ *
+ * @package Momentous
+ */
+
+/* average-sans-regular - latin-ext_latin */
+@font-face {
+    font-family: 'Average Sans';
+    font-style: normal;
+    font-weight: 400;
+	font-display: swap;
+    src: local('Average Sans Regular'), local('AverageSans-Regular'),
+        url('../fonts/average-sans-v6-latin-ext_latin-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
+        url('../fonts/average-sans-v6-latin-ext_latin-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
+}
+
+
+/* fjalla-one-regular - latin-ext_latin */
+@font-face {
+    font-family: 'Fjalla One';
+    font-style: normal;
+    font-weight: 400;
+	font-display: swap;
+    src: local('Fjalla One'), local('FjallaOne-Regular'),
+        url('../fonts/fjalla-one-v5-latin-ext_latin-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
+        url('../fonts/fjalla-one-v5-latin-ext_latin-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
+}

BIN
documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/eae0d0475f9879bd658914161afc2087.png


BIN
documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/eae0d0475f9879bd658914161afc2087_002.png


Разница между файлами не показана из-за своего большого размера
+ 263 - 0
documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/genericons.css


Разница между файлами не показана из-за своего большого размера
+ 13 - 0
documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/imagesloaded.min.js


Разница между файлами не показана из-за своего большого размера
+ 2 - 0
documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/jquery-migrate.min.js


Разница между файлами не показана из-за своего большого размера
+ 593 - 0
documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/jquery.lightbox.js


Разница между файлами не показана из-за своего большого размера
+ 3 - 0
documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/jquery.min.js


Разница между файлами не показана из-за своего большого размера
+ 10 - 0
documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/jquery.touchwipe.min.js


Разница между файлами не показана из-за своего большого размера
+ 1 - 0
documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/lightbox.min.css


+ 17 - 0
documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/masonry-init.js

@@ -0,0 +1,17 @@
+/*! Momentous masonry.js
+  Adds support for Masonry Layout
+  Author: Thomas W (themezee.com)
+*/
+jQuery(document).ready(function($) {
+
+	// Set Masonry Container
+	var $container = $('#post-wrapper');
+
+	// initialize Masonry after all images have loaded  
+	$container.imagesLoaded( function() {
+		$container.masonry({
+			itemSelector: '.post-wrap'
+		});
+	});
+
+});

Разница между файлами не показана из-за своего большого размера
+ 10 - 0
documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/masonry.min.js


+ 191 - 0
documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/navigation.js

@@ -0,0 +1,191 @@
+/*! jQuery navigation.js
+  Adds toggle icon for mobile navigation and dropdown animations for widescreen navigation
+  Author: Thomas W (themezee.com)
+*/
+
+(function($) {
+
+	/**--------------------------------------------------------------
+	# Responsive Navigation for WordPress menus
+	--------------------------------------------------------------*/
+	$.fn.responsiveMenu = function( options ) {
+
+		if (options === undefined) options = {};
+
+		/* Set Defaults */
+		var defaults = {
+			menuID: "menu",
+			toggleClass: "menu-toggle",
+			toggleText: "",
+			maxWidth: "60em"
+		};
+
+		/* Set Variables */
+		var vars = $.extend({}, defaults, options),
+			menuID = vars.menuID,
+			toggleID = (vars.toggleID) ? vars.toggleID : vars.toggleClass,
+			toggleClass = vars.toggleClass,
+			toggleText = vars.toggleText,
+			maxWidth = vars.maxWidth,
+			$this = $(this),
+			$menu = $('#' + menuID);
+
+
+		/*********************
+		* Desktop Navigation *
+		**********************/
+
+		/* Set and reset dropdown animations based on screen size */
+		if(typeof matchMedia == 'function') {
+			var mq = window.matchMedia('(max-width: ' + maxWidth + ')');
+			mq.addListener(widthChange);
+			widthChange(mq);
+		}
+		function widthChange(mq) {
+
+			if (mq.matches) {
+
+				/* Reset desktop navigation menu dropdown animation on smaller screens */
+				$menu.find( 'ul.sub-menu' ).css( { display: 'block' } );
+				$menu.find( 'li ul.sub-menu' ).css( { visibility: 'visible', display: 'block' } );
+				$menu.find( 'li.menu-item-has-children' ).unbind( 'mouseenter mouseleave' );
+
+				$menu.find( 'li.menu-item-has-children ul.sub-menu' ).each( function() {
+					$( this ).hide();
+					$( this ).parent().find( '.submenu-dropdown-toggle' ).removeClass( 'active' );
+				} );
+
+			} else {
+
+				/* Add dropdown animation for desktop navigation menu */
+				$menu.find( 'ul.sub-menu' ).css( { display: 'none' } );
+				$menu.find( 'li.menu-item-has-children' ).hover( function() {
+					$( this ).find( 'ul:first' ).css( { visibility: 'visible', display: 'none' } ).slideDown( 300 );
+				}, function() {
+					$( this ).find( 'ul:first' ).css( { visibility: 'hidden' } );
+				} );
+
+			}
+
+		}
+
+
+		/********************
+		* Mobile Navigation *
+		*********************/
+
+		/* Add Menu Toggle Button for mobile navigation */
+		$this.before('<button id=\"' + toggleID + '\" class=\"' + toggleClass + '\">' + toggleText + '</button>');
+
+		/* Add dropdown toggle for submenus on mobile navigation */
+		$menu.find('li.menu-item-has-children').prepend('<span class=\"submenu-dropdown-toggle\"></span>');
+
+		/* Add dropdown slide animation for mobile devices */
+		$('#' + toggleID).on('click', function(){
+			$menu.slideToggle();
+			$(this).toggleClass('active');
+		});
+
+		/* Add dropdown animation for submenus on mobile navigation */
+		$menu.find('li.menu-item-has-children .sub-menu').each( function () {
+			$( this ).hide();
+		} );
+		$menu.find('.submenu-dropdown-toggle').on('click', function(){
+			$(this).parent().find('ul:first').slideToggle();
+			$(this).toggleClass('active');
+		});
+
+	};
+
+
+	/**--------------------------------------------------------------
+	# Flip between dropdown menus for Social Icons and Top Navigation
+	--------------------------------------------------------------*/
+	$.fn.flipMenu = function( options ) {
+
+		if (options === undefined) options = {};
+
+		/* Set Defaults */
+		var defaults = {
+			menuID: "menu",
+			flipMenuID: "menu",
+			toggleClass: "menu-toggle",
+			toggleText: ""
+		};
+
+		/* Set Variables */
+		var vars = $.extend({}, defaults, options),
+			menuID = vars.menuID,
+			flipMenuID = vars.flipMenuID,
+			toggleID = (vars.toggleID) ? vars.toggleID : vars.toggleClass,
+			toggleClass = vars.toggleClass,
+			toggleText = vars.toggleText,
+			$this = $(this),
+			$menu = $('#' + menuID),
+			$flipMenu = $('#' + flipMenuID);
+
+
+		/* Add both Menu Toggle Buttons */
+		$this.before('<button id=\"' + toggleID + '\" class=\"' + toggleClass + '\">' + toggleText + '</button>');
+
+		/* Add dropdown slide animation for mobile devices */
+		$('#' + toggleID).on('click', function(){
+			if( $flipMenu.is(':visible') ) {
+				$flipMenu.slideToggle();
+				$menu.delay(400).slideToggle();
+			} else {
+				$menu.slideToggle();
+			}
+			$(this).toggleClass('active');
+		});
+
+	};
+
+
+	/**--------------------------------------------------------------
+	# Setup Navigation Menus
+	--------------------------------------------------------------*/
+	$( document ).ready( function() {
+
+		/* Setup Main Navigation */
+		$("#mainnav").responsiveMenu({
+			menuID: "mainnav-menu",
+			toggleID: "mainnav-toggle-tablet",
+			toggleClass: "mainnav-toggle",
+			maxWidth: "60em"
+		});
+
+		/* Setup Top Navigation */
+		$("#topnav").responsiveMenu({
+			menuID: "topnav-menu",
+			toggleID: "topnav-toggle",
+			toggleClass: "nav-toggle",
+			maxWidth: "60em"
+		});
+
+
+		/* Add flipMenu for social icons menu */
+		$("#navi-social-icons").flipMenu({
+			menuID: "social-icons-menu",
+			flipMenuID: "mainnav-menu",
+			toggleID: "social-menu-toggle",
+			toggleClass: "social-menu-toggle"
+		});
+
+		/* Add flipMenu for top navigation */
+		$("#mainnav").flipMenu({
+			menuID: "mainnav-menu",
+			flipMenuID: "social-icons-menu",
+			toggleID: "mainnav-toggle-phone",
+			toggleClass: "mainnav-toggle"
+		});
+
+		/* Add toggle effect for header search icon */
+		$('.header-search-icon').on('click', function(){
+			$('#header-search-wrap').slideToggle();
+			$(this).toggleClass('active');
+		});
+
+	} );
+
+}(jQuery));

+ 137 - 0
documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/overrides.css

@@ -0,0 +1,137 @@
+/* Generl Overrides */
+
+#lightbox {
+	position: fixed;
+	top: 50% !important;
+	left: 50% !important;
+	transform: translate(-50%, -50%);
+}
+
+#imageContainer {
+	position: relative;
+	height: 100%;
+	box-sizing: border-box;
+}
+
+#imageDataContainer {
+	position: relative;
+}
+
+#imageDataContainer.hide {
+	display: none;
+}
+
+#newHoverNav {
+	position: absolute;
+	top: 0;
+	left: 0;
+	height: 100%;
+	width: 100%;
+	z-index: 10;
+	display: flex;
+	justify-content: space-between;
+	align-items: center;
+}
+
+#prevArrow,
+#nextArrow {
+	color: black;
+	background: rgba(255,255,255,.7);
+	font-size: 40px;
+	position: relative;
+	display: none;
+	padding: 8px 10px 8px 6px;
+    cursor: pointer;
+    width: 46px;
+    height: 46px;
+	box-sizing: border-box;
+}
+
+#nextArrow {
+	padding: 8px 6px 8px 10px;
+}
+
+#prevArrow.fixed,
+#nextArrow.fixed {
+	position: fixed;
+	display:block;
+	top: 50%;
+	left: 1%;
+	transform: translate(0, -50%);
+	border-radius: 2px;
+}
+
+#nextArrow.fixed {
+    right: 1%;
+	left: auto;
+}
+
+@media screen and (max-width: 800px) {
+	#prevArrow.fixed,
+	#nextArrow.fixed {
+		border-radius: 2px;
+	}
+	#prevArrow.fixed {
+		left: 0;
+	}
+	#nextArrow.fixed {
+		right: 0;
+	}
+}
+
+#imageContainer:hover #prevArrow,
+#imageContainer:hover #nextArrow {
+	display:block;
+}
+
+#imageData {
+	display: flex;
+	justify-content: space-between;
+	align-items: center;
+	padding: 4px 10px 8px;
+}
+
+#imageData #imageDetails {
+	margin-bottom: 0;
+}
+
+#imageData #bottomNav #bottomNavClose {
+	margin-bottom: 0;
+}
+
+#jqlb_loading {
+    top: 45%;
+}
+
+
+/* Overrides for mobile styling */ 
+
+#prevArrow.touch-device,
+#nextArrow.touch-device {
+	display: block;
+}
+
+#prevLink.touch-device,
+#nextLink.touch-device {
+	position: absolute;
+	top: 50%;
+	transform: translateY(-50%);
+	height: 40px;
+	width: 40px;
+	float: none;
+}
+
+#prevLink.touch-device {
+	left: 0;
+	background: url(./images/prev.gif) center center no-repeat;
+}
+
+#nextLink.touch-device {
+	right: 0;
+	background: url(./images/next.gif) center center no-repeat;
+}
+
+#imageDataContainer {
+	position: relative;
+	z-index: 20px;
+}

Разница между файлами не показана из-за своего большого размера
+ 6 - 0
documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/panzoom.min.js


Разница между файлами не показана из-за своего большого размера
+ 2 - 0
documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/purify.min.js


Разница между файлами не показана из-за своего большого размера
+ 78 - 0
documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/seb.js


+ 84 - 0
documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/style.css

@@ -0,0 +1,84 @@
+/*
+ Theme Name:   Momentous modded
+ Theme URI:    http://test.seboss666.info
+ Description:  Momentous rebanded by Seboss666
+ Author:       Bibi
+ Author URI:   http://test.seboss666.info
+ Template:     momentous-lite
+ Version:      1.0.0
+ License:      GNU General Public License v2 or later
+ License URI:  http://www.gnu.org/licenses/gpl-2.0.html
+ Tags:         better colors
+ Text Domain:  momentous-modded
+*/
+
+body {
+	background-color: #EEE;
+}
+
+a, a:link, a:visited {
+	color: #0185c1;
+}
+
+.widget a:link, .widget a:visited {
+	color: #0185c1;
+}
+
+.postinfo span a:hover, .postinfo span a:active {
+        color: #0185c1;
+}
+
+#mainnav-menu li.current_page_item a, #mainnav-menu li.current-menu-item a {
+        color: #333;
+	text-decoration: none;
+	background-color: #0185c1;
+	
+}
+
+.main-navigation-menu ul {
+	background-color:#0185c1;
+}
+
+
+#mainnav-menu a:hover {
+/*        color: #0185c1;*/
+	color: #333;
+	background-color:#0185c1;
+}
+
+#header-wrap {
+	background: url("/wp-content/uploads/2016/01/matrix-twbanner-reloaded.jpg") repeat-x;
+}
+
+.more-link {
+	background: #0185c1 none repeat scroll 0% 0%;
+}
+
+.post-pagination .current {
+        color: #0185c1;
+}
+
+#commentform #submit {
+	background: #0185c1 none repeat scroll 0% 0%;
+}
+
+#header-content .header-search-icon .genericon-search {
+	color: #FFF;
+}
+
+#logo .site-description {
+	color: #FFF;
+}
+
+.entry {
+	font-size: 1.2em;
+}
+
+blockquote {
+	font-style: italic;
+}
+
+
+code, pre {
+	padding: 0.5em;
+}

Разница между файлами не показана из-за своего большого размера
+ 11 - 0
documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/style.min.css


Разница между файлами не показана из-за своего большого размера
+ 2058 - 0
documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/style_002.css


+ 167 - 0
documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/sublime-text.css

@@ -0,0 +1,167 @@
+/*
+Name: Sublime Text
+Description: Clean, crisp and colorful.
+Version: 1.1
+Author: khosite
+URL: http://khosite.com/
+*/
+.crayon-theme-sublime-text {
+	border-width: 1px !important;
+	border-color: #999 !important;
+	border-style: solid !important;
+	text-shadow: none !important;
+	background: #272822 !important;
+}
+.crayon-theme-sublime-text-inline {
+	border-width: 1px !important;
+	border-color: #999 !important;
+	border-style: solid !important;
+	background: #272822 !important;
+}
+.crayon-theme-sublime-text .crayon-table .crayon-nums {
+	background: #272822 !important;
+	color: #868686 !important;
+}
+.crayon-theme-sublime-text .crayon-striped-line {
+	background: #272822 !important;
+}
+.crayon-theme-sublime-text .crayon-striped-num {
+	background: #32322a !important;
+	color: #868686 !important;
+}
+.crayon-theme-sublime-text .crayon-marked-line {
+	background: #272822 !important;
+	border-width: 1px !important;
+	border-color: #272822 !important;
+}
+.crayon-theme-sublime-text .crayon-marked-num {
+	color: #868686 !important;
+	background: #272822 !important;
+	border-width: 1px !important;
+	border-color: #272822 !important;
+}
+.crayon-theme-sublime-text .crayon-marked-line.crayon-striped-line {
+	background: #272822 !important;
+}
+.crayon-theme-sublime-text .crayon-marked-num.crayon-striped-num {
+	background: #272822 !important;
+	color: #868686 !important;
+}
+.crayon-theme-sublime-text .crayon-marked-line.crayon-top {
+	border-top-style: solid !important;
+}
+.crayon-theme-sublime-text .crayon-marked-num.crayon-top {
+	border-top-style: solid !important;
+}
+.crayon-theme-sublime-text .crayon-marked-line.crayon-bottom {
+	border-bottom-style: solid !important;
+}
+.crayon-theme-sublime-text .crayon-marked-num.crayon-bottom {
+	border-bottom-style: solid !important;
+}
+.crayon-theme-sublime-text .crayon-info {
+	background: #272822 !important;
+	border-bottom-width: 1px !important;
+	border-bottom-color: #e6db5d !important;
+	border-bottom-style: solid !important;
+	color: #e6db5d !important;
+}
+.crayon-theme-sublime-text .crayon-toolbar {
+	background: #DDD !important;
+	border-bottom-width: 1px !important;
+	border-bottom-color: #BBB !important;
+	border-bottom-style: solid !important;
+}
+.crayon-theme-sublime-text .crayon-toolbar > div {
+	float: left !important;
+}
+.crayon-theme-sublime-text .crayon-toolbar .crayon-tools {
+	float: right !important;
+}
+.crayon-theme-sublime-text .crayon-title {
+	color: #333 !important;
+}
+.crayon-theme-sublime-text .crayon-language {
+	color: #999 !important;
+}
+.crayon-theme-sublime-text .crayon-button {
+	background-color: #DDD !important;
+}
+.crayon-theme-sublime-text .crayon-button:hover {
+	background-color: #EEE !important;
+	color: #666;
+}
+.crayon-theme-sublime-text .crayon-button.crayon-pressed:hover {
+	background-color: #EEE !important;
+	color: #666;
+}
+.crayon-theme-sublime-text .crayon-button.crayon-pressed {
+	background-color: #BCBCBC !important;
+	color: #FFF;
+}
+.crayon-theme-sublime-text .crayon-button.crayon-pressed:active {
+	background-color: #BCBCBC !important;
+	color: #FFF;
+}
+.crayon-theme-sublime-text .crayon-button:active {
+	background-color: #BCBCBC !important;
+	color: #FFF;
+}
+.crayon-theme-sublime-text .crayon-pre .crayon-c {
+	color: #75715e !important;
+}
+.crayon-theme-sublime-text .crayon-pre .crayon-s {
+	color: #e6db5d !important;
+}
+.crayon-theme-sublime-text .crayon-pre .crayon-p {
+	color: #b85c00 !important;
+}
+.crayon-theme-sublime-text .crayon-pre .crayon-ta {
+	color: #f8f8f2 !important;
+}
+.crayon-theme-sublime-text .crayon-pre .crayon-k {
+	color: #66d9ef !important;
+}
+.crayon-theme-sublime-text .crayon-pre .crayon-st {
+	color: #66d9ef !important;
+}
+.crayon-theme-sublime-text .crayon-pre .crayon-r {
+	color: #66d9ef !important;
+}
+.crayon-theme-sublime-text .crayon-pre .crayon-t {
+	color: #a6e22d !important;
+}
+.crayon-theme-sublime-text .crayon-pre .crayon-m {
+	color: #66d9ef !important;
+}
+.crayon-theme-sublime-text .crayon-pre .crayon-i {
+	color: #f8f8f2 !important;
+}
+.crayon-theme-sublime-text .crayon-pre .crayon-e {
+	color: #f92650 !important;
+}
+.crayon-theme-sublime-text .crayon-pre .crayon-v {
+	color: #f8f8f2 !important;
+}
+.crayon-theme-sublime-text .crayon-pre .crayon-cn {
+	color: #ae81ff !important;
+}
+.crayon-theme-sublime-text .crayon-pre .crayon-o {
+	color: #f8f8f2 !important;
+}
+.crayon-theme-sublime-text .crayon-pre .crayon-sy {
+	color: #f8f8f2 !important;
+}
+.crayon-theme-sublime-text .crayon-pre .crayon-n {
+	color: #666 !important;
+	font-style: italic !important;
+}
+.crayon-theme-sublime-text .crayon-pre .crayon-f {
+	color: #999 !important;
+}
+.crayon-theme-sublime-text .crayon-pre .crayon-h {
+	color: #006fe0 !important;
+}
+.crayon-theme-sublime-text .crayon-pre {
+	color: #f8f8f2 !important;
+}

+ 244 - 0
documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/themezee-related-posts.css

@@ -0,0 +1,244 @@
+/*
+ * Themezee Related Posts CSS
+ * https://themezee.com/plugins/related-posts/
+ *
+ * Copyright(C) 2015, ThemeZee.com - support@themezee.com
+ * License: GPL v3
+ * License URI: http://www.gnu.org/licenses/gpl-3.0.html
+ *
+ * @package Momentous Lite
+ */
+
+/*--------------------------------------------------------------
+# General Styling
+---------------------------------------------------------------- */
+.related-posts .entry-meta .meta-author {
+	margin-left: 0.5em;
+}
+
+.related-posts .entry-meta span:before {
+	display: inline-block;
+	-webkit-font-smoothing: antialiased;
+	font: normal 16px 'Genericons';
+	vertical-align: top;
+	color: #555;
+	margin-top: 0.2em;
+}
+
+.related-posts .entry-meta .meta-date:before{
+	content: '\f303';
+	margin-right: 0.2em;
+}
+
+.related-posts .entry-meta .meta-author:before{
+	content: '\f411';
+}
+
+/*--------------------------------------------------------------
+# List Layout
+---------------------------------------------------------------- */
+ul.related-posts-list {
+	margin: 1em 0 0;
+	padding: 0;
+	list-style: none;
+}
+
+.related-posts-list li {
+	margin: 0 0 1em;
+	padding: 0;
+	list-style: none;
+}
+
+.related-posts-list li .entry-header {
+	margin-top: 0.25em;
+}
+
+.related-posts-list li .entry-title {
+	font-size: 1.3em;
+	padding: 0;
+	border: none;
+}
+
+.related-posts-list li .entry-meta {
+	padding: 0.5em;
+	border: none;
+}
+
+.related-posts-list li .wp-post-image {
+	float: left;
+	margin: 0 1em 0 0;
+	padding: 0;
+	border: none;
+	max-width: 20%;
+	height: auto;
+}
+
+
+/*--------------------------------------------------------------
+# Grid Layouts
+---------------------------------------------------------------- */
+.related-posts-grid {
+	margin: 1em 0 0;
+}
+
+.related-posts-columns {
+	margin-right: -1em;
+}
+
+.related-posts-columns .related-post-column {
+	float: left;
+	margin-bottom: 1em;
+	padding-right: 1em;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+}
+
+.related-posts-two-columns .related-post-column {
+	width: 50%;
+}
+
+.related-posts-three-columns .related-post-column {
+	width: 33.3333333333333%;
+}
+
+.related-posts-four-columns .related-post-column {
+	width: 25%;
+}
+
+.related-posts-two-columns .related-post-column:nth-child(2n + 1) {
+	clear: left;
+}
+
+.related-posts-three-columns .related-post-column:nth-child(3n + 1) {
+	clear: left;
+}
+
+.related-posts-four-columns .related-post-column:nth-child(4n + 1) {
+	clear: left;
+}
+
+.related-posts-two-columns .related-post-column .entry-title {
+	font-size: 1.6em;
+}
+	
+.related-posts-three-columns .related-post-column .entry-title {
+	font-size: 1.4em;
+}
+
+.related-posts-four-columns .related-post-column .entry-title {
+	font-size: 1.2em;
+}
+
+.related-posts-four-columns .related-post-column .entry-meta .meta-date,
+.related-posts-four-columns .related-post-column .entry-meta .meta-author  {
+	display: block;
+}
+
+.related-posts-columns .related-post-column .wp-post-image {
+	margin: 0 0 1em 0;
+	padding: 0;
+	border: none;
+	max-width: 100%;
+}
+
+/*--------------------------------------------------------------
+# Media Queries
+---------------------------------------------------------------- */
+
+@media only screen and (max-width: 60em) {
+	
+	/* Columns */
+	.related-posts-two-columns .related-post-column .entry-title {
+		font-size: 1.4em;
+	}
+	
+	.related-posts-three-columns .related-post-column .entry-title {
+		font-size: 1.2em;
+	}
+
+	.related-posts-four-columns .related-post-column .entry-title {
+		font-size: 1.1em;
+	}
+	
+}
+
+@media only screen and (max-width: 50em) {
+	
+	/* Columns */
+	.related-posts-four-columns .related-post-column {
+		width: 50%;
+	}
+	
+	.related-posts-four-columns .related-post-column:nth-child(2n + 1) {
+		clear: left;
+	}
+	
+	.related-posts-two-columns .related-post-column .entry-title {
+		font-size: 1.25em;
+	}
+	
+	/* List */
+	.related-posts-list li .wp-post-image {
+		max-width: 30%;
+	}
+}
+
+@media only screen and (max-width: 35em) {
+
+	/* Columns */
+	.related-posts-three-columns {
+		margin: 0;
+	}
+	
+	.related-posts-three-columns .related-post-column {
+		float: none;
+		width: 100%;
+		padding-right: 0;
+	}
+	
+	.related-posts-three-columns .related-post-column .entry-title {
+		font-size: 1.4em;
+	}
+
+	.related-posts-two-columns .related-post-column .entry-title,
+	.related-posts-four-columns .related-post-column .entry-title {
+		font-size: 1.1em;
+	}
+
+}
+
+@media only screen and (max-width: 25em) {
+
+	.related-posts .entry-meta .meta-date,
+	.related-posts .entry-meta .meta-author  {
+		display: block;
+		margin: 0;
+	}
+	
+	/* Columns */
+	.related-posts-two-columns,
+	.related-posts-four-columns {
+		margin: 0;
+	}
+	
+	.related-posts-two-columns .related-post-column,
+	.related-posts-four-columns .related-post-column {
+		float: none;
+		width: 100%;
+		padding-right: 0;
+	}
+	
+	.related-posts-three-columns .related-post-column .entry-title {
+		font-size: 1.2em;
+	}
+
+	
+	/* List */
+	.related-posts-list li .wp-post-image {
+		float: none;
+		margin: 0 0 0.5em 0;
+		max-width: 100%;
+	}
+
+}

Разница между файлами не показана из-за своего большого размера
+ 1 - 0
documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/urvanov_syntax_highlighter.min.css


Разница между файлами не показана из-за своего большого размера
+ 1 - 0
documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/urvanov_syntax_highlighter.min.js


BIN
documentation/La magie des caractères accentués entre Mac et Linux – Le blog de Seboss666-macos-accent-character-filename-filesystem_fichiers/utf8_madness-657x300.png


+ 26 - 0
gnu-linux/awk.md

@@ -0,0 +1,26 @@
+% AWK
+
+# Débugger
+
+* [Breakpoint Control (The GNU Awk User’s Guide)](https://www.gnu.org/software/gawk/manual/html_node/Breakpoint-Control.html)
+* [Debugger (The GNU Awk User’s Guide)](https://www.gnu.org/software/gawk/manual/html_node/Debugger.html#Debugger)
+* [List of Debugger Commands (The GNU Awk User’s Guide)](https://www.gnu.org/software/gawk/manual/html_node/List-of-Debugger-Commands.html)
+* [Viewing And Changing Data (The GNU Awk User’s Guide)](https://www.gnu.org/software/gawk/manual/html_node/Viewing-And-Changing-Data.html)
+* [Viewing And Changing Data (The GNU Awk User’s Guide)](https://www.gnu.org/software/gawk/manual/html_node/Viewing-And-Changing-Data.html)
+* [Breakpoint Control (The GNU Awk User’s Guide)](https://www.gnu.org/software/gawk/manual/html_node/Breakpoint-Control.html)
+* [Debugger Execution Control (The GNU Awk User’s Guide)](https://www.gnu.org/software/gawk/manual/html_node/Debugger-Execution-Control.html)
+* [Finding The Bug (The GNU Awk User’s Guide)](https://www.gnu.org/software/gawk/manual/html_node/Finding-The-Bug.html)
+
+
+
+```
+gawk> b 16
+Point d'arrêt 1 défini dans le fichier « _GUIDE_GENERATION/filter-guide.awk » ligne 16
+gawk> help info
+info topic - source|sources|variables|functions|break|frame|args|locals|display|watch
+gawk> info break
+Numéro  Post  Activé   Position
+
+1       keep  yes      file _GUIDE_GENERATION/filter-guide.awk, line #16
+gawk> condition 1 "$0 ~ /---aoff/"
+```

+ 47 - 0
gnu-linux/bash.md

@@ -0,0 +1,47 @@
+% BASH
+
+
+# Ajout de chemin dans PATH (.bashrc ou .bash_profile)
+
+```bash
+if [[ ! $(echo "$PATH" | grep -F "$HOME/bin") =~ $HOME/bin ]]
+then
+	export PATH=$PATH:"$HOME/bin"
+fi
+```
+
+# Environnement macOS
+
+## Shell par défaut sous macOS
+
+
+```bash
+sudo nano /etc/shells
+```
+
+Y ajouter :
+
+```
+/opt/homebrew/bin/bash
+```
+
+Puis exécuter:
+
+```bash
+chsh -s /opt/homebrew/bin/bash
+```
+
+## Outils par défauts GNU
+
+
+```bash
+brew install coreutils gnu-sed gnu-grep gawk
+```
+
+Puis ajouter dans le PATH:
+
+```
+export PATH="/opt/homebrew/opt/coreutils/libexec/gnubin:$PATH"
+export PATH="/opt/homebrew/opt/gnu-sed/libexec/gnubin:$PATH"
+export PATH="/opt/homebrew/opt/gnu-grep/libexec/gnubin:$PATH"
+```

+ 21 - 0
gnu-linux/debian.md

@@ -57,9 +57,16 @@ EOF
 
 ```bash
 sudo unattended-upgrade -d
+sudo systemctl status unattended-upgrades
 ```
 
 
+### Redémarrage automatique après les mises à jour automatiques
+
+```bash
+sudo apt install apt-config-auto-update
+```
+
 # Problème trusted.gpg
 
 ## Symptôme
@@ -78,5 +85,19 @@ W: http://security.debian.org/debian-security/dists/bookworm-security/InRelease:
 apt-key --keyring /etc/apt/trusted.gpg list 2>/dev/null | grep -A 1 "pub " |grep -v "pub " | grep -v '\-\-' | awk -v OFS="" '{$1=$1}1' | xargs -i sudo bash -c 'apt-key --keyring /etc/apt/trusted.gpg export {} | gpg --dearmor -o /etc/apt/trusted.gpg.d/{}.gpg ;'
 ```
 
+# Suppression pour système léger (Debian lightweight)
+
+
+Paquets inutiles:
+
+```
+bluez bluez-firmware build-essential cpp cpp-14 cpp-14-aarch64-linux-gnu cpp-aarch64-linux-gnu g++ g++-14 g++-14-aarch64-linux-gnu g++-aarch64-linux-gnu gcc gcc-14 gcc-14-aarch64-linux-gnu gcc-aarch64-linux-gnu wpasupplicant
+```
+
+```bash
+sudo apt remove bluez bluez-firmware build-essential cpp cpp-14 cpp-14-aarch64-linux-gnu cpp-aarch64-linux-gnu g++ g++-14 g++-14-aarch64-linux-gnu g++-aarch64-linux-gnu gcc gcc-14 gcc-14-aarch64-linux-gnu gcc-aarch64-linux-gnu wpasupplicant
+sudo apt autoremove
 
+```
 
+MTV632D/A

+ 3 - 0
gnu-linux/debian/debian-mises-a-jour-apt.md

@@ -0,0 +1,3 @@
+% Mises à jour automatique APT
+
+

+ 40 - 0
gnu-linux/debian/signatures-apt.md

@@ -0,0 +1,40 @@
+% invalid signature dans apt-get update
+
+Voir [Expired gpg signature · Issue #9216 · yarnpkg/yarn · GitHub](https://github.com/yarnpkg/yarn/issues/9216)
+
+```
+W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: https://packages.sury.org/php bookworm InRelease: The following signatures were invalid: EXPKEYSIG B188E2B695BD4743 DEB.SURY.ORG Automatic Signing Key <deb@sury.org>
+W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: https://dl.yarnpkg.com/debian stable InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 62D54FD4003F6525
+W: Failed to fetch https://packages.sury.org/php/dists/bookworm/InRelease  The following signatures were invalid: EXPKEYSIG B188E2B695BD4743 DEB.SURY.ORG Automatic Signing Key <deb@sury.org>
+W: Failed to fetch https://dl.yarnpkg.com/debian/dists/stable/InRelease  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 62D54FD4003F6525
+W: Some index files failed to download. They have been ignored, or old ones used instead.
+```
+
+```bash
+ladmyn@nu:~$ sudo apt-key list | grep -A1 expired
+Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
+pub   rsa3072 2019-03-18 [SC] [expired: 2026-02-04]
+      1505 8500 A023 5D97 F5D1  0063 B188 E2B6 95BD 4743
+uid           [ expired] DEB.SURY.ORG Automatic Signing Key <deb@sury.org>
+
+
+
+ladmyn@nu:~$ sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com B188E2B695BD4743
+Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
+Executing: /tmp/apt-key-gpghome.YjsVJSWaU2/gpg.1.sh --recv-keys --keyserver keyserver.ubuntu.com B188E2B695BD4743
+gpg: key B188E2B695BD4743: "DEB.SURY.ORG Automatic Signing Key <deb@sury.org>" 5 new signatures
+gpg: Total number processed: 1
+gpg:         new signatures: 5
+```
+
+Sous Debian 12
+
+```
+curl -fsSL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo gpg --yes --dearmor -o /etc/apt/trusted.gpg.d/yarn.gpg
+
+```
+
+
+
+
+Warning: File /var/www/nextcloud/config/config.php has been manually modified since the installation or last upgrade. So it has been duplicated in /var/cache/yunohost/appconfbackup//var/www/nextcloud/config/config.php.backup.20260213.131607

+ 11 - 0
gnu-linux/history.md

@@ -0,0 +1,11 @@
+% Filtrer la sortie de `history`
+
+
+# Utilisation de `sed`
+
+
+```bash
+history | sed -E 's/^[[:blank:]]{2,4}[[:digit:]]{1,3} /\$/'
+# ou
+sed -i.bak -E 's/^[[:blank:]]{2,4}[[:digit:]]{1,3} /\$/'
+```

+ 56 - 0
gnu-linux/partitionnement/cryptsetup.md

@@ -0,0 +1,56 @@
+% Cryptsetup: gestion des volumes chiffrés sous GNU/Linux
+
+# Gestion des volumes
+
+## Ouverture d'un volume 
+
+```bash
+sudo cryptsetup open /dev/mapper/chemin_partition nom_volume_dechiffre
+```
+
+Exemple:
+
+```bash
+sudo cryptsetup open /dev/mapper/vg_data-lv_storage crypt_storage
+```
+
+
+## Fermeture d'un volume
+
+```bash
+cryptsetup close nom_volume
+```
+
+Exemple:
+
+```bash
+sudo cryptsetup close crypt_storage 
+```
+
+## Création / formatage
+
+```bash
+cryptsetup luksFormat /dev/vg_data/lv_secure
+```
+
+Le formatage du système de fichier se fait de manière standard.
+
+### Sauvegarde du Header
+
+Après création formatage, il FAUT sauvegarder le header:
+
+```bash
+cryptsetup luksHeaderBackup /dev/vg_data/lv_secure --header-backup-file lv_secure_header.img
+```
+
+### Exemples
+
+```bash
+sudo cryptsetup luksFormat /dev/vg_data/lv_data
+sudo cryptsetup luksHeaderBackup /dev/vg_data/lv_data --header-backup-file lv_data_header.img
+# Ouverture
+sudo cryptsetup open /dev/mapper/vg_data-lv_data lv_secure
+# Formatage
+sudo mkfs.ext4 /dev/mapper/lv_secure
+
+```

+ 142 - 0
gnu-linux/partitionnement/mdadm-raid.md

@@ -13,3 +13,145 @@ Sur chaque disque correspondant:
 mdadm --zero-superblock /dev/sdAX
 ```
 
+## 1:  Vérifier la présence du RAID dans initramfs
+
+GRUB doit connaître le RAID pour charger le noyau.
+
+```
+`cat /etc/mdadm/mdadm.conf
+`
+
+```
+
+Assure-toi qu'il contient bien une ligne similaire :
+
+```
+`ARRAY /dev/md0 metadata=1.2 UUID=xxxxxxxx:xxxxxxxx:xxxxxxxx:xxxxxxxx
+`
+
+```
+
+Sinon, régénère-le :
+
+```
+mdadm --detail --scan >> /etc/mdadm/mdadm.conf
+update-initramfs -u
+
+
+```
+
+* * * *
+
+## 2:  Vérifier l'installation de GRUB sur **tous les disques**
+
+Sur un système en RAID1, GRUB doit être écrit sur **les deux disques** :
+
+```
+`grub-install /dev/sda
+grub-install /dev/sdb
+update-grub
+`
+
+```
+
+Ensuite, vérifie :
+
+```
+`lsblk -f
+`
+
+```
+
+et assure-toi que `/boot` (ou `/boot/md0`) est bien monté avant `update-grub`.
+
+* * * *
+
+## 3:  Vérifier le mode BIOS / UEFI
+
+| Mode | Vérification | Commande / Action |
+| --- |  --- |  --- |
+| BIOS (Legacy) | GRUB s'installe dans le MBR de chaque disque | `grub-install /dev/sda` puis `/dev/sdb` |
+| --- |  --- |  --- |
+| UEFI | Une partition EFI (FAT32) doit exister et être montée sur `/boot/efi` | `ls /boot/efi/EFI` et vérifier la présence du dossier `debian` |
+
+Si l'un des disques n'a pas de partition EFI :
+
+-   recrée une partition EFI sur le second disque (même taille que la première) ;
+
+-   synchronise le contenu :
+
+-   ```
+    `mkdir -p /mnt/efi2
+    mount /dev/sdb1 /mnt/efi2
+    rsync -a /boot/efi/ /mnt/efi2/
+    umount /mnt/efi2
+    `
+
+    ```
+
+* * * *
+
+## 4:  Vérifier les UUID dans `/etc/fstab`
+
+Un mauvais UUID peut empêcher `/boot` ou `/boot/efi` d'être monté, bloquant GRUB.
+
+Commande :
+
+```
+`blkid
+cat /etc/fstab
+`
+
+```
+
+Compare les UUIDs : ils doivent correspondre aux bons volumes (`/dev/md0`, `/dev/sda1`, `/dev/sdb1`, etc.).
+Aucun `UUID` d'un ancien RAID ne doit subsister.
+
+* * * *
+
+## 5:  Vérifier la métadonnée RAID du `/boot`
+
+GRUB ne lit pas les métadonnées récentes (v1.2) au tout début du disque.
+Si ton `/boot` est sur RAID1, **assure-toi qu'il utilise le format 0.9 ou 1.0**, pas 1.2 :
+
+```
+`mdadm --detail /dev/md0 | grep Version
+`
+
+```
+
+Si c'est 1.2, recrée `/boot` ainsi :
+
+```
+`mdadm --create /dev/md0 --level=1 --raid-devices=2 --metadata=1.0 /dev/sda1 /dev/sdb1
+`
+
+```
+
+Puis réinstalle GRUB.
+
+* * * *
+
+## 6:  Vérifier la séquence de boot dans le BIOS/UEFI
+
+Chaque disque doit être amorçable.
+Dans le BIOS :
+
+-   active le mode "Boot from both drives" ou "Legacy+UEFI" selon le cas ;
+
+-   place `/dev/sda` et `/dev/sdb` dans la liste d'amorçage.
+
+* * * *
+
+## 7:  Vérification finale
+
+```
+`mdadm --detail /dev/md0
+cat /proc/mdstat
+grub-probe /
+grub-probe /boot
+`
+
+```
+
+Les commandes `grub-probe` ne doivent pas renvoyer d'erreur ("disk not found").

+ 8 - 1
gnu-linux/partitionnement/raid5-luks-lvm-configuration.md

@@ -117,7 +117,14 @@ sudo mkfs.ext4 /dev/md1
 ```bash
 sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sd[b-d]
 ```
-- Laissez le RAID se synchroniser après la création.
+
+Laissez le RAID se synchroniser après la création.
+
+Pour voir la progression:
+
+```bash
+sudo watch -n1 cat /proc/mdstat
+```
 
 ### Étape 2 : Ajouter le chiffrement LUKS
 

+ 0 - 0
gnu-linux/quota.md


+ 103 - 0
gnu-linux/serveurs/debian-miroir-apt.md

@@ -0,0 +1,103 @@
+% Miroir APT pour Debian
+
+
+```
+#!/bin/bash
+# source https://www.tobanet.de/s/2017/11/create-your-own-debian-mirror-with-debmirror/
+# https://doc.lesmorin.fr/index.php/Debmirror
+
+#HOST=ftp.fr.debian.org;
+#HOST=debian.univ-tlse2.fr
+HOST=deb.debian.org
+
+#METHOD=rsync
+#METHOD=http
+METHOD=ftp
+
+# destination directory
+DEST=/srv/data/debian
+
+# Debian version(s) to mirror
+DIST=bookworm
+
+# architecture
+ARCH=amd64
+
+MIRROR_USER=miroir
+
+
+# log timestamp
+logger -t mirror[$$] "updating Debian mirror"
+
+su ${MIRROR_USER} -c \
+ "debmirror \
+ --nosource \
+ --method=${METHOD} \
+ --host=${HOST} \
+ --root=debian/ \
+ --dist=${DIST} \
+ --section=main,contrib,non-free,main/debian-installer \
+ --i18n \
+ --arch=${ARCH} \
+ --passive --postcleanup \
+ --getcontents --keyring /usr/share/keyrings/debian-archive-keyring.gpg \
+ -v \
+ ${DEST} \
+ "
+
+logger -t mirror[$$] "finished updating Debian mirror"
+```
+
+
+
+## Serveur Web NGINX
+
+```bash
+$ cat /etc/nginx/sites-available/debianmiroir 
+```
+
+```nginx
+server {
+ listen 80 default_server;
+ server_name _;
+
+ access_log /var/log/nginx/mirror.access.log;
+ error_log  /var/log/nginx/mirror.error.log;
+
+ server_name_in_redirect off;
+
+ autoindex off;
+ server_tokens off;
+
+ root /var/www/html;
+
+ location /debian {
+     alias /srv/data/debian;
+
+     fancyindex on;
+     fancyindex_exact_size off;
+     fancyindex_header /head.html;
+     fancyindex_footer /foot.html;
+ }
+
+ location /debian-security {
+     alias /srv/data/debian-security;
+
+     fancyindex on;
+     fancyindex_exact_size off;
+     fancyindex_header /head.html;
+     fancyindex_footer /foot.html;
+ }
+
+ error_page 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 421 422 423 424 425 426 428 429 431 451 500 501 502 503 504 505 506 507 508 510 511 /error.html;
+
+ location /error.html {
+     root /var/www/html;
+     internal;
+ }
+}
+```
+
+
+
+

+ 80 - 9
gnu-linux/serveurs/installation/post-installation-serveur.md

@@ -55,25 +55,96 @@ PermitEmptyPasswords no
 
 ## fail2ban
 
-:::information
-
-REVÉRIFIER CETTE PARTIE LÀ
-
-:::
-
 Installation de `fail2ban`
 
 ```bash
-sudo apt install fail2ban
+sudo apt install fail2ban iptables
 ```
 
-Configuration
+### Configuration
 
 ```bash
 sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
 sudo nano /etc/fail2ban/jail.local
 ```
 
+#### Configuration de base pour augmenter la sécurité
+
+Vérifier les INCLUDE:
+
+```conf
+
+[INCLUDES]
+
+#before = paths-distro.conf
+before = paths-debian.conf
+```
+
+Activer les options pour `bantime` :
+
+```conf
+bantime.increment = true
+bantime.rndtime = 3600
+bantime.factor = 2
+bantime  = 1h
+```
+
+#### Configurer le bannissement immédiat sur `sshd`
+
+```conf
+mode = normal
+port    = ssh
+logpath = %(sshd_log)s
+backend = %(sshd_backend)s
+enabled = true
+bantime = 3
+maxretry = 1
+findtime = 1h
+filter = sshd
+banaction = iptables-multiport
+banaction_allports = iptables-allports
+```
+
+#### Filtrage des `Connection reset`
+
+Créer le fichier `/etc/fail2ban/jail.d/sshd-reset.local` et y placer le contenu suivant:
+
+```conf
+[sshd-reset]
+enabled = true
+filter = sshd-reset
+action = iptables-multiport[name=sshd-reset, port=ssh, protocol=tcp]
+logpath = %(sshd_log)s
+backend = %(sshd_backend)s
+maxretry = 3
+bantime = 1d
+findtime = 1h
+```
+
+
+Créer le fichier `/etc/fail2ban/filter.d/sshd-reset.conf` et y placer le contenu suivant:
+
+```conf
+[Definition]
+banre-ssh-invalid = ^.*Connection reset by invalid user .+ from <HOST> port \d+
+banre-ssh-auth-root = ^.*Connection reset by authenticating user root .+ from <HOST> port \d+
+
+failregex = %(banre-ssh-invalid)s
+            %(banre-ssh-auth-root)s
+
+ignoreregex =
+```
+
+
+#### Facultatif (ici sur un réseau local) : ignorer certaines IP
+
+```conf
+ignoreip = 127.0.0.1/8 ::1 192.168.0.0/24
+```
+
+
+### Redémarrage
+
 ```bash
 sudo systemctl restart fail2ban
 sudo systemctl status fail2ban
@@ -87,7 +158,7 @@ backend = systemd
 
 ## Blocage du port 22 et bannissement automatique
 
-[Bannissement de toute connection à un port donné](../securisation/ban-connection-port.html)
+[Bannissement de toute connection à un port donné](../securisation/ban-connection-port.md)
 
 
 

+ 20 - 2
gnu-linux/serveurs/installation/reverse-proxy.md

@@ -2,7 +2,9 @@
 
 # Introduction
 
-Voir [Infrastructure du réseau sur serveur Kimsufi OVH](../proxmox/infrastructure-ovh.html)
+Voir [Infrastructure du réseau sur serveur Kimsufi OVH](../proxmox/infrastructure-ovh.md)
+
+POUR GÉRER CORRECTEMENT LES CHAMPS DNS: [Gestion du DNS OVH](dns-ovh.md)
 
 # Installation letsencrypt
 
@@ -207,8 +209,24 @@ Select the appropriate numbers separated by commas and/or spaces, or leave input
 blank to select all options shown (Enter 'c' to cancel): 
 ```
 
-Une fois que c'est près, normalement tout devrait fonctionner
+Une fois que c'est prêt, normalement tout devrait fonctionner
+
+# Synchronisation des certificats
+
+Pour permettre à OnlyOffice de fonctionner avec Nextcloud, on doit avoir des certificats.
+
+Je choisis d'utiliser les mêmes entre mes VM. Pour ça => synchronisation
 
+## Sur le reverse proxy
+
+```
+sudo adduser --shell /usr/sbin/nologin copycert
+sudo setfacl -R -m u:copycert:rX /etc/letsencrypt/live/
+sudo setfacl -d -R -m u:copycert:rX /etc/letsencrypt/live/
+sudo setfacl -R -m u:copycert:rX /etc/letsencrypt/archive/
+sudo setfacl -d -R -m u:copycert:rX /etc/letsencrypt/archive/
+sudo apt install rsync
+```
 
 # Dépannage{#depannage}
 

+ 4 - 16
gnu-linux/serveurs/installation/serveur-deux-disques.md

@@ -193,8 +193,8 @@ cryptsetup open --type plain --cipher aes-xts-plain64 --key-file /dev/urandom /d
 cryptsetup open --type plain --cipher aes-xts-plain64 --key-file /dev/urandom /dev/sdb2 cryptswapb
 mkswap /dev/mapper/cryptswapa 
 mkswap /dev/mapper/cryptswapb
-swapon /dev/mapper/cryptswapb
 swapon /dev/mapper/cryptswapa
+swapon /dev/mapper/cryptswapb
 ```
 
 # Configuration du RAID
@@ -291,16 +291,10 @@ apt update && apt install -y cryptsetup lvm2 debian-keyring
 
 ## Création des deux Physical Volumes
 
-Création sur la partition 3 du premier disque:
-
-```
-pvcreate /dev/sda3
-```
-
-Création sur la partition 2 du second disque:
+Création sur la partition chiffrée:
 
 ```
-pvcreate /dev/sdb2
+pvcreate /dev/mapper/raid_crypt
 ```
 
 
@@ -309,13 +303,7 @@ pvcreate /dev/sdb2
 Création du VG
 
 ```bash
-vgcreate debian-zeta-vg /dev/sda3
-```
-
-Extension du VG
-
-```bash
-vgextend debian-zeta-vg /dev/sdb2
+vgcreate debian-zeta-vg /dev/mapper/raid_crypt
 ```
 
 Vérification (ici le VG doit faire 3,6To):

+ 68 - 0
gnu-linux/serveurs/nas-rockpi-penta.md

@@ -142,3 +142,71 @@ C'est le petit switch placé juste sous les ports USB3
 On le positionne vers la gauche pour activer le mode hôte et permettre la connection de périphériques supplémentaires.
 
 https://wiki.radxa.com/Rockpi4/dev/usb-host-and-otg-switch-on-rock-pi-4
+
+
+### Forcer le Quirk USB storage
+
+:::warning
+
+Sans doute inutile après avoir fait ce qu'il faut ci-dessus
+
+:::
+
+Forcer un quirk usb-storage (contourne certains bugs firmware).
+
+Ajoute dans `/etc/modprobe.d/usb-storage-quirks.conf` :
+
+```
+options usb-storage quirks=0480:a202:u
+```
+
+
+
+# Configuration des disques
+
+## Disques
+
+### Seagate ST4000DM004-2U91
+
+Disque le plus récent, acheté en septembre 2025
+
+```
+Disk /dev/sdc: 3.64 TiB, 4000787030016 bytes, 7814037168 sectors
+Disk model: ST4000DM004-2U91
+Disk identifier: 1801B684-4A0B-1E4D-A16D-8558B8397CEE
+```
+
+#### Test du 25/11/2025
+
+```bash
+$ sudo smartctl -l selftest /dev/sda
+smartctl 7.3 2022-02-28 r5338 [aarch64-linux-6.1.115-4-rk2501] (local build)
+Copyright (C) 2002-22, Bruce Allen, Christian Franke, www.smartmontools.org
+
+=== START OF READ SMART DATA SECTION ===
+SMART Self-test log structure revision number 1
+Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
+# 1  Extended offline    Self-test routine in progress 90%      1596         -
+# 2  Extended offline    Completed without error       00%      1579         -
+
+```
+
+
+### Seagate ST4000DM000-1F21
+
+Disque seagate le plus ancien, acheté en ???
+
+
+```bash
+$ sudo smartctl -l selftest /dev/sdc
+smartctl 7.3 2022-02-28 r5338 [aarch64-linux-6.1.115-4-rk2501] (local build)
+Copyright (C) 2002-22, Bruce Allen, Christian Franke, www.smartmontools.org
+
+=== START OF READ SMART DATA SECTION ===
+SMART Self-test log structure revision number 1
+Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
+# 1  Extended offline    Completed without error       00%     41131         -
+# 2  Extended offline    Interrupted (host reset)      00%     41123         -
+```
+
+

+ 96 - 0
gnu-linux/serveurs/nextcloud.md

@@ -1,5 +1,60 @@
 % NextCloud
 
+# Configuration
+
+## NGINX
+
+Sur nu, dans: `/etc/nginx/conf.d/cloud.aezi.fr.conf`
+
+```nginx
+server {
+    listen 443 ssl;
+    server_name cloud.aezi.fr;
+
+    add_header Strict-Transport-Security "max-age=15552000; includeSubDomains" always;
+}
+```
+
+
+```
+sudo tee /etc/nginx/conf.d/cloud.aezi.fr.d/mimetypes.conf > /dev/null <<'EOF'
+# Set .mjs MIME types
+# Either include it in the default mime.types list
+# or include you can include that list explicitly and add the file extension
+# and include that list explicitly or add the file extension
+# only for Nextcloud like below:
+include mime.types;
+types {
+    text/javascript mjs;
+}
+EOF
+```
+
+
+## PHP
+
+Même s'il est en lecture seule on modifie nextcloud.conf
+
+```
+nano /etc/php/8.3/fpm/pool.d/nextcloud.conf 
+```
+
+Modifier les lignes suivantes:
+
+```
+php_value[opcache.interned_strings_buffer]=128
+
+php_value[opcache.memory_consumption]=512 
+```
+
+Et redémarrer php-fpm:
+
+```
+sudo yunohost service restart php8.3-fpm
+```
+
+
+# Webdav
 
 Sur le client Webdav
 
@@ -27,3 +82,44 @@ Y placer le texte suivant:
 client_max_body_size 10G;
 ```
 
+
+# Emplacements de stockage
+
+## Chemins système
+
+```
+/home/yunohost.app/nextcloud/data/laurent
+/home/yunohost.multimedia/laurent/
+```
+
+## Quota différent affiché différent du réel
+
+[User management &mdash; Nextcloud latest Administration Manual latest documentation](https://docs.nextcloud.com/server/latest/admin_manual/configuration_user/user_configuration.html#setting-storage-quotas)
+
+### interface d'administration de Nextcloud
+
+permet de gérer les stockages externes. C'est dans menu utilisateur Paramètres d'administration > Administration > Stockage Externe et il est possible d'y définir les emplacements de stockage commun (non inclus dans le quota) et/ou de les supprimer
+
+
+# Keepass
+
+Utiliser de préférence webdav
+
+[How to sync using Nextcloud | KeePassium](https://support.keepassium.com/kb/sync-nextcloud/)
+
+
+# Config supplémentaire
+
+Dans `/var/www/nextcloud/config/config.php`
+
+```
+  'default_phone_region' => 'FR',
+```
+
+# Erreurs rencontrées
+
+## Configuration LDAP inactive
+
+[Message erreur MAJ Nextcloud 30.0.4 - Support - YunoHost Forum](https://forum.yunohost.org/t/message-erreur-maj-nextcloud-30-0-4/34049)
+
+

+ 47 - 0
gnu-linux/serveurs/proxmox/cluster-modification-ip.md

@@ -0,0 +1,47 @@
+% Modification d'adresses IP dans un serveur Proxmox
+
+
+------
+
+
+------
+
+Comment modifier les IP de nœuds sur un cluster Proxmox:
+
+1. Bien lire les deux ressources ci-dessous
+2. Réaliser les opérations décrites dans la seconde en suivant les instructions décrites dans la première
+
+
+```
+on each node one by one :
+1. Change IP assigned to vmbr0, add network settings for the new interface so cluster can communicate.
+2. FAIRE CHAQUE OPERATION DÉCRITE CI-DESSOUS with the new ip, and increment the config_version setting
+3. edit the /etc/hosts with the new ip value
+4. Reboot the node
+5. wait for the node to reboot and perform next node, until end of nodes.
+```
+
+```bash
+# stop corosync and pmxcfs on all nodes
+$ systemctl stop corosync pve-cluster
+
+# start pmxcfs in local mode on all nodes
+$ pmxcfs -l
+
+# put correct corosync config into local pmxcfs and corosync config dir (make sure to bump the 'config_version' inside the config file)
+$ cp correct_corosync.conf /etc/pve/corosync.conf
+$ cp correct_corosync.conf /etc/corosync/corosync.conf
+
+# kill local pmxcfs
+$ killall pmxcfs
+
+# start corosync and pmxcfs again
+$ systemctl start pve-cluster corosync
+
+# check status
+$ journalctl --since '-5min' -u pve-cluster -u corosync
+$ pvecm status
+```
+
+1. [Made mistake in corosync.conf; now cannot edit | Proxmox Support Forum](https://forum.proxmox.com/threads/made-mistake-in-corosync-conf-now-cannot-edit.77173/post-342983)
+2. [Change Cluster Nodes IP Addresses](https://forum.proxmox.com/threads/change-cluster-nodes-ip-addresses.33406/post-321731)

+ 1 - 0
gnu-linux/serveurs/proxmox/infrastructure-ovh.md

@@ -17,6 +17,7 @@ Aide: [Architecture de services avec Proxmox sur un serveur kimsufi - Vincent Di
 | yunohost nu      | 103   | 10.1.0.14      |
 |                  |       | 10.1.0.        |
 | web-gestion      | 104   | 10.1.0.22      |
+| web-hebergement  | 201   | 10.1.0.23      |
 | bastion          | 105   | 10.1.0.11      |
 | tranmissionmat   | 110   | 10.1.0.110     |
 | development-vm   | 801   | 10.1.0.81      |

+ 76 - 1
gnu-linux/serveurs/securisation/bastion.md

@@ -1,6 +1,78 @@
 % Bastion
 
-# Installation
+# Installation sur Raspberry-PI3 rpi3 maison
+
+## Mises à jour automatiques
+
+[How to Configure Unattended Upgrades on Debian 12/11/10 Linux - LinuxCapable](https://linuxcapable.com/how-to-configure-unattended-upgrades-on-debian-linux/)
+
+```bash
+sudo apt update && sudo apt upgrade
+sudo apt install unattended-upgrades
+sudo apt install apt-config-auto-update
+sudo unattended-upgrades --dry-run --debug
+systemctl status unattended-upgrades
+less /etc/apt/apt.conf.d/50unattended-upgrades 
+sudo nano /etc/apt/apt.conf.d/50unattended-upgrades 
+```
+
+## The Bastion OVH
+
+[Basic Installation &mdash; The Bastion 3.22.00 documentation](https://ovh.github.io/the-bastion/installation/basic.html)
+
+
+### Création de l'utilisateur superviseur `supv`
+
+
+```bash
+/opt/bastion/bin/admin/setup-first-admin-account.sh supv auto
+```
+
+### Finalisation de l'installation
+
+[Advanced Installation &mdash; The Bastion 3.22.00 documentation](https://ovh.github.io/the-bastion/installation/advanced.html)
+
+#### Modification de la configuration du backup
+
+Édition du fichier `/etc/bastion/osh-backup-acl-keys.conf`
+
+Après avoir créé les clés, on lance les commandes suivantes et on place les valeurs récupérées dans le champ du fichier ci-dessus correspondant:
+
+```bash
+gpg --list-keys
+```
+
+On récupère la valeur (ici `DD8A5D59EDBD3259B66D6B8B8B8B8B8B8B8B8B8`) que l'on placera dans `GPGKEYS`
+
+```
+gpg: checking the trustdb
+gpg: marginals needed: 3  completes needed: 1  trust model: pgp
+gpg: depth: 0  valid:   2  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 2u
+/root/.gnupg/pubring.kbx
+------------------------
+pub   ed25519 2025-10-21 [SC]
+      CECECECECECECECECECECECECECECECECECECE
+uid           [ultimate] Bastion signing key ed25519 <root@rpi3>
+
+pub   ed25519 2025-10-21 [SC]
+      DD8A5D59EDBD3259B66D6B8B8B8B8B8B8B8B8B8
+uid           [ultimate] Laurent HUBERT <lauhub@gmail.com>
+sub   cv25519 2025-10-21 [E]
+sub   cv25519 2025-10-21 [E]
+```
+
+Idem pour `gpg --list-secret-keys` 
+
+```
+/root/.gnupg/pubring.kbx
+------------------------
+sec   ed25519 2025-10-21 [SC]
+      CECECECECECECECECECECECECECECECECECECE
+uid           [ultimate] Bastion signing key ed25519 <root@rpi3>
+```
+
+
+# Installation sur ecaz
 
 Installation en cours: Devuan
 
@@ -13,6 +85,9 @@ ssh bastion
 - [set up a ssh tunnel only user for ssh proxy jump · GitHub](https://gist.github.com/smoser/3e9430c51e23e0c0d16c359a2ca668ae)
 - [How to restrict a jump user (into openSSH jumpbox) to only SSH to another server? - Unix & Linux Stack Exchange](https://unix.stackexchange.com/questions/691514/how-to-restrict-a-jump-user-into-openssh-jumpbox-to-only-ssh-to-another-server)
 - [unix - Allow user to set up an SSH tunnel, but nothing else - Stack Overflow](https://stackoverflow.com/questions/8021/allow-user-to-set-up-an-ssh-tunnel-but-nothing-else)
+- [Building a Jump Host | SSH Handbook](https://web.archive.org/web/20250615224631/https://www.sshhandbook.com/building-a-jump-host/)
+- 
+
 
 ```bash
 lauhub@ecaz:~$ sudo -u mat nano /home/mat/.bashrc

+ 18 - 0
gnu-linux/serveurs/securisation/proxy-jump.md

@@ -0,0 +1,18 @@
+% Configuration du proxy jump sur ecaz
+
+# Mise en place
+
+Référence: [set up a ssh tunnel only user for ssh proxy jump · GitHub](https://gist.github.com/smoser/3e9430c51e23e0c0d16c359a2ca668ae)
+
+## Configuration
+
+- Utilisateur : `nasjump`
+
+
+```bash
+JUMP_USER=nasjump
+sudo useradd "$JUMP_USER" "--home-dir=/home/$JUMP_USER" --create-home --shell=/bin/true
+
+```
+
+

+ 67 - 0
gnu-linux/serveurs/securisation/sauvegarde-yunohost.md

@@ -0,0 +1,67 @@
+% Sauvegarde Yunohost
+
+Voir proxy-jump.md
+
+
+
+
+```bash
+sudo yunohost user create backupmanager
+```
+
+Résultat
+
+```
+Full name: Backup Manager
+Password: ***
+Confirm password: *** 
+Available domains:
+- 13ft.aezi.fr
+- cloud.aezi.fr
+- excalidraw.aezi.fr
+- joplin.aezi.fr
+- notes.aezi.fr
+- nu.aezi.fr
+- wallabag.aezi.fr
+Domain to use for the user's email address (default: nu.aezi.fr):
+Info: The user 'backupmanager' will be added to the group 'all_users'
+Warning: ./50-wallabag2: line 20: ynh_exec_as_app: command not found
+Success! User created
+fullname: Backup Manager
+mail: backupmanager@nu.aezi.fr
+username: backupmanager
+```
+
+
+## Ajout groupe SSH
+
+[301 Moved Permanently](https://doc.yunohost.org/fr/admin/command_line)
+
+```
+sudo yunohost user permission add ssh backupmanager
+sudo yunohost user permission remove ssh backupmanager
+sudo yunohost user ssh add-key backupmanager "<clef publique>"
+```
+
+
+## DANGER: sécurité à vérifier
+
+```bash
+sudo setfacl -m u:backupmanager:rX /home/yunohost.*
+sudo setfacl -d -m u:backupmanager:rX /home/yunohost.*
+```
+
+
+
+
+## Références
+
+* [How to correctly proxy jump with SSH - Stack Overflow](https://stackoverflow.com/questions/76080637/how-to-correctly-proxy-jump-with-ssh)
+* [set up a ssh tunnel only user for ssh proxy jump](https://gist.github.com/smoser/3e9430c51e23e0c0d16c359a2ca668ae)
+* [🛠️ SSH et la ligne de commande | Yunohost](https://doc.yunohost.org/fr/admin/command_line)
+* [Sécurité | Yunohost](https://doc.yunohost.org/fr/admin/tutorials/security/)
+* [Add a GNU/Linux standard user to ssh.main - Discuss / Advanced use case - YunoHost Forum](https://forum.yunohost.org/t/add-a-gnu-linux-standard-user-to-ssh-main/35604)
+* [Yunohost setup SSH key access only for user account · 🇬🇧 Andrea Bortolotti | Bortox 🇪🇺](https://bortox.it/en/article/yunohost-ssh-allow-user-only/)
+* [yunohost-Sauvegarder son serveur et ses apps - YannStatic](https://static.rnmkcy.eu/2019/12/25/yunohost-Sauvegarder_son_serveur_et_ses_apps.html)
+
+

+ 89 - 0
gnu-linux/user-monitoring.md

@@ -0,0 +1,89 @@
+% Surveillance utilisateurs
+
+# Debian
+
+## Sous Trixie
+
+```bash
+sudo apt -s install wtmpdb lastlog2
+```
+
+
+# View utmp, wtmp and btmp files
+
+In Linux/Unix operating systems everything is logged some where. Most of the system logs are logged in to /var/log folder. This folder contains logs related to different services and applications. In this folder we have some files such as utmp, wtmp and btmp. These files contains all the details about login’s and logout’s which are from local as well as from remote systems and system status such as uptime etc.
+
+**Some info about utmp, wtmp and btmp**
+
+- **utmp** will give you complete picture of users logins at which terminals, logouts, system events and current status of the system, system boot time (used by _uptime_) etc.
+- **wtmp** gives historical data of utmp.
+- **btmp** records only failed login attempts.
+
+Normally when we try to view these files using cat command or vi editor they used to throw some junk characters and garbage values or in encrypted form or hex values. The output of these files when open with vi or cat command are shown below to show how wtmp file look when opened with vi.
+
+**This is totally unreadable, then how we can read this file?**
+
+We can read this file with only last command. last command is one of the important command which will give you how logged in, when they logged in and when they logged out etc info on the screen.
+
+**My last command output.**
+
+```
+root@linuxnix:~# last
+
+surendra pts/1 :0 Mon Oct 1 19:11 still logged in
+surendra pts/2 :0 Mon Oct 1 18:40 – 19:11 (00:30)
+reboot system boot 3.2.0-30-generic Mon Oct 1 18:39 – 19:12 (00:32)
+surendra pts/1 :0 Mon Oct 1 18:34 – 18:39 (00:05)
+reboot system boot 3.2.0-30-generic Mon Oct 1 18:33 – 18:39 (00:05)
+surendra pts/1 :0 Mon Oct 1 18:31 – 18:32 (00:01)
+reboot system boot 3.2.0-30-generic Mon Oct 1 18:30 – 18:39 (00:09)
+surendra pts/1 :0 Mon Oct 1 13:29 – 18:27 (04:57)
+root pts/1 203.217.144.12 Mon Oct 1 13:13 – 13:13 (00:00)
+reboot system boot 3.2.0-30-generic Mon Oct 1 12:08 – 18:29 (06:20)
+reboot system boot 3.2.0-30-generic Mon Oct 1 12:04 – 12:08 (00:03)
+surendra pts/1 :0 Mon Oct 1 10:34 – down (01:12)
+reboot system boot 3.2.0-30-generic Mon Oct 1 10:33 – 11:46 (01:12)
+```
+
+This last command display many details about user login/logout activity. The same command can be used to view wtmp, utmp and btmp files.
+
+**To open wtmp file and view it’s content use blow command**
+
+```bash
+last -f /var/log/wtmp
+```
+
+**To see still logged in users view utmp file use last command**
+
+```bash
+last -f /var/run/utmp
+```
+
+ **To view btmp file use same command**
+
+```bash
+last -f /var/log/btmp
+```
+
+Sample output of last -f wtmp command output.
+
+```bash
+last -f wtmp.1
+
+root pts/1 ae.ptr10.public. Sun Sep 30 13:01 – 13:11 (00:10)  
+surendra pts/1 :0 Sun Sep 30 09:23 – 10:55 (01:32)  
+reboot system boot 3.2.0-30-generic Sun Sep 30 07:36 – 20:12 (1+12:36)  
+reboot system boot 3.2.0-30-generic Sat Sep 29 21:56 – 01:19 (03:23)  
+surendra pts/1 :0 Sat Sep 29 09:36 – 14:37 (05:01)
+
+**<–output clipped here–>**  
+reboot system boot 3.2.0-30-generic Fri Sep 28 22:51 – 14:37 (15:46)  
+reboot system boot 3.2.0-30-generic Fri Sep 28 21:39 – 21:45 (00:05)  
+reboot system boot 3.2.0-29-generic Sat Sep 1 22:53 – 23:07 (00:14)
+
+wtmp.1 begins Sat Sep 1 18:28:10 2012
+```
+
+#
+
+Happy log file viewing..

Разница между файлами не показана из-за своего большого размера
+ 38 - 0
installation/ffmpeg.md


+ 14 - 0
installation/firefox/extensions-firefox.md

@@ -1,5 +1,19 @@
 % Extensions FIrefox
 
+## Moteur de recherche interne
+
+### Smart Bookmarks
+
+[Reddit - The heart of the internet](https://www.reddit.com/r/firefox/comments/fvcw96/query_bookmarks_smart_bookmarks_a_quick_guide/)
+
+### Extensions
+
+- [https://addons.mozilla.org/en-US/firefox/addon/search-tabs-bookmarks-history/?utm_source=chatgpt.com](https://addons.mozilla.org/en-US/firefox/addon/search-tabs-bookmarks-history)
+- à tester, plus technique  : [https://addons.mozilla.org/en-US/firefox/addon/advanced-library-search/](https://addons.mozilla.org/en-US/firefox/addon/advanced-library-search/)
+
+## Autres
+
+
 - adBlocker ultimate
 - Bookmark dupes
 - Copy selected tab info

+ 167 - 0
installation/homebrew+alternatives.md

@@ -0,0 +1,167 @@
+% Homebrew et alternatives
+
+# Question
+
+homebrew peut casser occasionnellement certains logiciels installés qui auparavant fonctionnaient (je pense notamment à ffmpeg qui peut être en conflit quand on le compile manuellement)
+
+Cependant, ne pas le mettre à jour pose d'autres soucis.
+
+Existe-t-il une solution qui permettrait d'isoler les unes des autres des "sets" d'installation pour permettre d'éviter que des outils tombent en panne tout en conservant une version à jour des autres outils ? 
+
+## Réponse
+
+
+Le problème que vous décrivez est inhérent à la conception de **Homebrew** : c'est un gestionnaire de paquets de type "rolling release" qui s'appuie sur des liens symboliques vers une structure de bibliothèques partagées unique (`/opt/homebrew/lib` ou `/usr/local/lib`). Lorsqu'une bibliothèque est mise à jour pour un outil A, elle peut briser l'outil B qui dépendait de l'ancienne version.
+
+Voici les solutions techniques pour isoler des environnements et éviter ces ruptures.
+
+---
+
+## 1. Nix (La solution la plus rigoureuse)
+Nix est un gestionnaire de paquets purement fonctionnel. Contrairement à Homebrew, il n'installe pas les fichiers dans des dossiers standards. Chaque paquet et chaque version sont stockés dans un répertoire unique basé sur un hash de toutes ses dépendances (ex: `/nix/store/v24...-ffmpeg-6.0`).
+
+* **Avantage :** Isolation totale. Deux versions d'un même logiciel ou de ses dépendances peuvent coexister sans jamais interférer.
+* **Fonctionnement :** Vous pouvez créer un fichier `shell.nix` par projet ou par "set" d'outils. En entrant dans ce shell, seules les versions spécifiées sont accessibles.
+
+## 2. Conteneurisation (Docker / Podman)
+Pour des outils complexes comme `ffmpeg` qui dépendent de nombreuses bibliothèques système ou de compilations manuelles, le conteneur est la méthode d'isolation la plus étanche.
+
+* **Avantage :** Vous figez non seulement l'outil, mais tout l'OS de base et les bibliothèques (`glibc`, etc.).
+* **Usage :** Créer un alias dans votre shell : `alias ffmpeg='docker run --rm -v $(pwd):$(pwd) -w $(pwd) jrottenberg/ffmpeg'`. Cela rend l'outil "portable" et indépendant des mises à jour de macOS ou de Homebrew.
+
+
+
+## 3. Mise / Asdf (Gestionnaires de versions)
+`mise` (ou son prédécesseur `asdf`) permet d'installer plusieurs versions d'un même outil et de basculer entre elles selon le répertoire où vous vous trouvez.
+
+* **Avantage :** Plus léger que Docker, mieux intégré au shell que Nix pour un débutant.
+* **Usage :** Très efficace pour les langages (Node, Python, Rust) et certains outils CLI. Cependant, il ne gère pas toujours parfaitement les dépendances système partagées (comme les bibliothèques `.dylib` dont `ffmpeg` a besoin).
+
+## 4. Homebrew : Le "Pinning" (Solution palliative)
+Si vous souhaitez rester sur Homebrew, vous pouvez "épingler" une version pour empêcher sa mise à jour lors d'un `brew upgrade`.
+
+* **Commande :** `brew pin ffmpeg`
+* **Faille :** C'est une solution fragile. Si une autre application que vous mettez à jour nécessite une version plus récente d'une dépendance commune à `ffmpeg`, Homebrew pourrait soit casser l'installation, soit refuser la mise à jour de l'autre application.
+
+---
+
+### Tableau comparatif
+
+| Solution | Niveau d'isolation | Complexité | Recommandation |
+| :--- | :--- | :--- | :--- |
+| **Nix** | Maximale | Élevée | Pour une gestion scientifique et reproductible. |
+| **Docker** | Maximale | Moyenne | Pour les outils avec des dépendances "lourdes" (`ffmpeg`). |
+| **Mise/Asdf** | Partielle | Faible | Pour les outils de développement (langages). |
+| **Brew Pin** | Nulle | Très faible | À éviter pour le long terme. |
+
+### Critique de votre approche actuelle
+Vouloir gérer des compilations manuelles au milieu d'un environnement géré par Homebrew est une erreur structurelle. Homebrew ne suit pas les fichiers que vous installez manuellement, ce qui provoque des conflits de liens lors des phases de `link` ou de `cleanup`. 
+
+**Ma recommandation :** Utilisez **Nix** pour vos besoins de rigueur scientifique et d'isolation, ou basculez vos outils critiques (ceux que vous compilez manuellement) dans des images **Docker** dédiées pour supprimer toute interaction avec les bibliothèques du système hôte.
+
+# Performance
+
+En matière de performance, la distinction entre Nix et Homebrew se joue sur trois tableaux : l'exécution binaire, le coût de l'isolation (chargement) et l'efficience de la gestion système (construction/disque).
+
+---
+
+## 1. Performance d'exécution (Runtime)
+Sur le plan du pur calcul CPU ou de la gestion mémoire, les performances sont **sensiblement identiques**. Les deux gestionnaires installent des binaires compilés (souvent avec les mêmes flags de compilation via LLVM/Clang sur macOS).
+
+Cependant, une nuance technique existe au niveau du **Dynamic Linking** (liage dynamique) :
+* **Homebrew :** Utilise les chemins standards de recherche de bibliothèques du système ou des chemins relatifs (`@rpath`). Le "loader" de l'OS doit parfois résoudre ces liens au lancement.
+* **Nix :** Utilise des chemins absolus vers le `/nix/store` inscrits directement dans le header du binaire via `RPATH`. 
+* **Impact :** La différence est négligeable (microsecondes), mais l'approche de Nix est plus déterministe. Le binaire Nix ne "cherche" jamais ses dépendances ; il sait exactement où elles sont sur le disque.
+
+## 2. Performance de construction et d'installation
+C'est ici que Homebrew est généralement perçu comme "plus rapide" pour l'utilisateur lambda, bien que Nix soit techniquement plus robuste.
+
+* **Évaluation des paquets :** Homebrew utilise des scripts Ruby relativement simples. Nix doit évaluer un langage de programmation fonctionnel complet pour calculer le "graphe de dérivation" (le plan de construction). Pour des environnements complexes, cette phase d'évaluation peut prendre plusieurs secondes.
+* **Mises à jour :** `brew update` met à jour un index global. Nix doit souvent réévaluer les expressions pour vérifier si l'état actuel correspond à l'état désiré.
+* **Binaires (Caches) :** Les deux disposent de binaires pré-compilés (Bottles pour Brew, Substitutes pour Nix). Si un binaire manque, Nix lancera une compilation locale isolée (sandbox), ce qui est plus coûteux en ressources mais garantit la reproductibilité.
+
+
+
+## 3. Empreinte disque et I/O
+Nix est nettement plus gourmand en ressources disque que Homebrew.
+
+* **Duplication :** Là où Homebrew écrase l'ancienne version par la nouvelle (sauf si on intervient manuellement), Nix conserve chaque version de chaque dépendance tant qu'elles ne sont pas explicitement supprimées et collectées par le "Garbage Collector" (`nix-collect-garbage`).
+* **Dédoublonnement :** Nix utilise des liens physiques (hard links) pour optimiser l'espace si deux versions partagent des fichiers identiques, mais l'empreinte globale reste supérieure à Homebrew.
+* **Vitesse du Shell :** L'utilisation de `nix-shell` ou `nix develop` introduit un délai au démarrage du terminal (le temps de configurer les variables d'environnement `$PATH` spécifiques), contrairement à Homebrew qui injecte tout de manière permanente dans `/opt/homebrew/bin`.
+
+---
+
+### Synthèse technique
+
+| Métrique | Homebrew | Nix | Analyse critique |
+| :--- | :--- | :--- | :--- |
+| **Vitesse d'exécution** | Native | Native | Équivalence quasi-totale. |
+| **Lancement d'outil** | Instantané | Léger délai (si via shell) | Avantage Homebrew pour l'usage interactif simple. |
+| **Installation** | Rapide (Bottles) | Variable (Évaluation Nix) | Nix est plus lent à cause de sa rigueur logique. |
+| **Espace Disque** | Optimisé | Élevé (Immutabilité) | Nix sacrifie le disque pour la fiabilité. |
+
+**Verdict :** Si vous cherchez la **performance de flux de travail** (ne jamais avoir un outil qui casse), Nix gagne car il élimine le temps perdu à réparer les dépendances brisées. Si vous cherchez la **performance système pure** (vitesse d'installation et économie d'espace), Homebrew est supérieur, au prix d'une fragilité structurelle importante.
+
+
+
+
+# Cohabitation
+
+
+
+Oui, faire cohabiter **Homebrew** et **Nix** est tout à fait possible et même assez courant chez les utilisateurs avancés. Ils utilisent des racines de fichiers distinctes (`/opt/homebrew` ou `/usr/local` pour Brew, et `/nix` pour Nix), ce qui empêche les collisions de fichiers bruts.
+
+Cependant, la cohabitation entre Homebrew et des **outils compilés manuellement** est beaucoup plus risquée si elle n'est pas strictement encadrée.
+
+---
+
+## 1. Cohabitation Nix / Homebrew
+C'est la solution la plus stable.
+* **Mécanisme :** Nix n'ajoute rien à votre `$PATH` global de manière permanente (sauf si vous le configurez ainsi). Vous pouvez utiliser Homebrew pour vos applications graphiques ou outils quotidiens, et Nix via un `nix-shell` pour vos environnements de calcul ou outils sensibles.
+* **Conflit potentiel :** Le seul risque est l'ordre dans la variable `$PATH`. Si un outil est présent dans les deux, le premier trouvé sera exécuté.
+* **Conseil :** Gardez Homebrew en priorité dans votre shell principal et n'appelez Nix que via des environnements isolés par projet.
+
+
+
+---
+
+## 2. Compilation manuelle : Le "Chemin Recommandé"
+Si vous compilez manuellement (par exemple `ffmpeg`) alors que Homebrew est installé, le risque majeur est le **shadowing** : votre compilateur peut lier par erreur des bibliothèques de Homebrew, créant une dépendance invisible qui cassera lors de la prochaine mise à jour de Brew.
+
+Pour isoler vos builds manuels, suivez ces règles strictes :
+
+### A. Utiliser un préfixe d'installation dédié
+Ne compilez jamais dans `/usr/local` ou `/opt/homebrew`. Utilisez un répertoire isolé par outil.
+* **Option de compilation :** `--prefix=/opt/custom/ffmpeg-version` (ou dans votre `$HOME`).
+
+### B. Isoler les flags de compilation
+Pour éviter que le compilateur n'aille "piocher" dans les dossiers de Homebrew, vous devez forcer les chemins de recherche.
+
+Lors du `./configure`, utilisez explicitement :
+```bash
+./configure --prefix=/opt/custom/ffmpeg \
+            --extra-cflags="-I/opt/custom/include" \
+            --extra-ldflags="-L/opt/custom/lib" \
+            --disable-shared --enable-static
+```
+*Note : Adaptez ces flags selon le logiciel (souvent `CFLAGS` et `LDFLAGS`).*
+
+### C. Privilégier le liage statique (`--enable-static`)
+C'est la réponse technique à votre problème. En compilant `ffmpeg` (ou autre) en **statique**, vous incluez toutes les bibliothèques nécessaires à l'intérieur du binaire final.
+* **Avantage :** Le binaire devient autonome. Vous pouvez mettre à jour Homebrew sans crainte ; votre `ffmpeg` manuel ne dépend plus des `.dylib` changeantes de `/opt/homebrew/lib`.
+* **Inconvénient :** Le binaire est plus lourd et ne bénéficie pas des mises à jour de sécurité automatiques des bibliothèques partagées.
+
+---
+
+## 3. Analyse critique de votre stratégie
+
+Le danger de votre approche est la **"pollution" de l'environnement de build**. Même avec un `--prefix` isolé, les outils de build (comme `pkg-config`) vont naturellement chercher des fichiers `.pc` dans les répertoires de Homebrew.
+
+**Faille majeure :** Si vous compilez `ffmpeg` manuellement en le liant dynamiquement à une version de `libx264` installée par Homebrew, votre `ffmpeg` manuel **cassera** dès que Homebrew passera à une version majeure de `x264` (changement de nom du fichier `.dylib`).
+
+### Ma recommandation technique :
+1.  **Pour la propreté :** Utilisez **Nix** pour tout ce qui nécessite de la stabilité. Nix gère le liage statique et l'isolation des dépendances de manière native et mathématique.
+2.  **Pour le spécifique :** Si vous devez absolument compiler manuellement, faites-le dans un **conteneur Docker** (image `alpine` ou `debian`), compilez en statique, puis extrayez le binaire final sur votre macOS. C'est la seule façon de garantir qu'aucune scorie de Homebrew ne s'est glissée dans votre build.
+
+Si vous persistez dans la compilation manuelle sur l'hôte, assurez-vous de vider temporairement votre `$PATH` de toute référence à Homebrew durant la phase de compilation.
+

+ 48 - 0
installation/migration-python-venv-list.txt

@@ -0,0 +1,48 @@
+/Users/lauhub/.local/pipx/shared/bin/python
+/Users/lauhub/.local/pipx/venvs/pdfminer-six/bin/python
+/Users/lauhub/.local/pipx/venvs/pdfminer/bin/python
+/Users/lauhub/.local/share/virtualenvs/matomooquiz-MrvwaMHW/bin/python
+/Users/lauhub/.virtualenvs/docling_env/bin/python
+/Users/lauhub/.virtualenvs/figure_latex/bin/python
+/Users/lauhub/.virtualenvs/generate_pdf/bin/python
+/Users/lauhub/.virtualenvs/gestion-formation-utils/bin/python
+/Users/lauhub/.virtualenvs/keepass/bin/python
+/Users/lauhub/.virtualenvs/maptoposter/bin/python
+/Users/lauhub/.virtualenvs/markitdown/bin/python
+/Users/lauhub/.virtualenvs/mlx-vlm/bin/python
+/Users/lauhub/.virtualenvs/pygpt/bin/python
+/Users/lauhub/.virtualenvs/pygpt311/bin/python
+/Users/lauhub/.virtualenvs/shazamio/bin/python
+/Users/lauhub/Documents/04_travail/AV-enseignement/Evaluations/Generation-Evaluation-AMC/python_env/bin/python
+/Users/lauhub/Documents/04_travail/AV-enseignement/Informatique/Programmation-algorithmique/workspace-python/DemoAlgorithmique/.venv/bin/python
+/Users/lauhub/Documents/04_travail/AV-enseignement/Informatique/Programmation-algorithmique/workspace-python/demo-guide-python/.venv/bin/python
+/Users/lauhub/Documents/04_travail/AV-enseignement/Informatique/Python/Workspace-Python/guide-python/workspace/DemoFichiers/bin/python
+/Users/lauhub/Documents/04_travail/AV-enseignement/Informatique/Python/Workspace-Python/guide-python/workspace/demo/pythonProject/.venv/bin/python
+/Users/lauhub/Documents/04_travail/AV-enseignement/Informatique/Python/Workspace-Python/guide-python/workspace/demo/python_env/bin/python
+/Users/lauhub/Documents/04_travail/AV-enseignement/Informatique/Python/Workspace-Python/guide-python/workspace/modules_python/bin/python
+/Users/lauhub/Documents/04_travail/AV-enseignement/Informatique/Python/Workspace-Python/guide-python/workspace/pycharm-projects/bin/python
+/Users/lauhub/Documents/04_travail/AV-enseignement/Informatique/Python/Workspace-Python/guide-python/workspace/tstn2-22-23/python_env/bin/python
+/Users/lauhub/Documents/04_travail/AV-enseignement/Informatique/Python/Workspace-Python/guide-python/workspace/vertego230076A/python_env/bin/python
+/Users/lauhub/Documents/04_travail/AV-enseignement/Informatique/Python/Workspace-Python/guide-python/workspace/zea/python_env/bin/python
+/Users/lauhub/Documents/04_travail/AV-enseignement/Informatique/Python/Workspace-Python/vertego-250209A/.venv/bin/python
+/Users/lauhub/Documents/04_travail/AV-enseignement/Informatique/Python/Workspace-Python/vertego-250209A/.venv/pythonProject1/bin/python
+/Users/lauhub/Documents/04_travail/AV-enseignement/Informatique/Python/Workspace-Python/vertego-250209A/.venv/reconnaissance/bin/python
+/Users/lauhub/Documents/04_travail/AV-enseignement/Informatique/Python/Workspace-Python/vertego230356A/__old_python_env/bin/python
+/Users/lauhub/Documents/04_travail/AV-enseignement/Informatique/Python/Workspace-Python/vertego230356A/python_env/bin/python
+/Users/lauhub/Documents/04_travail/AV-enseignement/Informatique/python_tools/bin/python
+/Users/lauhub/Documents/15_informatique/AV-Developpement/ap-message-extract (original)/venv/bin/python
+/Users/lauhub/Documents/15_informatique/AV-Developpement/ap-message-extract/venv/bin/python
+/Users/lauhub/Documents/15_informatique/AV-Developpement/calendar-utils/pythonProject/.venv/bin/python
+/Users/lauhub/Documents/15_informatique/AV-Developpement/gestion-formation-utils/.venv/bin/python
+/Users/lauhub/Documents/15_informatique/AV-Developpement/pdf_info_extractor/python_env/bin/python
+/Users/lauhub/Documents/15_informatique/AV-Developpement/python/pycharm-venv/bin/python
+/Users/lauhub/Documents/15_informatique/AV-Developpement/spotify-utils/pythonProject1/.venv/bin/python
+/Users/lauhub/Documents/15_informatique/AV-Developpement/thunderbird-utils/ThunderbirdPyControl/.venv/bin/python
+/Users/lauhub/Documents/15_informatique/installation/ansible-keepass-installation/venv-nekmo-ansible-keepass/bin/python
+/Users/lauhub/Documents/15_informatique/installation/ansible-keepass-installation/venv/bin/python
+/Users/lauhub/Documents/15_informatique/installation/mlx-vlm/mlxvlm/bin/python
+/Users/lauhub/Documents/15_informatique/installation/pytorch/env/bin/python
+/Users/lauhub/Documents/15_informatique/installation/scribd-downloader/venv/bin/python
+/Users/lauhub/Documents/15_informatique/web/kimsufi-crawler/venv/bin/python
+/Users/lauhub/Documents/15_informatique/web/ovh-availabilities/venv/bin/python
+/Users/lauhub/Library/Application Support/krita/ai_diffusion/server/venv/bin/python

+ 33 - 0
installation/migration-python-venv.md

@@ -0,0 +1,33 @@
+% Migration des venv vers une nouvelle version de python
+
+```bash
+find /Users/lauhub/Documents/ -iname python -a -type l > migration-python-venv-list.txt
+
+
+while read f ; do echo $f ; done < migration-python-venv-list.txt
+while read f ; do echo ">>> $f" ; ls -l "$(dirname "$f")"/python* ; done < migration-python-venv-list.txt
+```
+
+```bash
+while read f 
+do 
+  echo ">>> $f"
+  cd "$(dirname "$f")"
+  for plink in python* 
+  do
+    if [[ $plink =~ python3\...$ ]]
+    then
+      target_sub_version=$(plink#*python3\.)
+      print target_sub_version=$target_sub_version
+    fi
+    ptarget=$(readlink $plink)
+    if [[ "$ptarget" =~ ^/usr/local/ ]] ; then
+      rm "$plink"
+      newtarget=/opt/homebrew/bin/python/   
+    fi
+  done
+  cd -
+done < migration-python-venv-list.txt
+
+```
+

+ 5 - 0
installation/pycharm-projects.md

@@ -0,0 +1,5 @@
+/Users/lauhub/Documents/04_travail/AV-enseignement/Informatique/Python/Workspace-Python/vertego230356A
+/Users/lauhub/Documents/04_travail/AV-enseignement/Evaluations/Generation-Evaluation-AMC
+/Users/lauhub/Documents/15_informatique/AV-Developpement/calendar-utils/pythonProject
+
+

+ 31 - 0
installation/venv-python.md

@@ -22,4 +22,35 @@ Ajouter le chemin vers le python qui est dans le bin du venv dans le hashbang
 #!/Users/lauhub/.virtualenvs/figure_latex/bin/python
 ```
 
+Ou:
 
+```bash
+echo "#!$(which python)" >> nouveau_fichier_executable
+```
+
+## Créer le `venv`
+
+```bash
+mkvirtualenv <NOM DU VENV>
+```
+
+## Lister les `venv`s
+
+```bash
+lsvirtualenv <NOM DU VENV>
+```
+
+
+## Utiliser le `venv`
+
+
+```bash
+workon <NOM DU VENV>
+```
+
+## Quitter le `venv`
+
+
+```bash
+deactivate
+```

+ 11 - 0
organisation-technique/maison.md

@@ -0,0 +1,11 @@
+% Maison
+
+# Redirection de port Archer C5
+
+| ID | Service Port | Internal Port | IP Address     | Protocol 	|
+|----|--------------|---------------|----------------|--------------|
+| 1	 | 2224	        | 22	        |  192.168.0.15	 | ALL	        |
+| 2	 | 2223	        | 22	        |  192.168.0.10	 | ALL	        |
+| 3	 | 2246	        | 22	        |  192.168.0.146 | TCP	        |
+| 4	 | 2222	        | 22	        |  192.168.0.11	 | ALL	        |
+

+ 0 - 0
organisation-technique/services.md


Некоторые файлы не были показаны из-за большого количества измененных файлов