From c24a564510aa6e7db524fa33c5b88d193955b82f Mon Sep 17 00:00:00 2001 From: greg Date: Sat, 9 Nov 2024 14:09:40 +0100 Subject: [PATCH] ajout copy on code blocks --- docs/divers/cmd/backup.md | 12 +- docs/divers/cmd/bash-lists.md | 22 +-- docs/divers/cmd/chroot.md | 14 +- docs/divers/cmd/heredoc.md | 6 +- docs/divers/cmd/mount.md | 19 +-- docs/divers/cmd/nmcli.md | 8 +- docs/divers/cmd/raid.md | 48 +++--- docs/divers/cmd/read.md | 14 +- docs/divers/cmd/screen.md | 25 +-- docs/divers/cmd/ssh.md | 74 ++++++--- docs/divers/dev/create-minetest-mod.md | 20 ++- docs/divers/dev/unity_codium.md | 4 +- docs/divers/devops/cicd.md | 12 +- docs/divers/devops/dokku.md | 6 +- docs/divers/devops/git-api.md | 4 +- docs/divers/git/git.md | 56 +++---- docs/divers/ia/local-ollama.md | 16 +- docs/divers/internal/fingerprint.md | 14 +- docs/divers/internal/wa.md | 6 +- docs/divers/process-nwipe/nwipe.md | 8 +- docs/divers/server/install_pxe.md | 4 +- docs/divers/server/mysql.md | 91 ++++++----- ...e_on_debian-10_with_nginx_reverse-proxy.md | 150 +++++++++++------- docs/divers/server/nextcloud_update.md | 20 +-- docs/divers/server/postgres.md | 11 +- docs/divers/server/serveur_debian_smb_ssh.md | 32 ++-- docs/divers/server/wireshark.md | 8 +- ...e_on_debian-10_with_nginx_reverse-proxy.md | 32 ++-- mkdocs.yml | 1 + 29 files changed, 412 insertions(+), 325 deletions(-) diff --git a/docs/divers/cmd/backup.md b/docs/divers/cmd/backup.md index cab2a827..669066c1 100644 --- a/docs/divers/cmd/backup.md +++ b/docs/divers/cmd/backup.md @@ -1,30 +1,30 @@ # Sauvegarder des données 1. Lister les partitions: - ``` + ``` { .copy } lsblk ``` 2. Identifier la partition contenant les fichiers à sauvegarder 3. Monter la partition - ``` + ``` { .copy } mkdir /mnt/nom_du_dossier mount /dev/sdXy /mnt/nom_du_dossier ``` 4. Cibler le dossier à sauvegarder - ``` + ``` { .copy } ls /mnt/nom_du_dossier ``` 5. Créer le dossier de réception sur le serveur de backup: - ``` + ``` { .copy } ssh -p 5555 bellinuxien@192.168.1.75 mkdir /home/bellinuxien/BACKUPS/nom-de-dossier exit ``` 6. Copier le dossier utilisateur vers le dossier sur le serveur de backup: - ```bash + ``` { .copy } rsync -ah -e "ssh -p 5555" /mnt/nom_du_dossier bellinuxien@192.168.1.75:/home/bellinuxien/BACKUPS/nom_du_dossier/ --info=progress2 && sync ``` 7. Rapatrier les fichiers du serveur de backup vers une machine: - ```bash + ``` { .copy } rsync -ah -e "ssh -p 5555" bellinuxien@192.168.1.75:/home/bellinuxien/BACKUPS/nom_du_dossier/ /mnt/nom_du_dossier --info=progress2 && sync ``` diff --git a/docs/divers/cmd/bash-lists.md b/docs/divers/cmd/bash-lists.md index 9c655800..c0e5b17f 100644 --- a/docs/divers/cmd/bash-lists.md +++ b/docs/divers/cmd/bash-lists.md @@ -11,66 +11,66 @@ declare -a MA_LIST ### Modification de la liste 1. Ajout d'éléments - ``` + ``` { .copy } MA_LIST=(1er_element 2nd_element) MA_LIST+=("3eme élément avec des espaces") MA_LIST[3]="4eme élémént" ``` 2. Changement de valeur d'un élément - ``` + ``` { .copy } MA_LIST[0]="la nouvelle valeur qu'on met pour le 1er élément" MA_LIST[1]="la valeur pour le 2eme élément" ``` 3. Traitement sur l'ensemble des éléments - en utilisant la liste des index `${!MA_LIST[@]}`: - ``` + ``` { .copy } for i in "${!MA_LIST[@]}" ; do echo "index = $i - value = ${MA_LIST[i]}" done ``` - en utilisant la liste des valeurs `${MA_LIST[@]}` - ``` + ``` { .copy } for i in "${MA_LIST[@]}" ; do echo "value = ${i}" done ``` - nombre d'éléments: - ``` + ``` { .copy } echo "nombre d'éléments : ${MA_LIST[]} ``` ## Les tableaux (`associative arrays`) ### Création d'un tableau -``` +``` { .copy } declare -A MY_ARRAY ``` 1. Ajout d'éléments - ``` + ``` { .copy } MY_ARRAY=([clé1]=1er_element [clé2]=2nd_element) MY_ARRAY+=([clé3]="3eme élément avec des espaces") MY_ARRAY[dernière_clé]="4eme élément" ``` 2. Changement de valeur d'un élément - ``` + ``` { .copy } MY_ARRAY[clé1]="la nouvelle valeur qu'on met pour l'élément associé à `clé1`" ``` 3. Traitement sur l'ensemble des éléments - en utilisant la liste des clés `${!MY_ARRAY[@]}`: - ``` + ``` { .copy } for i in "${!MY_ARRAY[@]}" ; do echo "key = $i - value = ${MY_ARRAY[i]}" done ``` - en utilisant la liste des valeurs `${MY_ARRAY[@]}` - ``` + ``` { .copy } for i in "${MY_ARRAY[@]}" ; do echo "value = ${i}" done ``` - nombre d'éléments: - ``` + ``` { .copy } echo "nombre d'éléments : ${MY_ARRAY[]} ``` diff --git a/docs/divers/cmd/chroot.md b/docs/divers/cmd/chroot.md index e5b36c42..a783f3a7 100644 --- a/docs/divers/cmd/chroot.md +++ b/docs/divers/cmd/chroot.md @@ -11,12 +11,12 @@ De même, la commande peut permettre de travailler sur un système devenu inacce ## Utilisation :bulb: Repérer le disque du système d'exploitation que l'on souhaite "chrooter" -```bash +``` { .bash .copy } lsblk ``` - Monter les partitions nécessaires -```bash +``` { .bash .copy } sudo mount /dev/sda2 /mnt # exemple pour un disque sda2 sudo mount --bind /dev /mnt/dev @@ -26,19 +26,19 @@ sudo mount --bind /run /mnt/run ``` - Connexion: -```bash +``` { .bash .copy } sudo chroot /mnt ``` :warning: A partir de cette commande, toutes les autres commandes saisies s'éffectuent sur le système cible - Réparer le GRUB: -```bash +``` { .bash .copy } grub-install /dev/sda ``` - Réparer le système d'exploitation: -```bash +``` { .bash .copy } apt --fix-broken install dpkg --configure -a apt install -f @@ -46,12 +46,12 @@ apt install --reinstall apt ``` - Pour se déconnecter: -```bash +``` { .bash .copy } exit ``` - Démonter le système de fichier: -```bash +``` { .bash .copy } sudo umount -a /mnt ``` diff --git a/docs/divers/cmd/heredoc.md b/docs/divers/cmd/heredoc.md index eb973da7..aa1a6777 100644 --- a/docs/divers/cmd/heredoc.md +++ b/docs/divers/cmd/heredoc.md @@ -6,12 +6,12 @@ On utilise un **Here Tag**, qui est souvent `EOF`mais que vous pouvez nommer com #### Multi-lignes SANS Heredoc (avec `\n`) -``` +``` { .bash .copy } text=$'premièreligne\ndeuxièmeligne' ``` #### Utilisation dans une variable -``` +``` { .bash .copy } visiteur@domani:~$ MA_VARIABLE=$(cat < file.txt premiere ligne deuxième ligne diff --git a/docs/divers/cmd/mount.md b/docs/divers/cmd/mount.md index fe94b426..9df2ad13 100644 --- a/docs/divers/cmd/mount.md +++ b/docs/divers/cmd/mount.md @@ -4,7 +4,7 @@ ## Repérer les partitions disponibles Quelques commandes sont utiles pour connaître l'état des disques, des partitions et des points de montage -``` +``` { .bash .copy } sudo fdisk -l sudo df -H ``` @@ -19,38 +19,39 @@ On utilise la commande udiskctl qui nous permet de monter un disque externe ou u ### Installation -``` +``` { .bash .copy } sudo apt install udisks2 ``` ### Usage #### Monter une partition -``` +``` { .bash .copy } udiskct --mount -b /dev/sdb1 ``` #### Démonter une partition -``` +``` { .bash .copy } udiskctl unmount -b /dev/sdb1 ``` #### Éjecter proprement une clé usb -``` +``` { .bash .copy } udiskctl power-off -b /dev/sdb ``` ## Avec mount -Avec la commande mount, il est nécessaire de bien définir les options de montage +Avec la commande mount, il est nécessaire de bien définir les options de montage: -``` +``` { .bash .copy } sudo mkdir -p /mnt/cle sudo mount /dev/sdb1 /mnt/cle ``` -Pour démonter une clé -``` +Pour démonter une clé: + +``` { .bash .copy } sudo umount /mnt/cle ``` diff --git a/docs/divers/cmd/nmcli.md b/docs/divers/cmd/nmcli.md index dc243122..dc5dc293 100644 --- a/docs/divers/cmd/nmcli.md +++ b/docs/divers/cmd/nmcli.md @@ -1,15 +1,15 @@ # nmcli Scanner le reseau -```bash +``` { .bash .copy } nmcli d wifi ``` Se connecter au reseau pour la première fois -```bash +``` { .bash .copy } nmcli d wifi connect -a ``` Se connection à un reseau existant -```bash +``` { .bash .copy } nmcli con ``` Changer les serveurs DNS @@ -25,6 +25,6 @@ Méthode degeulasse Méthode clean /!\ À faire pour chaque point d'accès /!\ -```bash +``` { .bash .copy } nmcli con mod ipv4.dns "80.67.169.12 80.67.169.40" ipv4.ignore-auto-dns yes ``` diff --git a/docs/divers/cmd/raid.md b/docs/divers/cmd/raid.md index d9aad158..095687a5 100644 --- a/docs/divers/cmd/raid.md +++ b/docs/divers/cmd/raid.md @@ -24,13 +24,13 @@ Insérez deux disques durs dans votre ordinateur Linux, puis ouvrez une fenêtre de terminal. Exécutez la commande suivante pour vérifier le nom du dispositif. -```bash +``` { .bash .copy } sudo fdisk -l ``` ![img1](../../assets/raid/image1.png) -```bash +``` { .bash .copy } linux fdisk partition ``` @@ -38,7 +38,7 @@ Vous pouvez voir que le mien est /dev/sdb et /dev/sdc. - Ensuite, exécutez les deux commandes suivantes pour créer une nouvelle table de partition MBR sur les deux disques durs. (Remarque : cela effacera toutes les partitions et les données existantes de ces deux disques durs. Assurez-vous de sauvegarder vos données.) -```bash +``` { .bash .copy } sudo parted /dev/sdb mklabel msdos sudo parted /dev/sdc mklabel msdos ``` @@ -47,7 +47,7 @@ Vous pouvez créer une table de partition GPT en remplaçant "msdos" par "gpt", Ensuite, utilisez la commande fdisk pour créer une nouvelle partition sur chaque disque et formatez-les en tant que système de fichiers Linux autodétecté en RAID. Commencez par le faire sur /dev/sdb. -```bash +``` { .bash .copy } sudo fdisk /dev/sdb ``` @@ -73,25 +73,25 @@ Suivez les mêmes instructions pour créer une partition Linux autodétectée en [MDADM](https://fr.wikipedia.org/wiki/Mdadm) est utilisé pour gérer les dispositifs MD (multiples dispositifs), également connus sous le nom de RAID logiciel Linux. ??? note "Pour installer mdadm selon votre distribution de Linux" === "Debian/Ubuntu" - ```bash + ``` { .bash .copy } sudo apt install mdadm ``` === "CentOS/Redhat" - ```bash + ``` { .bash .copy } sudo yum install mdadm ``` === "SUSE" - ```bash + ``` { .bash .copy } sudo zypper install mdadm ``` === "Arch Linux" - ```bash + ``` { .bash .copy } sudo pacman -S mdadm ``` Examinons les deux dispositifs: -```bash +``` { .bash .copy } sudo mdadm --examine /dev/sdb /dev/sdc ``` @@ -99,7 +99,7 @@ sudo mdadm --examine /dev/sdb /dev/sdc Vous pouvez voir que les deux sont de type "fd" (Linux autodétecté en RAID). À ce stade, il n'y a pas de configuration RAID sur /dev/sdb1 et /dev/sdc1, ce qui peut être déduit avec cette commande: -```bash +``` { .bash .copy } sudo mdadm --examine /dev/sdb1 /dev/sdc1 ``` @@ -109,7 +109,7 @@ sudo mdadm --examine /dev/sdb1 /dev/sdc1 #### Exécutez la commande suivante pour créer un RAID 1. Le lecteur logique sera nommé /dev/md0. -```bash +``` { .bash .copy } sudo mdadm --create /dev/md0 --level=mirror --raid-devices=2 /dev/sdb1 /dev/sdc1 ``` @@ -119,7 +119,7 @@ sudo mdadm --create /dev/md0 --level=mirror --raid-devices=2 /dev/sdb1 /dev/sdc1 Maintenant, nous pouvons le vérifier avec : -```bash +``` { .bash .copy } cat /proc/mdstat ``` @@ -127,7 +127,7 @@ cat /proc/mdstat Vous pouvez voir que md0 est actif et qu'il s'agit d'une configuration RAID 1. Pour obtenir des informations plus détaillées sur /dev/md0, vous pouvez utiliser les commandes ci-dessous : -```bash +``` { .bash .copy } sudo mdadm --detail /dev/md0 ``` @@ -135,7 +135,7 @@ sudo mdadm --detail /dev/md0 Pour obtenir des informations détaillées sur chaque dispositif RAID, exécutez cette commande : -```bash +``` { .bash .copy } sudo mdadm --examine /dev/sdb1 /dev/sdc1 ``` @@ -145,20 +145,20 @@ sudo mdadm --examine /dev/sdb1 /dev/sdc1 #### Formatez-le en système de fichiers ext4. -```bash +``` { .bash .copy } sudo mkfs.ext4 /dev/md0 ``` #### Créer un point de montage /mnt/raid1 et montez le lecteur RAID 1 -```bash +``` { .bash .copy } sudo mkdir /mnt/raid1 sudo mount /dev/md0 /mnt/raid1 ``` Vous pouvez utiliser cette commande pour vérifier la quantité d'espace disque dont vous disposez. -```bash +``` { .bash .copy } df -h /mnt/raid1 ``` @@ -168,29 +168,29 @@ df -h /mnt/raid1 #### Sauvegarder notre configuration RAID1 avec la commande suivante: -```bash +``` { .bash .copy } sudo mdadm --detail --scan --verbose | sudo tee -a /etc/mdadm/mdadm.conf ``` Output: -```bash +``` { .bash .copy } ARRAY /dev/md/0 level=raid1 num-devices=2 metadata=1.2 spares=1 name=xenial:0 UUID=c7a2743d:f1e0d872:b2ad29cd:e2bee48c - devices=/dev/sdb1,/dev/sdc1 ``` !!! tip "Sur certaines distributions Linux telles que CentOS, le fichier de configuration pour mdadm se trouve dans /etc/mdadm/mdadm.conf. Vous devrez exécuter la commande suivante pour générer une nouvelle image initramfs après avoir exécuté la commande ci-dessus." -```bash +``` { .bash .copy } sudo update-initramfs -u ``` !!! note "Pour monter automatiquement le lecteur logique RAID 1 au démarrage, ajouter une entrée dans le fichier /etc/fstab" === "base" - ```bash + ``` { .bash .copy } /dev/md0 /mnt/raid1 ext4 defaults 0 0 ``` === "avançé (pour voir le volume RAID dans le gestionnaire de fichiers)" - ```bash + ``` { .bash .copy } /dev/md0 /mnt/raid1 ext4- defaults,x-gvfs-show 0 0 ``` @@ -198,7 +198,7 @@ sudo update-initramfs -u Si vous ne souhaitez plus utiliser le RAID, exécutez la commande suivante pour le supprimer. -```bash +``` { .bash .copy } sudo umount /mnt/raid1 sudo mdadm --remove /dev/md0 ``` @@ -206,7 +206,7 @@ sudo mdadm --remove /dev/md0 Ensuite, éditez le fichier mdadm.conf et commentez la définition RAID : !!! note "Editez le fichier /etc/fstab et commentez la ligne qui active le montage automatique du dispositif RAID" - ```bash + ``` { .bash .copy } #ARRAY /dev/md0 level=raid1 num-devices=2 metadata=1.2 spares=1 name=bionic:0 UUID=76c80bd0:6b1fe526:90807435:99030af9 # devices=/dev/sda1,/dev/sdb1 ``` diff --git a/docs/divers/cmd/read.md b/docs/divers/cmd/read.md index 52ba099c..6c1e9b1e 100644 --- a/docs/divers/cmd/read.md +++ b/docs/divers/cmd/read.md @@ -11,7 +11,7 @@ On utilise ensuite la valeur saisie stockée dans une variable. Utilisez [`HereDoc`](heredoc.md) pour afficher du contenu sur plusieurs lignes! #### Usage minimal -``` +``` { .bash .copy } visiteur@domani:~$ read mot visiteur@domani:~$ echo $REPLY @@ -19,7 +19,7 @@ mot ``` #### Définissez la variable qui contient le résultat, au lieu du défaut `$REPLY` -``` +``` { .bash .copy } visiteur@domani:~$ read MAREPONSE truc visiteur@domani:~$ echo $MAREPONSE @@ -27,7 +27,7 @@ truc ``` #### Utilisez ++space++, ou n'importe quel caractère pour délimiter la fin de la réponse -``` +``` { .bash .copy } visiteur@domani:~$ read '-d ' truc visiteur@domani:~$ @@ -36,20 +36,20 @@ trucAvisiteur@domani:~$ ``` #### Utiliser `read -s` pour garder secrète la saisie de l'utilisateur -``` +``` { .bash .copy } visiteur@domani:~$ read -s visiteur@domani:~$ echo $REPLY secret ``` #### Utilisez `read -p` pour afficher un message avant la saisie (pas de retour à la ligne) -``` +``` { .bash .copy } visiteur@domani:~$ read -p "Continuez ? (y/n) : " Continuez ? (y/n) : y ``` #### Répéter l'invite de saisie tant que la valeur n'est pas correcte -``` +``` { .bash .copy } until [[ $VALUE ]] ; do read -p "Enter value for $var : " VALUE; done ; @@ -57,7 +57,7 @@ Continuez ? (y/n) : y #### Avec une itération dans une liste -``` +``` { .bash .copy } for var in ${VAR_LIST[@]}; do VALUE="" until [[ $VALUE ]] ; do diff --git a/docs/divers/cmd/screen.md b/docs/divers/cmd/screen.md index 339b8499..ca6af256 100644 --- a/docs/divers/cmd/screen.md +++ b/docs/divers/cmd/screen.md @@ -1,25 +1,30 @@ # Screen 1.Installation - - sudo apt install screen +``` { .bash .copy } +sudo apt install screen +``` 2.Pour démarrer une nouvelle session: - - screen -S nom-de-la-session +``` { .bash .copy } +screen -S nom-de-la-session +``` 3.Pour laisser la session en arrière plan - +``` { .bash .copy } ++ctrl+a+d++ +``` 4.Pour lister les sessions existantes: - - screen -ls +``` { .bash .copy } +screen -ls +``` 5.Pour se reconnecter : +``` { .bash .copy } +screen -r nom-de-la-session +``` - screen -r nom-de-la-session - -**See [https://linuxize.com/post/how-to-use-linux-screen/](https://linuxize.com/post/how-to-use-linux-screen/)** +**See [https://linuxize.com/post/how-to-use-linux-screen/](https://linuxize.com/post/how-to-use-linux-screen/)** ** Pour splitter l'écran: [https://tomlee.co/2011/10/gnu-screen-splitting/](https://tomlee.co/2011/10/gnu-screen-splitting/)** \ No newline at end of file diff --git a/docs/divers/cmd/ssh.md b/docs/divers/cmd/ssh.md index 53633e51..d3262db8 100644 --- a/docs/divers/cmd/ssh.md +++ b/docs/divers/cmd/ssh.md @@ -2,53 +2,75 @@ ## Remove a key from known hosts: - ssh-keygen -f "/home/user/.ssh/known_hosts" -R "key_name" - +``` { .bash .copy } +ssh-keygen -f "/home/user/.ssh/known_hosts" -R "key_name" +``` + ## Create a key: - ssh-keygen -o -a 100 -t ed25519 -C user@email #create an ED25519 key - ssh-keygen -b 4096 -t rsa -C user@email #create a RSA key - ssh-add newkey #add newkey to your SSH agent - ssh-add * - ssh-add . - +``` { .bash .copy } +ssh-keygen -o -a 100 -t ed25519 -C user@email #create an ED25519 key +ssh-keygen -b 4096 -t rsa -C user@email #create a RSA key +ssh-add newkey #add newkey to your SSH agent +ssh-add * +ssh-add . +``` + ## List existing keys: - ssh-add -l - +``` { .bash .copy } +ssh-add -l +``` ## Display a key: - cat /home/user/.ssh/key_name - +``` { .bash .copy } +cat /home/user/.ssh/key_name +``` + ## Display a key fingerprint (with random art image): - ssh-keygen -lvf key_name +``` { .bash .copy } +ssh-keygen -lvf key_name +``` ## Enable SSH agent: - eval $(ssh-agent -s) +``` { .bash .copy } +eval $(ssh-agent -s) +``` ## Copy a key to a distant server: - ssh-copy-id user@server #Copy all keys that are registered in SSH agent - ssh-copy-id -i newkey.pub user@server\n #Copy newkey.pub - +``` { .bash .copy } +ssh-copy-id user@server #Copy all keys that are registered in SSH agent +ssh-copy-id -i newkey.pub user@server\n #Copy newkey.pub +``` + ## Remove a key: -Removing a key from a server can be done by editing your `/home/user/.ssh/authorized_keys` file. +??? note "Removing a key from a server" + It can be done by editing your `/home/user/.ssh/authorized_keys` file. + ``` { .bash .copy } + nano /home/$(whoami)/.ssh/authorized_keys + ``` + Type ++ctrl+k++ to delete the line ## Connect and copy from a different port number: - ssh -p port user@server - scp -P port file user@server:way/ - rsync -e ssh -avz /source server:/target - rsync -ave ssh server:/source /target - ssh-copy-id -i newkey.pub -p port user@server +``` { .bash .copy } +ssh -p port user@server +scp -P port file user@server:way/ +rsync -e ssh -avz /source server:/target +rsync -ave ssh server:/source /target +ssh-copy-id -i newkey.pub -p port user@server +``` ## Connect a distant server in your file browser under Linux using SFTP: Type the adress: - ssh://user@server:port - -*See also:* [Enabling a SSH key on a Synology NAS running DSM 6](https://gitlab.com/sakura-lain/ssh-synology-nas-dsm-6/) +``` { .bash .copy } +ssh://user@server:port +``` + +*Voir aussi:* [Enabling a SSH key on a Synology NAS running DSM 6](https://gitlab.com/sakura-lain/ssh-synology-nas-dsm-6/) diff --git a/docs/divers/dev/create-minetest-mod.md b/docs/divers/dev/create-minetest-mod.md index 4ae36631..a5cdc8dd 100644 --- a/docs/divers/dev/create-minetest-mod.md +++ b/docs/divers/dev/create-minetest-mod.md @@ -6,20 +6,22 @@ #### Pour passer à un utilisateur admin : -``` +``` { .bash .copy } su bellinuxien ``` #### installer flatpak pour avoir la dernière version de Minetest - sudo apt update - sudo apt install flatpak geany +``` { .bash .copy } +sudo apt update +sudo apt install flatpak geany +``` -#### On quitte l'admin avec CTRL+D +#### On quitte l'admin avec ++ctrl+d++ ### Partie 2: en tant qu'utilisateur -``` +``` { .bash .copy } flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo flatpak install flathub net.minetest.Minetest export MT=.var/app/net.minetest.Minetest/.minetest @@ -28,7 +30,7 @@ export MT=.var/app/net.minetest.Minetest/.minetest #### Installer le jeu du Garage Numérique ``` -cd $MT +``` { .bash .copy }cd $MT mkdir games cd games git clone https://gitlab.com/garagenum/minetest-lug9000 @@ -41,7 +43,8 @@ git clone https://gitlab.com/garagenum/minetest-lug9000 #### Cloner le projet sur son ordinateur Revenir dans le terminal et écrire: -``` + +``` { .bash .copy } cd $MT mkdir mods && cd mods git clone https://gitlab.com/mon-pseudo/monprojet.git @@ -49,7 +52,8 @@ cd monprojet ``` #### Créer le fichier init.lua -``` + +``` { .bash .copy } geany init.lua& ``` diff --git a/docs/divers/dev/unity_codium.md b/docs/divers/dev/unity_codium.md index 6ec81ed2..29488db5 100644 --- a/docs/divers/dev/unity_codium.md +++ b/docs/divers/dev/unity_codium.md @@ -18,7 +18,7 @@ Installer à partir des dépots officiels avec [apt](https://debian-facile.org/u ## Installer .Net -``` +``` { .bash .copy } wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb sudo apt-get update; \ @@ -29,7 +29,7 @@ sudo apt-get update; \ ## Installer Mono -``` +``` { .bash .copy } sudo apt install apt-transport-https dirmngr gnupg ca-certificates sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF echo "deb https://download.mono-project.com/repo/debian stable-buster main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list diff --git a/docs/divers/devops/cicd.md b/docs/divers/devops/cicd.md index 031fc655..f6d35451 100644 --- a/docs/divers/devops/cicd.md +++ b/docs/divers/devops/cicd.md @@ -19,7 +19,7 @@ #### Cliquer sur `Créer un dépôt`. #### Une fois le dépôt créé, le cloner sur votre machine locale : -```bash +``` { .bash .copy } git clone git@git.legaragenumerique.fr:gitea_username/nom_du_projet.git ``` @@ -54,7 +54,7 @@ git clone git@git.legaragenumerique.fr:gitea_username/nom_du_projet.git ``` #### créer la branch deploy et la pousser: -```bash +``` { .bash .copy } git checkout -b deploy git push -u origin deploy ``` @@ -64,7 +64,7 @@ git push -u origin deploy ## Mettre à jour son site - Une fois les modifications éffectuée sur vos fichiers, simplement pousser sur le serveur: -```bash +``` { .bash .copy } git add * git commit -m "maj fichier example.html" git push @@ -75,17 +75,17 @@ git push ## Retirer son site #### changer de branche (ne plus être sur la branche deploy): -```bash +``` { .bash .copy } git checkout main ``` #### supprimer la branch `deploy` locale: -```bash +``` { .bash .copy } git branch -d deploy ``` #### supprimer la branch `deploy` distante: -```bash +``` { .bash .copy } git push --delete origin deploy ``` diff --git a/docs/divers/devops/dokku.md b/docs/divers/devops/dokku.md index efbda776..c8bf9434 100644 --- a/docs/divers/devops/dokku.md +++ b/docs/divers/devops/dokku.md @@ -6,7 +6,7 @@ As of debian user we can install with apt -``` +``` { .bash .copy } # install prerequisites sudo apt update -qq >/dev/null sudo apt install -qq -y apt-transport-https @@ -52,7 +52,7 @@ Configure a public/private key pair for ssh root access. Run following commands as root: 1. As root, run `ssh-keygen` 2. Copy the key to authorized keys for dokku: - ``` + ``` { .bash .copy } cat ~/.ssh/id_rsa.pub |sshcommand acl-add dokku superuser ``` 3. In setup webpage at `http://`, paste content from `/root/.ssh/id_rsa.pub` (only the part with `ssh-rsa`). @@ -61,7 +61,7 @@ Run following commands as root: ## Create app -``` +``` { .bash .copy } git clone https://github.com/heroku/python-getting-started dokku apps:create python-getting-started dokku postgres:create djangodatabase diff --git a/docs/divers/devops/git-api.md b/docs/divers/devops/git-api.md index e251a850..c00cbd98 100644 --- a/docs/divers/devops/git-api.md +++ b/docs/divers/devops/git-api.md @@ -4,7 +4,7 @@ Ce guide permet d''utiliser l'API de Gitlab / Gitlab avec Bash pour récupérer ## Récupérer la dernière version d'un projet Github -``` +``` { .bash .copy } curl -s https://api.github.com/repos/[author]/[repository]/releases/latest |\ grep "browser_download_url.*deb" |\ cut -d : -f 2,3 |\ @@ -14,4 +14,4 @@ wget -qi - ## Récupérer la dernière version d'un projet Gitlab -``` +> A faire diff --git a/docs/divers/git/git.md b/docs/divers/git/git.md index f27cc110..1a882706 100644 --- a/docs/divers/git/git.md +++ b/docs/divers/git/git.md @@ -8,7 +8,7 @@ Il permet de stocker son code source en ligne pour y accéder de n'importe où e ## Installation -```bash +``` { .bash .copy } sudo apt install git -y ``` @@ -16,62 +16,62 @@ sudo apt install git -y - Cloner un dépôt distant sur sa machine locale: -```bash +``` { .bash .copy } git clone https://gitlab.com/mon-dépôt-distant.git ``` - Initialiser un dossier de projet pour le "pousser" en ligne: -```bash +``` { .bash .copy } cd mon-projet/ git init ``` - Ajouter des fichiers au suivi (pour les synchroniser vers un dépôt distant): -```bash +``` { .bash .copy } git add fichier1 fichier2 ``` - Créer un enregistrement (une version) du code avec un commentaire: -```bash +``` { .bash .copy } git commit -m "commentaire (exemple: modification du fichier1, ajout fonction test)" ``` - Pousser les changements vers le dépôt distant (Gitlab ou Github par exemple): -```bash +``` { .bash .copy } git push ``` - Changer de branche dans le projet: -```bash +``` { .bash .copy } git checkout nom-de-la-branche ``` - Créer une nouvelle branche à partir de la branche actuelle: -```bash +``` { .bash .copy } git branch nom-nouvelle-branche ``` - Pousser une branche nouvellement créée en local vers le dépôt distant: -```bash +``` { .bash .copy } git push origin nom-nouvelle-branche ``` - Effacer une branch locale: -```bash +``` { .bash .copy } git branch -d branche-a-effacer ``` - Effacer une branche du dépôt distant: -```bash +``` { .bash .copy } git push origin --delete branche-a-effacer ``` @@ -81,31 +81,31 @@ git push origin --delete branche-a-effacer - Cloner un dépôt distant sur sa machine locale: -```bash +``` { .bash .copy } git clone https://gitlab.com/mon-dépôt-distant.git ``` - Entrer dans le dossier du dépôt et modifier un fichier: -```bash +``` { .bash .copy } cd mon-dépôt-distant/ # modification sur un fichier ``` - Ajouter le fichier modifié au suivi: -```bash +``` { .bash .copy } git add fichier-modifié ``` - Créer un enregistrement de la modification -```bash +``` { .bash .copy } git commit -m "modif fichier-modifié" ``` - Pousser les changements sur le dépôt en ligne: -```bash +``` { .bash .copy } git push ``` @@ -113,14 +113,14 @@ git push - On entre dans le dossier et on l'initialise en tant que dépôt git: -```bash +``` { .bash .copy } cd mon-dépôt-local/ git init ``` - Ajouter tout les fichiers du dossier au suivi: -```bash +``` { .bash .copy } git add * # ou git add . @@ -128,19 +128,19 @@ git add . - Ajouter l'adresse du dépôt distant qui va recevoir le dépôt local: -```bash +``` { .bash .copy } git remote add origin https://gitlab.com/mon-user/mon-nouveau-dépôt.git ``` - Créer un enregistrement avec un commentaire: -```bash +``` { .bash .copy } git commit -m "premier push" ``` - Pousser le nouveau dépôt vers le dépôt distant en ligne: -```bash +``` { .bash .copy } git push origin main # ou le nom de la branche ``` @@ -148,7 +148,7 @@ git push origin main # ou le nom de la branche - Récupérer localement les changements du dépôt distant: -```bash +``` { .bash .copy } git pull ``` @@ -156,31 +156,31 @@ git pull - Savoir sur quelle branche on se trouve et les branches disponibles localement: -```bash +``` { .bash .copy } git branch ``` - Créer une nouvelle branche et basculer vers la nouvelle branche: -```bash +``` { .bash .copy } git checkout -b nom-nouvelle-branche ``` - Connaitre l'état du dépôt local: -```bash +``` { .bash .copy } git status ``` - Revenir à l'état après le git clone en éffaçant les chagements éffectués: -```bash +``` { .bash .copy } git reset --hard HEAD ``` - Visualiser les différences entre les fichiers originaux et les fichiers modifiés: -```bash +``` { .bash .copy } git diff ``` @@ -190,7 +190,7 @@ Pour éviter de faire des "git branch" pour savoir dans quelle branche on se tro ??? note "~/.bashrc" === "Ajouter à la fin" - ```bash + ``` { .bash .copy } git_branch() { git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/' } diff --git a/docs/divers/ia/local-ollama.md b/docs/divers/ia/local-ollama.md index 946298a8..af57402b 100644 --- a/docs/divers/ia/local-ollama.md +++ b/docs/divers/ia/local-ollama.md @@ -6,19 +6,19 @@ - Installer Ollama: -```bash +``` { .bash .copy } curl -fsSL https://ollama.com/install.sh | sh ``` - Télécharger le modèle: -```bash +``` { .bash .copy } ollama pull llama3:latest ``` - Lancer le modèle: -```bash +``` { .bash .copy } ollama run llama3:latest ``` @@ -35,7 +35,7 @@ ollama run llama3:latest ## Configuration ??? note "Editer le fichier config.json:" - ```bash + ``` { .bash .copy } { "models": [ { @@ -56,19 +56,19 @@ ollama run llama3:latest - Stopper le service: -```bash +``` { .bash .copy } sudo systemctl stop ollama ``` - Démarrer le service: -```bash +``` { .bash .copy } sudo systemctl start ollama ``` - Supprimer un modèle: -```bash +``` { .bash .copy } ollama rm ``` @@ -78,6 +78,6 @@ ollama rm - Télécharger un modèle: -```bash +``` { .bash .copy } ollama pull ``` diff --git a/docs/divers/internal/fingerprint.md b/docs/divers/internal/fingerprint.md index 8eddd289..9399406a 100644 --- a/docs/divers/internal/fingerprint.md +++ b/docs/divers/internal/fingerprint.md @@ -4,11 +4,11 @@ Par défaut, fprintd et libpam-fprintd sont les paquets faisant fonctionner les lecteurs d'empreintes sur Debian. Le support est très limité, mais il faut déjà commencer par là -```console +``` { .bash .copy } sudo apt-get install fprintd libpam-fprintd ``` Pour enregistrer l'empreinte : -```console +``` { .bash .copy } fprintd-enroll ``` Si on a de la chance, on a le message @@ -22,11 +22,11 @@ Impossible to enroll: GDBus.Error:net.reactivated.Fprint.Error.NoSuchDevice: No ## Installation de python-validity Python-validity est un projet pour élargir le support des lecteurs d'empreintes sur Linux. Pour l'installer sur Debian on passe par le PPA d'Ubuntu -```console +``` { .bash .copy } sudo add-apt-repository ppa:uunicorn/open-fprintd ``` Il va falloir modifier les dépôts, car ceux par défauts sont ceux de la toute dernière version d'Ubuntu -```console +``` { .bash .copy } # /etc/apt/sources.list.d/uunicorn-ubuntu-open-fprintd-mantic.list deb http://ppa.launchpad.net/uunicorn/open-fprintd/ubuntu focal main ``` @@ -37,14 +37,14 @@ Pour en savoir plus sur les noms de code d'Ubuntu (le nom de code est le premier mot, ex: Focal Fossa : focal) :warning: Keyserver fonctionnelle sur Debian 12.5 -```console +``` { .bash .copy } sudo apt update sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8D4C774BA6D18F90 apt update sudo apt-get install open-fprintd fprintd-clients python3-validity ``` Une fois installé on réessaye -```console +``` { .bash .copy } fprintd-enroll ``` Il faudra appuyer son doigt contre le capteur et le relever, jusqu'au message @@ -55,7 +55,7 @@ Si jamais l'erreur "No devices available" persiste, il n'y a quasiment aucune so ## Authentification pour sudo Par défaut, seulement la session est déblocable avec l'empreinte, pour utiliser sudo -```console +``` { .bash .copy } pam-auth-update ``` Il faudra cocher "Fingerprint authentification" et valider diff --git a/docs/divers/internal/wa.md b/docs/divers/internal/wa.md index 0c4fc1b6..bf7d1bef 100644 --- a/docs/divers/internal/wa.md +++ b/docs/divers/internal/wa.md @@ -15,7 +15,7 @@ To understand how to use this starter kit, follow the tutorial at [https://docs. ### Installation de Tiled (éditeur de map) - Ouvrir un terminal et copier les commandes suivantes: -```bash +``` { .bash .copy } git clone https://github.com/GregLebreton/adventure-map.git cd adventure-map ./install.sh @@ -29,13 +29,13 @@ tiled ### Installation de npm (server local) -```bash +``` { .bash .copy } sudo apt install npm -y ``` ### Utilisation -```bash +``` { .bash .copy } npm install npm run start ``` diff --git a/docs/divers/process-nwipe/nwipe.md b/docs/divers/process-nwipe/nwipe.md index 9fe4c491..5781d774 100644 --- a/docs/divers/process-nwipe/nwipe.md +++ b/docs/divers/process-nwipe/nwipe.md @@ -8,7 +8,7 @@ A l'origine, nwipe est un fork de la commande dwipe utilisée à l'origine par D ## INSTALLATION -```bash +``` { .bash .copy } sudo apt install nwipe ``` @@ -17,7 +17,7 @@ sudo apt install nwipe ## AFFICHER LES INFORMATIONS DISQUES Avant d'utiliser nwipe, il est important d'identifier quel disque nous allons effacer, pour ce faire entrez la commande ci-dessous: -```bash +``` { .bash .copy } lsblk ``` Cette commande permet d'obtenir la liste et les caractéristiques des disques et de leurs partitions. (La commande ne nécessite pas les droits administrateurs pour être exécutée). @@ -25,7 +25,7 @@ Cette commande permet d'obtenir la liste et les caractéristiques des disques et :warning: veillez bien à démonter les partitions si c'est le cas comme dans l'exemple ci-dessous. -```bash +``` { .bash .copy } sudo umount /home/user/DISK ``` @@ -34,7 +34,7 @@ sudo umount /home/user/DISK ## UTILISATION Pour ouvir Nwipe, utilisez la commande ci-dessous dans le terminal -```bash +``` { .bash .copy } sudo nwipe ``` diff --git a/docs/divers/server/install_pxe.md b/docs/divers/server/install_pxe.md index 67aa13ff..584382cb 100644 --- a/docs/divers/server/install_pxe.md +++ b/docs/divers/server/install_pxe.md @@ -2,7 +2,7 @@ ## Cloner le projet -``` +``` { .bash .copy } makayabou@domani:~$ git clone https://gitlab.com/garagenum/tools/linux/debian-customizer.git Clonage dans 'debian-customizer'... remote: Enumerating objects: 717, done. @@ -15,7 +15,7 @@ Résolution des deltas: 100% (858/858), fait. ## Exécuter le script -``` +``` { .bash .copy } cd debian-customizer/ sudo bash install-pxe-server.sh ``` diff --git a/docs/divers/server/mysql.md b/docs/divers/server/mysql.md index a17fb7ff..030e39b0 100644 --- a/docs/divers/server/mysql.md +++ b/docs/divers/server/mysql.md @@ -2,36 +2,41 @@ ## Setting up a password for root user just after install: +``` { .bash .copy } +sudo mysql -u root +``` - sudo mysql -u root - ## Resetting root password: +``` { .bash .copy } +sudo mysql_secure_installation + ``` - sudo mysql_secure_installation - ## Creating a user and granting privileges: - - CREATE USER 'user'@'localhost' IDENTIFIED BY 'password'; - GRANT ALL ON database_name.* TO 'user'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION; - FLUSH PRIVILEGES; - +``` { .sql .copy } +CREATE USER 'user'@'localhost' IDENTIFIED BY 'password'; +GRANT ALL ON database_name.* TO 'user'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION; +FLUSH PRIVILEGES; +``` Granting privileges on all databases: - - GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost'; - +``` { .sql .copy } +GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost'; +``` Changing a user's password: +``` { .sql .copy } +SET PASSWORD FOR 'user'@'localhost' = PASSWORD('password'); - SET PASSWORD FOR 'user'@'localhost' = PASSWORD('password'); - - ALTER USER 'user'@'localhost' IDENTIFIED BY 'password'; +ALTER USER 'user'@'localhost' IDENTIFIED BY 'password'; +``` Listing all users : - - SELECT User, Host, Password FROM mysql.user; +``` { .sql .copy } +SELECT User, Host, Password FROM mysql.user; +``` Changing a user's associated host (example from host % to host loclahost): - - UPDATE mysql.user SET Host='localhost' WHERE Host='%' AND User='user' +``` { .sql .copy } +UPDATE mysql.user SET Host='localhost' WHERE Host='%' AND User='user' +``` See also, on users management: @@ -49,47 +54,55 @@ See also, on users management: - [Changing MySQL user password](https://linuxacademy.com/blog/linux/changing-mysql-user-password/) ## Connecting to MySQL: +``` { .bash .copy } +sudo mysql +``` - sudo mysql - ## Creating a database: +``` { .sql .copy } +CREATE DATABASE lpic CHARACTER SET 'utf8'; #Beware of encoding +``` - CREATE DATABASE lpic CHARACTER SET 'utf8'; #Beware of encoding - ## Saving databases (basic level, assuming your user is root): +``` { .bash .copy } +mysqldump -u root -p password database > database.sql #insecure +MYSQL_PWD="password" mysqldump -u root database > database.sql #secure +MYSQL_PWD="password" mysqldump -u root --all-databases > database.sql +``` - mysqldump -u root -p password database > database.sql #insecure - MYSQL_PWD="password" mysqldump -u root database > database.sql #secure - MYSQL_PWD="password" mysqldump -u root --all-databases > database.sql - See also, for more advanced features): - [Utilisation de myssqldump](https://www.geek-directeur-technique.com/2017/07/17/utilisation-de-mysqldump) - [Guide de sauvegarde et restauration MySQL](https://www.memoinfo.fr/tutoriels-linux/guide-sauvegarde-restauration-mysql/) ## Deleting databases: +``` { .sql .copy } +DROP DATABASE [IF EXISTS] database_name; +``` - DROP DATABASE [IF EXISTS] database_name; - ## Checking a database encoding (default is UTF8): +``` { .sql .copy } +SELECT default_character_set_name FROM information_schema.SCHEMATA S WHERE schema_name = "database_name"; +``` - SELECT default_character_set_name FROM information_schema.SCHEMATA S WHERE schema_name = "database_name"; - See: [How to convert a MySQL database to UTF-8 encoding](https://www.a2hosting.es/kb/developer-corner/mysql/convert-mysql-database-utf-8) ## Checking the MySQL version: - - SELECT @@version; +``` { .sql .copy } +SELECT @@version; +``` ## Leaving the MySQL prompt: +``` { .sql .copy } +quit +``` - quit - ## Stopping/starting/restarting the service: - - sudo systemctl stop mysql - sudo service mysql stop - sudo /etc/init.d/mysqld stop +``` { .bash .copy } +sudo systemctl stop mysql +sudo service mysql stop +sudo /etc/init.d/mysqld stop +``` ## Courses and tutorials in French: diff --git a/docs/divers/server/nextcloud_docker-compose_on_debian-10_with_nginx_reverse-proxy.md b/docs/divers/server/nextcloud_docker-compose_on_debian-10_with_nginx_reverse-proxy.md index a691b02e..63af96f1 100644 --- a/docs/divers/server/nextcloud_docker-compose_on_debian-10_with_nginx_reverse-proxy.md +++ b/docs/divers/server/nextcloud_docker-compose_on_debian-10_with_nginx_reverse-proxy.md @@ -10,7 +10,7 @@ Ainsi nous pourrons utiliser le serveur de notre choix pour notre web-applicatio On installe Nginx à partir des dépôts Debian, de façon à avoir une version stable, avec l'apport des correctifs de sécurité, et qui ne sera jamais cassé par une modification du système. -``` +``` { .bash .copy } sudo apt update sudo apt upgrade sudo apt install nginx @@ -24,19 +24,19 @@ Dans votre navigateur, en tapant dabs la barre d'adresse `http://IP_DU_SERVEUR`, ### Installation des dépendances -``` +``` { .bash .copy } sudo apt update sudo apt -y install apt-transport-https ca-certificates curl gnupg2 software-properties-common ``` ### Installation de la clé du dépôt Docker -``` +``` { .bash .copy } curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - ``` ### Ajout du dépôt docker dans le **sources.list** -``` +``` { .bash .copy } sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/debian \ $(lsb_release -cs) \ @@ -45,13 +45,13 @@ sudo add-apt-repository \ ### Mise à jour de la liste des paquets et installation de docker -``` +``` { .bash .copy } sudo apt update && sudo apt install docker-ce docker-ce-cli containerd.io ``` ### Ajout de l'utilisateur dans le groupe **docker** pour utiliser docker sans sudo -``` +``` { .bash .copy } sudo usermod -aG docker $USER newgrp docker ``` @@ -60,7 +60,7 @@ newgrp docker ## Installation de Docker-Compose ### Téléchargement de Docker-Compose -``` +``` { .bash .copy } curl -s https://api.github.com/repos/docker/compose/releases/latest \ | grep browser_download_url \ | grep docker-compose-linux-x86_64 \ @@ -70,14 +70,14 @@ curl -s https://api.github.com/repos/docker/compose/releases/latest \ ### Mise en place de l'exécutable -``` +``` { .bash .copy } chmod +x docker-compose-linux-x86_64 && sudo mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose sudo systemctl restart docker ``` ### Auto-complétion pour Bash -``` +``` { .bash .copy } sudo mkdir -p /etc/bash_completion.d sudo curl -L https://raw.githubusercontent.com/docker/compose/master/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose source /etc/bash_completion.d/docker-compose @@ -89,7 +89,7 @@ source /etc/bash_completion.d/docker-compose ### Création d'un dossier pour le projet -``` +``` { .bash .copy } mkdir nextcloud && cd nextcloud ``` @@ -100,7 +100,7 @@ Nous avons besoin de créer les fichiers suivants pour qu'ils soient utilisés p #### config.php ??? note "config.php" - ``` + ``` { .php .copy } '/', @@ -184,7 +184,7 @@ Nous avons besoin de créer les fichiers suivants pour qu'ils soient utilisés p #### Internal.php ??? note "Internal.php" - ``` + ``` { .php .copy } Administration > Additional settings` -## Mise à jour de l'image Docker Nextcloud +## Mise à jour Nextcloud (Docker) #### Vérifier la version en production -> Avant chaque update checker dans les paramètres de base si des indices de table bdd manques ou autre. +:warning: Avant chaque update checker dans les paramètres de base si des indices de table bdd manques ou autre. (voir: 6. Indices de table manquants) -> L'update s'éffectue par palier de versions (20 vers 21 puis 21 vers 22, etc...) #### étapes -- stopper la stack: +##### stopper la stack -```bash +``` { .bash .copy } docker-compose down ``` -- editer le tag de l'image Nextcloud dans le docker-compose.yaml: +##### modifier l'image docker de Nextcloud -```bash +``` { .bash .copy } nano docker-compose.yml ``` -- Modifier la version d'image vers la version immédiatement supérieure dans le docker-compose.yml -> Exemple: 20 -> 21 +!!! tip "Modifier la version d'image vers la version immédiatement supérieure dans le docker-compose.yml" + ``` + 20 -> 21, 21 -> 22 + ``` + +##### Relancer la stack -- relançer la stack: - -```bash -docker-compose up -d +``` { .bash .copy } +docker compose up -d ``` -> Finir l'update via l'interface web +##### Mettre le container nextcloud web en mode maintenance -Une fois la mise à jour des applications éffectuée, se connecter et vérifier avec un compte administrateur dans Paramètres -> Vue d'ensemble si certaines tables de la base de donnée ont besoin d'être modifié via une commande explicitement décrite: - -Exemple: - -```bash -docker exec --user www-data -it nextcloud /var/www/html/occ db:add-missing-indices +Mettre Nextcloud en mode maintenance: +``` { .bash .copy } +docker exec -u www-data php occ maintenance:mode --on ``` +Lancer l'update: :coffee: +``` { .bash .copy } +docker exec -u www-data php occ upgrade +``` + +Désactiver le mode maintenance: +``` { .bash .copy } +docker exec -u www-data php occ maintenance:mode --off +``` + +##### Vérifier les logs + +Après une mise à jour, vérifier les logs docker pour d'éventuelles erreurs sur des champs de base de donnée ou indices manquants: + +``` { .bash .copy } +docker logs +``` + +##### Indices de table manquants +!!! note "Ajouter les indices de table manquants" + ``` { .bash .copy } + docker exec --user www-data -it /var/www/html/occ db:add-missing-indices + ``` + +!!! note "Modifier le type de champs d'un indice d'une table" (optionnel)" + Se connecter dans le conteneur: + ``` { .bash .copy } + docker exec -it bash + ``` + + se connecter en tant que user nextcloud: + ``` { .bash .copy } + mariadb -u -p + # saisir le password du user nextcloud + ``` + +##### cron job + +``` { .bash .copy } +crontab -e +``` + +!!! note "crontab" + ``` { .bash .copy } + */5 * * * * docker exec -u www-data php -f cron.php + ``` + ##### Commande générique pour ajouter des colonnes manquantes à certaines tables de la BDD -```bash +``` { .bash .copy } docker exec --user www-data -it /var/www/html/occ ``` ??? "Crontab (pour nettoyer Nextcloud régulierement)" - ```bash + ``` { .bash .copy } crontab -e */5 * * * * docker exec -u www-data php -f cron.php ``` diff --git a/docs/divers/server/nextcloud_update.md b/docs/divers/server/nextcloud_update.md index 87880238..292d884e 100644 --- a/docs/divers/server/nextcloud_update.md +++ b/docs/divers/server/nextcloud_update.md @@ -9,13 +9,13 @@ ### ARRET DE LA STACK -```bash +``` { .bash .copy } docker-compose down ``` ### modifier l'image docker de Nextcloud -```bash +``` { .bash .copy } nano docker-compose.yml ``` @@ -26,24 +26,24 @@ nano docker-compose.yml ### Relancer la stack -```bash +``` { .bash .copy } docker compose up -d ``` ### Mettre le container nextcloud web en mode maintenance Mettre Nextcloud en mode maintenance -```bash +``` { .bash .copy } docker exec -u www-data php occ maintenance:mode --on ``` Lancer l'update :coffee: -```bash +``` { .bash .copy } docker exec -u www-data php occ upgrade ``` Désactiver le mode maintenance -```bash +``` { .bash .copy } docker exec -u www-data php occ maintenance:mode --off ``` @@ -51,13 +51,13 @@ docker exec -u www-data php occ maintenance:mode --off Après une mise à jour, vérifier les logs docker pour d'éventuelles erreurs sur des champs de base de donnée ou indices manquants: -```bash +``` { .bash .copy } docker logs ``` #### Indice de table manquants (opt) -```bash +``` { .bash .copy } # Commande pour ajouter des colonnes manquantes à certaines tables de la BDD docker exec --user www-data -it /var/www/html/occ db:add-missing-indices ``` @@ -65,12 +65,12 @@ docker exec --user www-data -it /var/www/html/occ #### Modifier le type de champs d'un indice d'une table (opt) Se connecter dans le conteneur: -```bash +``` { .bash .copy } docker exec -it bash ``` se connecter en tant que user nextcloud: -```bash +``` { .bash .copy } mariadb -u -p # saisir le password du user nextcloud ``` diff --git a/docs/divers/server/postgres.md b/docs/divers/server/postgres.md index d26d972e..69b4d589 100644 --- a/docs/divers/server/postgres.md +++ b/docs/divers/server/postgres.md @@ -2,26 +2,27 @@ ## List databases -``` +``` { .bash .copy } postgres=# \l ``` ## Switch database -``` +``` { .sql .copy } postgres=# \c db_name ``` + List tables -``` +``` { .sql .copy } db_name=# \dt ``` Show table content -``` +``` { .sql .copy } db_name=# \d table_name ``` Modify table -``` +``` { .sql .copy } UPDATE table_name SET column1 = 'value1', column2 = 'value2', diff --git a/docs/divers/server/serveur_debian_smb_ssh.md b/docs/divers/server/serveur_debian_smb_ssh.md index b2891d81..495fe6e0 100644 --- a/docs/divers/server/serveur_debian_smb_ssh.md +++ b/docs/divers/server/serveur_debian_smb_ssh.md @@ -4,7 +4,7 @@ ### Installation -``` +``` { .bash .copy } sudo apt update sudo apt install openssh-server ``` @@ -12,7 +12,7 @@ sudo apt install openssh-server ### Configuration du serveur ssh !!! note "/etc/ssh/sshd_config" - ``` + ``` { .copy } # Define a diferent port from default port=22 Port 43000 # @@ -59,17 +59,18 @@ sudo apt install openssh-server ``` ### Démarrage du serveur ssh - - sudo systemctl restart sshd.service - +``` { .bash .copy } +sudo systemctl restart sshd.service +``` --------------------- ## Installation de Samba ### Installation +``` { .bash .copy } +sudo apt install samba smbclient +``` - sudo apt install samba smbclient - ### Configuration du serveur !!! note "/etc/samba/smb.conf" @@ -102,7 +103,7 @@ sudo apt install openssh-server #### Création d'un mot de passe sur le serveur -``` +``` { .bash .copy } sudo smbpassword -a $USER ``` @@ -110,7 +111,7 @@ sudo smbpassword -a $USER Il est nécessaire de configurer le WORKGROUP pour les clients, afin qu'ils soient autorisés à se connecter au serveur Samba: -``` +``` { .bash .copy } sudo sed -i 's/WORKGROUP/KTHA-CIE/' /etc/samba/smb.conf ``` @@ -127,18 +128,18 @@ sudo sed -i 's/WORKGROUP/KTHA-CIE/' /etc/samba/smb.conf #### Step 1. Créer la clé d'authentification On créé une variable pour le nom de la clé -``` +``` { .bash .copy } KEY_PATH=~/.ssh/owner-of-key_rsa ``` On génère la clé dans le dossier par défaut pour ne pas avoir à indiquer le chemin de la clé avec **-i*** lors d'une connexion avec `ssh` -``` +``` { .bash .copy } ssh-keygen -b 4096 -t rsa -N '' -f $KEY_PATH ``` #### Step 2. Envoyer la clé publique au serveur -``` +``` { .bash .copy } ssh-copy-id -i $KEY_PATH $USER@$SERVER_IP ``` @@ -147,19 +148,18 @@ ssh-copy-id -i $KEY_PATH $USER@$SERVER_IP Script à exécuter: !!! note "/etc/cron.daily/backup" - ``` + ``` { .copy } #!/bin/bash rsync -ahv --update --delete --info=backup2,copy2,del2,name1,stats2 --log-file="/home/$USER/backup_log/backup.log.$(date +%Y-%m-%d)" /home/$USER/Documents/ -e 'ssh -p 43000 -i $KEY_PATH $USER@176.151.59.186:/home/$USER/Documents' ``` N'oubliez pas de rendre le script exécutable: -``` +``` { .bash .copy } sudo chmod +x /etc/cron.daily/backup ``` Définition de la tâche cron: - -``` +``` { .bash .copy } sudo tee -a /etc/cron.d/backup > /dev/null < Note: A installer sur le serveur ainsi que sur la machine cliente "streamant" le flux réseau. @@ -14,19 +14,19 @@ sudo apt install wireshark tcpdump -y ### Configuration - Ajouter l'utilisateur au groupe wireshark -```bash +``` { .bash .copy } sudo usermod -aG wireshark $USER ``` - Récupérer l'interface réseau du serveur distant: -```bash +``` { .bash .copy } ssh -p 2222 remote-user@123.45.67.89 # L'interface connectée au réseau est celle qui donne l'adresse IP publique ip a ``` > Note: Il est préférable d'avoir éffectué l'échange de clefs SSH via la commande: -```bash +``` { .bash .copy } ssh-copy-id remote-user@server-ip ``` diff --git a/docs/divers/server/wordpress_docker-compose_on_debian-10_with_nginx_reverse-proxy.md b/docs/divers/server/wordpress_docker-compose_on_debian-10_with_nginx_reverse-proxy.md index 16501a90..e00eb9fe 100644 --- a/docs/divers/server/wordpress_docker-compose_on_debian-10_with_nginx_reverse-proxy.md +++ b/docs/divers/server/wordpress_docker-compose_on_debian-10_with_nginx_reverse-proxy.md @@ -10,7 +10,7 @@ Ainsi nous pourrons utiliser le serveur de notre choix pour notre web-applicatio On installe Nginx à partir des dépôts Debian, de façon à avoir une version stable, avec l'apport des correctifs de sécurité, et qui ne sera jamais cassé par une modification du système. -``` +``` { .bash .copy } sudo apt update sudo apt upgrade sudo apt install nginx @@ -24,19 +24,19 @@ Dans votre navigateur, en tapant dabs la barre d'adresse `http://IP_DU_SERVEUR`, ### Installation des dépendances -``` +``` { .bash .copy } sudo apt update sudo apt -y install apt-transport-https ca-certificates curl gnupg2 software-properties-common ``` ### Installation de la clé du dépôt Docker -``` +``` { .bash .copy } curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - ``` ### Ajout du dépôt docker dans le **sources.list** -``` +``` { .bash .copy } sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/debian \ $(lsb_release -cs) \ @@ -45,13 +45,13 @@ sudo add-apt-repository \ ### Mise à jour de la liste des paquets et installation de docker -``` +``` { .bash .copy } sudo apt update && sudo apt install docker-ce docker-ce-cli containerd.io ``` ### Ajout de l'utilisateur dans le groupe **docker** pour utiliser docker sans sudo -``` +``` { .bash .copy } sudo usermod -aG docker $USER newgrp docker ``` @@ -60,7 +60,7 @@ newgrp docker ## Installation de Docker-Compose ### Téléchargement de Docker-Compose -``` +``` { .bash .copy } curl -s https://api.github.com/repos/docker/compose/releases/latest \ | grep browser_download_url \ | grep docker-compose-linux-x86_64 \ @@ -70,14 +70,14 @@ curl -s https://api.github.com/repos/docker/compose/releases/latest \ ### Mise en place de l'exécutable -``` +``` { .bash .copy } chmod +x docker-compose-linux-x86_64 && sudo mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose sudo systemctl restart docker ``` ### Auto-complétion pour Bash -``` +``` { .bash .copy } sudo mkdir -p /etc/bash_completion.d sudo curl -L https://raw.githubusercontent.com/docker/compose/master/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose source /etc/bash_completion.d/docker-compose @@ -89,7 +89,7 @@ source /etc/bash_completion.d/docker-compose Créer un dossier pour accueillir le projet, et le fichier **docker-compose.yml**: -``` +``` { .bash .copy } mkdir wordpress && cd wordpress touch docker-compose.yml ``` @@ -97,9 +97,7 @@ touch docker-compose.yml Ce fichier de configuration va déployer une image docker de wordpress et de la base de données mysql. !!! info "docker-compose.yml" - ``` - version: '3.3' - + ``` { .yaml .copy } services: db: image: mysql:5.7 @@ -132,7 +130,7 @@ Ce fichier de configuration va déployer une image docker de wordpress et de la ## Installation de SSL pour Nginx avec Let's Encrypt Let's encrypt est un service qui permet de générer gratuitement un certificat SSL pour le domaine de notre choix. -``` +``` { .bash .copy } sudo apt install python3-acme python3-certbot python3-mock python3-openssl python3-pkg-resources python3-pyparsing python3-zope.interface sudo apt install python3-certbot-nginx sudo certbot -d wordpress.mondomaine.fr @@ -144,7 +142,7 @@ sudo certbot -d wordpress.mondomaine.fr On peut maintenant créer le fichier de configuration nginx dans /etc/nginx/sites-available/wordpress.mondomaine.fr.conf: !!! info "wordpress.mondomaine.fr" - ``` + ``` { .copy } upstream wpdocker { server 127.0.0.1:8000; } @@ -191,13 +189,13 @@ On peut maintenant créer le fichier de configuration nginx dans /etc/nginx/sit ``` Pour activer ce fichier de configuration, on créé un lien symbolique vers le dossier sites-enabled: -``` +``` { .bash .copy } sudo ln -s /etc/nginx/sites-available/wordpress.mondomaine.fr.conf /etc/nginx/sites-enabled/ ``` On recharge la configuration de Nginx: -``` +``` { .bash .copy } sudo systemctl reload nginx.service ``` diff --git a/mkdocs.yml b/mkdocs.yml index 8e03228e..ae195b5c 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -9,6 +9,7 @@ theme: - navigation.instant - navigation.expand - navigation.tabs + - content.code.copy plugins: #- markdownmermaid - search: