Drapeau Français

Funigo

Drapeau Japonais

Météo Paris

Temp: - °C

Nuages: - %

Pluie: - mm

Météo Tokyo

Temp: - °C

Nuages: - %

Pluie: - mm

Taux de Change

1 EUR
    =
- JPY

Heure Paris

--:--

Heure Tokyo

--:--

Liste des Articles du Blog TECH


Cliquer sur une ligne pour avoir des détails


SAMBA Partage d'un répertoire LINUX vue par Windows

Installation de Samba --------------------- sudo apt update sudo apt install samba Vérifiez que le service Samba est actif : ----------------------------------------- sudo systemctl status smbd Créer le répertoire à partager : -------------------------------- mkdir /home/fred/partage Donner les permissions : -------------------------------- sudo chmod 777 /home/fred/partage L'ajouter à la base Samba et définir son mot de passe : ------------------------------------------------------- sudo smbpasswd -a nom_utilisateur Activer l'utilisateur --------------------- sudo smbpasswd -e nom_utilisateur Voir les utilisateurs --------------------- grep fred /etc/samba/smb.conf path = /home/fred/partage valid users = fred force user = fred Voir les permissions --------------------- $ ls -la /var/www/funigo/public total 44 drwxr-xr-x 9 fred www-data 4096 Jan 24 22:55 . drwxr-xr-x 8 fred www-data 4096 Mar 16 23:16 .. drwxr-xr-x 2 fred www-data 4096 Jan 24 22:55 css drwxr-xr-x 2 fred www-data 4096 Jan 24 22:55 data drwxr-xr-x 3 fred www-data 4096 Jan 24 22:55 fichier drwxr-xr-x 2 fred www-data 4096 Jan 24 22:55 html drwxr-xr-x 7 fred www-data 4096 Jan 24 22:55 images drwxr-xr-x 2 fred www-data 4096 Jan 24 22:55 js -rwxr-xr-x 1 fred www-data 70 Jan 24 22:55 robots.txt -rwxr-xr-x 1 fred www-data 2367 Jan 24 22:55 sitemap.xml drwxr-xr-x 3 fred www-data 4096 Mar 16 22:47 video $ ls -la /var/www/funigo/ | grep public drwxr-xr-x 9 fred www-data 4096 Jan 24 22:55 public Ajouter à la fin du fichier --------------------------- $ sudo vim /etc/samba/smb.conf [PartageFred] path = /home/fred/partage writeable = yes browseable = yes public = no [funigo-public] comment = Funigo Public Web path = /var/www/funigo/public browseable = yes read only = no writable = yes create mask = 0775 directory mask = 0775 valid users = fred force user = fred Pour visualiser le partage sous windows --------------------------------------- \\@ip ou nom machine\Nom_du_partage dans le navigateur \\192.168.1.2\PartageFred \\192.168.1.2\funigo-public\images\note_tech


Image pour l'article

Linux certificat https

Installation de Certbot ----------------------- Tout d'abord, vous devez installer Certbot et son plugin pour Apache. Sur la plupart des distributions Linux, utilisez : Bash sudo apt update sudo apt install certbot python3-certbot-apache 2. Génération du certificat --------------------------- Sous Linux, Certbot peut configurer automatiquement vos fichiers VirtualHost ou simplement générer les certificats. Comme vous avez déjà une structure d'hôtes virtuels personnalisée, je vous recommande la commande suivante qui génère le certificat sans modifier vos fichiers de configuration immédiatement : Bash sudo certbot certonly --apache -d funigo.fr -d www.funigo.fr certonly : Récupère le certificat mais ne modifie pas vos fichiers .conf. --apache : Utilise l'authentificateur Apache pour prouver que vous possédez le domaine. 3. Emplacement des fichiers ----------------------------- Une fois la commande terminée, vos certificats ne seront plus dans C:/Certbot/live/ mais dans le répertoire standard Linux : Certificat (fullchain) : /etc/letsencrypt/live/funigo.fr/fullchain.pem Clé privée : /etc/letsencrypt/live/funigo.fr/privkey.pem 4. Mise à jour de votre configuration Apache -------------------------------------------- Vous devez maintenant modifier votre fichier httpd-vhosts.conf (ou le fichier correspondant dans /etc/apache2/sites-available/) pour pointer vers ces nouveaux chemins : VirtualHost *:443> ServerName www.funigo.fr # ... autres directives ... SSLEngine on SSLCertificateFile "/etc/letsencrypt/live/funigo.fr/fullchain.pem" SSLCertificateKeyFile "/etc/letsencrypt/live/funigo.fr/privkey.pem" # Votre configuration de Proxy vers Node.js reste la même ProxyPass / http://localhost:5000/ ProxyPassReverse / http://localhost:5000/ </VirtualHost> Pour tester si le renouvellement fonctionne, vous pouvez lancer : Bash sudo certbot renew --dry-run Script de vérification et de logs personnalisé Si vous voulez un script que vous pouvez lancer manuellement pour vérifier l'état et forcer une action si nécessaire, créez un fichier check_cert.sh : Bash #!/bin/bash # Configuration DOMAIN="funigo.fr" EMAIL="admin@example.com" # [source 30] echo "--- Vérification du certificat pour $DOMAIN ---" # 1. Vérifier la date d'expiration via OpenSSL EXPIRY_DATE=$(openssl x509 -enddate -noout -in /etc/letsencrypt/live/$DOMAIN/fullchain.pem | cut -d= -f2) echo "Date d'expiration actuelle : $EXPIRY_DATE" # 2. Tenter un renouvellement silencieux # --post-hook redémarre Apache uniquement si le certificat a été renouvelé sudo certbot renew --post-hook "systemctl reload apache2" --quiet if [ $? -eq 0 ]; then echo "Le processus de renouvellement s'est déroulé avec succès." else echo "Erreur lors du renouvellement." fi 3. Adaptation de votre Apache pour Linux ---------------------------------------- Selon votre fichier httpd.conf actuel, Apache sous Linux utilisera l'utilisateur daemon par défaut. Assurez-vous que cet utilisateur a accès aux logs dans /var/log/apache2/. Dans votre configuration httpd-vhosts.conf adaptée, n'oubliez pas de mettre à jour les chemins des certificats vers le répertoire standard de Certbot sur Linux : SSLCertificateFile "/etc/letsencrypt/live/funigo.fr/fullchain.pem" SSLCertificateKeyFile "/etc/letsencrypt/live/funigo.fr/privkey.pem" 4. Automatisation avec Crontab (Optionnel) ------------------------------------------ Bien que le certbot.timer soit suffisant, certains administrateurs préfèrent une règle cron classique. Pour vérifier le certificat tous les lundis à minuit : Tapez sudo crontab -e Ajoutez cette ligne à la fin : 0 0 * * 1 certbot recd new --post-hook "systemctl reload apache2" >> /var/log/certbot-renew.log ******************************************************************************************************************************************************************************************* Script de vérification et de logs personnalisé Si vous voulez un script que vous pouvez lancer manuellement pour vérifier l'état et forcer une action si nécessaire, créez un fichier check_cert.sh : Bash #!/bin/bash # Configuration DOMAIN="funigo.fr" EMAIL="admin@example.com" # [source 30] echo "--- Vérification du certificat pour $DOMAIN ---" # 1. Vérifier la date d'expiration via OpenSSL EXPIRY_DATE=$(openssl x509 -enddate -noout -in /etc/letsencrypt/live/$DOMAIN/fullchain.pem | cut -d= -f2) echo "Date d'expiration actuelle : $EXPIRY_DATE" # 2. Tenter un renouvellement silencieux # --post-hook redémarre Apache uniquement si le certificat a été renouvelé sudo certbot renew --post-hook "systemctl reload apache2" --quiet if [ $? -eq 0 ]; then echo "Le processus de renouvellement s'est déroulé avec succès." else echo "Erreur lors du renouvellement." fi 3. Adaptation de votre Apache pour Linux ---------------------------------------- Selon votre fichier httpd.conf actuel, Apache sous Linux utilisera l'utilisateur daemon par défaut. Assurez-vous que cet utilisateur a accès aux logs dans /var/log/apache2/. Dans votre configuration httpd-vhosts.conf adaptée, n'oubliez pas de mettre à jour les chemins des certificats vers le répertoire standard de Certbot sur Linux : SSLCertificateFile "/etc/letsencrypt/live/funigo.fr/fullchain.pem" SSLCertificateKeyFile "/etc/letsencrypt/live/funigo.fr/privkey.pem" 4. Automatisation avec Crontab (Optionnel) ------------------------------------------ Bien que le certbot.timer soit suffisant, certains administrateurs préfèrent une règle cron classique. Pour vérifier le certificat tous les lundis à minuit : Tapez sudo crontab -e Ajoutez cette ligne à la fin : 0 0 * * 1 certbot renew --post-hook "systemctl reload apache2" >> /var/log/certbot-renew.log 5. lire la date du certificat ------------------------------------------ fred@funigo:/etc/letsencrypt/live $ ls funigo.fr README fred@funigo:/etc/letsencrypt/live $ cd funigo.fr fred@funigo:/etc/letsencrypt/live/funigo.fr $ ls fullchain.pem privkey.pem fred@funigo:/etc/letsencrypt/live/funigo.fr $ openssl x509 -in fullchain.pem -noout -dates notBefore=Dec 22 17:01:43 2025 GMT notAfter=Mar 22 17:01:42 2026 GMT 6. voir les DNS ------------------------------------------ fred@funigo:/etc/letsencrypt/live/funigo.fr-0001 $ sudo openssl x509 -in fullchain.pem -text -noout | grep DNS DNS:funigo.fr, DNS:www.funigo.fr ---------------------------------------------------------------------------------------------------------- Dans apache2 répertoire /etc/apache2/sites-available cat funigo.conf # Configuration principale pour HTTPS (SSL) <VirtualHost *:443> ServerName www.funigo.fr ServerAlias funigo.fr # On adapte vos chemins Windows vers Linux SSLEngine on SSLCertificateFile "/etc/letsencrypt/live/funigo.fr/fullchain.pem" SSLCertificateKeyFile "/etc/letsencrypt/live/funigo.fr/privkey.pem" # Vos headers de sécurité [cite: 81, 82] Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains" <IfModule mod_headers.c> Header set Content-Security-Policy "default-src 'self'; script-src 'self' 'sha256-8AFl6gs2BjOGxU9eZtoVWi4wLFMR4DkrvF+TlMsKORc='; style-src 'self' https://cdnjs.cloudflare.com 'unsafe-inline'; connect-src 'self' https://api.open-meteo.com https://api.exchangerate-api.com https://worldtimeapi.org https://cdn.jsdelivr.net; img-src 'self' data:https://*.googleapis.com https://*.gstatic.com https://*.google.com https://*.ytiming.com; font-src 'self' https://cdnjs.cloudflare.com data:;frame-src https://www.google.com https://maps.google.com https://maps.googleapis.com https://www.youtube.com https://youtube.com" Header set X-Frame-Options "SAMEORIGIN" Header set X-Content-Type-Options "nosniff" Header set Referrer-Policy "no-referrer-when-downgrade" </IfModule> # Configuration du Reverse Proxy vers Node.js ProxyPass /.well-known ! ProxyPreserveHost On ProxyRequests Off ProxyPass / http://localhost:5000/ ProxyPassReverse / http://localhost:5000/ # Chemins des logs version Linux ErrorLog ${APACHE_LOG_DIR}/funigo-error.log CustomLog ${APACHE_LOG_DIR}/funigo-access.log common </VirtualHost> # Configuration principale pour HTTPS (SSL) win.funigo.fr <VirtualHost *:443> ServerName win.funigo.fr ServerAlias funigo.fr # On adapte vos chemins Windows vers Linux SSLEngine on SSLCertificateFile "/etc/letsencrypt/live/win.funigo.fr/fullchain.pem" SSLCertificateKeyFile "/etc/letsencrypt/live/win.funigo.fr/privkey.pem" # Important pour le CSS/JS ProxyPreserveHost on RequestHeader set X-Forwarded-Proto "https" # Configuration du Reverse Proxy vers Node.js ProxyPass / http://192.168.1.7:6000/ ProxyPassReverse / http://192.168.1.7:6000/ # Chemins des logs version Linux ErrorLog ${APACHE_LOG_DIR}/funigo-error.log CustomLog ${APACHE_LOG_DIR}/funigo-access.log common </VirtualHost>



SAMBA Partage WIN visible Raspberry

Windows: Voir les caratéristiques du partage ------------------------------------------------ PS C:\WINDOWS\system32> Get-SmbShareAccess -Name "funigo-fichier" Name ScopeName AccountName AccessControlType AccessRight ---- --------- ----------- ----------------- ----------- funigo-fichier * BUILTIN\Administrateurs Allow Full funigo-fichier * Tout le monde Allow Full Windows: Création de l'utilisateur partage avec son mot de passe ------------------------------------------------------------------- C:\Windows\System32>net user partage Tokyo_2010 /add La commande s’est terminée correctement. Windows: Voir les propriétés détaillées (Configuration) ------------------------------------------------------------------- PS C:\WINDOWS\system32> Get-SmbShare -Name "funigo-fichier"| Select-Object * PresetPathAcl : System.Security.AccessControl.DirectorySecurity ShareState : Online AvailabilityType : NonClustered ShareType : FileSystemDirectory FolderEnumerationMode : AccessBased CachingMode : Manual LeasingMode : Full QoSFlowScope : File SmbInstance : Default CATimeout : 0 CompressData : False ConcurrentUserLimit : 0 ContinuouslyAvailable : False CurrentUsers : 1 Description : DirectoryHandleLeasing : True EncryptData : False IdentityRemoting : False Infrastructure : False IsolatedTransport : False Name : funigo-fichier Path : C:\funigo-fichier QoSPolicyId : {00000000-0000-0000-0000-000000000000} Scoped : False ScopeName : * SecurityDescriptor : O:S-1-5-21-1483173906-57546936-2002865768-1003G:S-1-5-21-1483173906-57546936-2002865768-1003D: (A;OICI;FA;;;BA)(A;OICI;FA;;;WD) ShadowCopy : False Special : False Temporary : False Volume : \\?\Volume{213bb72f-669b-441a-9704-96bc6f60b82e}\ PSComputerName : CimClass : ROOT/Microsoft/Windows/SMB : MSFT_SmbShare CimInstanceProperties : {AvailabilityType, CachingMode, CATimeout, CompressData...} CimSystemProperties : Microsoft.Management.Infrastructure.CimSystemProperties windows: Création une nouvelle règle dans le pare-feu Windows pour autoriser le trafic entrant lié au partage de fichiers (SMB). --------------------------------------------------------------------------------------------------------------------------------- PS C:\WINDOWS\system32> New-NetFirewallRule -DisplayName "SMB-In" -Direction Inbound -Protocol TCP -LocalPort 445 -Action Allow Name : {878f7be0-801c-409b-87ba-7cc80e09ae91} DisplayName : SMB-In Description : DisplayGroup : Group : Enabled : True Profile : Any Platform : {} Direction : Inbound Action : Allow EdgeTraversalPolicy : Block LooseSourceMapping : False LocalOnlyMapping : False Owner : PrimaryStatus : OK Status : La règle a été analysée à partir de la banque. (65536) EnforcementStatus : NotApplicable PolicyStoreSource : PersistentStore PolicyStoreSourceType : Local RemoteDynamicKeywordAddresses : {} PolicyAppId : PackageFamilyName : Raspberry: Tester depuis le Raspberry -------------------------- fred@funigo:~ $ smbclient -L //192.168.1.7 -U partage Password for [WORKGROUP\partage]: Sharename Type Comment --------- ---- ------- ADMIN$ Disk Administration à distance C$ Disk Partage par défaut funigo-fichier Disk IPC$ IPC IPC distant Users Disk SMB1 disabled -- no workgroup available Raspberry: Rendre le montage permanent au démarrage -------------------------------------------------- Créer un fichier de credentials (sécurité) ------------------------------------------ fred@funigo:~ $ sudo vim /etc/samba/credentials_windows fred@funigo:~ $ cat /etc/samba/credentials_windows username=partage password=Tokyo_2010 Ajouter dans /etc/fstab ----------------------- sudo chmod 600 /etc/samba/credentials_windows Teste manuel ------------ sudo mount -t cifs //192.168.1.7/funigo-fichier /home/fred/funigo-fichier -o username=partage,password=Tokyo_2010,uid=1000,gid=1000 fred@funigo:~ $ Modifier le fichier ------------------ fred@funigo:~ $ cat /etc/fstab proc /proc proc defaults 0 0 PARTUUID=fce19825-01 /boot/firmware vfat defaults 0 2 PARTUUID=fce19825-02 / ext4 defaults,noatime 0 1 //192.168.1.7/funigo-fichier /home/fred/funigo-fichier cifs credentials=/etc/samba/credentials_windows,uid=1000,gid=1000,_netdev,x-systemd.automount 0 0 Tester sans redémarrer ---------------------- sudo mount -a Récapitulatif de ce qui a été mis en place ------------------------------------------ Élément Valeur Dossier Windows partagé \\192.168.1.7\funigo-fichier Compte Windows dédié partage Point de montage Raspberry /home/fred/funigo-fichier Port ouvert TCP 445 (SMB)


Image pour l'article

Linux Voir date et dns d'un certificat

5. lire la date du certificat ------------------------------------------ fred@funigo:/etc/letsencrypt/live $ ls funigo.fr README fred@funigo:/etc/letsencrypt/live $ cd funigo.fr fred@funigo:/etc/letsencrypt/live/funigo.fr $ ls fullchain.pem privkey.pem fred@funigo:/etc/letsencrypt/live/funigo.fr $ openssl x509 -in fullchain.pem -noout -dates notBefore=Dec 22 17:01:43 2025 GMT notAfter=Mar 22 17:01:42 2026 GMT 6. voir les DNS ------------------------------------------ fred@funigo:/etc/letsencrypt/live/funigo.fr-0001 $ sudo openssl x509 -in fullchain.pem -text -noout | grep DNS DNS:funigo.fr, DNS:www.funigo.fr



SQL Extraire une table SQM dans un fichier csv

A partir de mysql ----------------- SELECT * FROM adj_jp INTO OUTFILE '/media/fred/BACK_FUNIGO/adj_jp.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n'; ou mysqldump -u japadmin -p --tab=/tmp --fields-terminated-by=, --fields-enclosed-by='"' jap adv_jp



Linux faire un tar compresser de funigo sur clé USB

/media/fred/BACK_FUNIGO sudo tar --exclude='node_modules' -czvf /media/fred/BACK_FUNIGO/sauvegarde_BACK_FUNIGO_$(date +%Y-%m-%d).tar.gz -C /var/www/funigo



LINUX Température du Raspberry

alias temp='echo -e "\e[32mTempérature CPU : \e[31m$(($(cat /sys/class/thermal/thermal_zone0/temp) / 1000))°C\e[32m\e[0m"' linux> temp echo $(($(cat /sys/class/thermal/thermal_zone0/temp) / 1000))



Linux SQL raspberry export full de la base mysql sur la clé USB

export full de la base mysql sur la clé USB ------------------------------------------- mysqldump -u root -pmysql_2010 jap > /media/fred/BACK_FUNIGO/sauvegarde_jap_20260314.sql



powershell Compresser fichier JPG

PS C:\Fichiers_Users\funigo\doc\ps1> powershell -ExecutionPolicy Bypass -File .\Optimize-Jpg.ps1 -Path "C:\funigo fichier\photo_jpg_to_webp\Photo-shikoku" param ( [Parameter(Mandatory=$true)] [string]$Path, [int]$Quality = 75 # Qualité par défaut (75 est idéal pour le web) ) # 1. Localisation de ImageMagick (méthode robuste) $magickExe = Get-Command magick -ErrorAction SilentlyContinue | Select-Object -ExpandProperty Source if (-not $magickExe) { $defaultPath = "C:\Program Files\ImageMagick-7.1.2-Q16-HDRI\magick.exe" if (Test-Path $defaultPath) { $magickExe = $defaultPath } } if (-not $magickExe) { Write-Error "ImageMagick n'est pas détecté." return } # 2. Vérification du répertoire if (-not (Test-Path $Path)) { Write-Error "Le répertoire spécifié n'existe pas." return } # 3. Récupérer les fichiers JPG et JPEG $images = Get-ChildItem -Path $Path -File | Where-Object { $_.Extension -match "^\.(jpg|jpeg)$" } if ($images.Count -eq 0) { Write-Host "Aucun fichier .jpg ou .jpeg trouvé dans : $Path" -ForegroundColor Yellow return } Write-Host "Optimisation de $($images.Count) fichiers JPG (Qualité: $Quality%)..." -ForegroundColor Cyan foreach ($img in $images) { Write-Host "Traitement de : $($img.Name)..." -NoNewline # Calcul de la taille avant $oldSize = $img.Length / 1KB # Exécution de l'optimisation # -strip : enlève les métadonnées # -interlace Plane : crée un JPG progressif (mieux pour le web) # -sampling-factor 4:2:0 : standard de compression couleur & $magickExe "$($img.FullName)" -strip -quality $Quality -interlace Plane -sampling-factor 4:2:0 "$($img.FullName)" # Calcul de la taille après $newSize = (Get-Item $img.FullName).Length / 1KB $gain = [Math]::Round($oldSize - $newSize, 2) $percent = [Math]::Round(($gain / $oldSize) * 100, 1) Write-Host " Terminé (Gain: $gain KB / -$percent%)" -ForegroundColor Green } Write-Host "`nOptimisation terminée !" -ForegroundColor Cyan



PowerShell Compresser photos PNG

PS C:\Fichiers_Users\funigo\doc\ps1> powershell -ExecutionPolicy Bypass -File .\Optimize-Png.ps1 -Path "Nom du répertoire des photos à compresser"



Powershell Convertir JPG en webp

PS C:\Users\fredr\Downloads\photo_jpg_to_webp> powershell -ExecutionPolicy Bypass -File .\photo_jpg_to_webp.ps1 -Path "C:\Users\fredr\Downloads\photo_jpg_to_webp" Utilisation de : C:\Program Files\ImageMagick-7.1.2-Q16-HDRI\magick.exe Début de la conversion de 15 images... Conversion : Enoshima.JPG -> Enoshima.webp Conversion : Kamakura.JPG -> Kamakura.webp Conversion : Kobe5.JPG -> Kobe5.webp Conversion : Kyoto.jpg -> Kyoto.webp Conversion : Kyoto1.jpg -> Kyoto1.webp Conversion : Kyoto5.jpg -> Kyoto5.webp Conversion : Kyoto6.jpg -> Kyoto6.webp Conversion : Nara4.JPG -> Nara4.webp Conversion : Nara7.JPG -> Nara7.webp Conversion : Nikko8.JPG -> Nikko8.webp Conversion : Osaka5.JPG -> Osaka5.webp Conversion : Osaka6.JPG -> Osaka6.webp Conversion : sendai3.JPG -> sendai3.webp Conversion : sendai4.JPG -> sendai4.webp Conversion : sendai5.JPG -> sendai5.webp Terminé ! Vos images WebP sont prêtes.



Linux init git

git init hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all hint: of your new repositories, which will suppress this warning, call: hint: hint: git config --global init.defaultBranch <name> hint: hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m <name> Initialized empty Git repository in /var/www/funigo/.git/ ls -ltr /var/www/funigo/.git/ total 32 drwxrwxr-x 2 fred fred 4096 Feb 16 17:40 info drwxrwxr-x 2 fred fred 4096 Feb 16 17:40 hooks -rw-rw-r-- 1 fred fred 73 Feb 16 17:40 description drwxrwxr-x 2 fred fred 4096 Feb 16 17:40 branches drwxrwxr-x 4 fred fred 4096 Feb 16 17:40 refs drwxrwxr-x 4 fred fred 4096 Feb 16 17:40 objects -rw-rw-r-- 1 fred fred 23 Feb 16 17:40 HEAD -rw-rw-r-- 1 fred fred 92 Feb 16 17:40 config more /var/www/funigo/.git/config [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [remote "origin"] url = https://github.com/fredrob622/funigo_google_ai.git fetch = +refs/heads/*:refs/remotes/origin/* [branch "main"] remote = origin merge = refs/heads/main git remote -v origin https://github.com/fredrob622/funigo_google_ai.git (fetch) origin https://github.com/fredrob622/funigo_google_ai.git (push) git add * git commit -m "202509141800 avec la documentation mise à jour" git branch -M main git push -u origin main git log --oneline



Windows Installation de ComfyUI

Installation de ComfyUI Étape 1 : Télécharger ComfyUI powershellcd C:\Users\fredr git clone https://github.com/comfyanonymous/ComfyUI.git cd ComfyUI Étape 2 : Installer PyTorch (CPU version) python -m pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu Étape 3 : Installer les dépendances de ComfyUI python -m pip install -r requirements.txt Étape 4 : Installer torch-directml (pour Intel Arc) python -m pip install torch-directml Étape 5 : Lancer ComfyUI python main.py --directml



PowerShell Voir le CPU lamémoire et la carte graphic

Voir la mémoire --------------- $os = Get-CimInstance Win32_OperatingSystem [PSCustomObject]@{ 'RAM totale (GB)' = [math]::Round($os.TotalVisibleMemorySize/1MB,2) 'RAM libre (GB)' = [math]::Round($os.FreePhysicalMemory/1MB,2) 'RAM utilisée (%)' = [math]::Round((1 - ($os.FreePhysicalMemory/$os.TotalVisibleMemorySize))*100,2) } Voir le processeur et la mémoire -------------------------------- Get-ComputerInfo | Select-Object CsProcessors, CsTotalPhysicalMemory CsProcessors CsTotalPhysicalMemory ------------ --------------------- {Intel(R) Core(TM) Ultra 9 185H} 33863876608 PS C:\Users\fredr> Get-CimInstance Win32_ComputerSystem | Select-Object Manufacturer, Model Manufacturer Model ------------ ----- GEEKOM GT1 Mega PS C:\Users\fredr> Get-CimInstance Win32_VideoController | Select-Object Name, AdapterRAM Name AdapterRAM ---- ---------- Intel(R) Arc(TM) Graphics 2147479552



LINUX PROD nodejsd pm2

sudo npm install -g pm2 Démarrage: ---------- cd /var/www/funigo pm2 start server.js --name funigo Les commandes ------------- pm2 status pm2 logs funigo pm2 restart funigo pm2 stop funigo



LINUX Sauvegarde funigo sur USB

********************************************************************************** # Faire la sauvegarde sur la clé USB ********************************************************************************** Faire le tar compresser ----------------------- cd /var/www timestamp=$(date +%Y%m%d_%H%M%S) && \ sudo tar czf /media/fred/back_funigo/funigo_$timestamp.tgz \ --exclude='./funigo/node_modules' \ funigo Vérification ------------ fred@funigo:/var/www $ ls -lh /media/fred/back_funigo/fu* -rwxr-xr-x 1 root root 283M Feb 2 10:22 /media/fred/back_funigo/funigo_20260202_102234.tgz



Linux Apache configuration

fichier /etc/apache2/apache2.conf fred@funigo:~ $ sudo cat /etc/apache2/sites-available/funigo.conf # Redirection de HTTP vers HTTPS <VirtualHost *:80> ServerName www.funigo.fr ServerAlias funigo.fr # On redirige tout vers la version sécurisée Redirect permanent / https://www.funigo.fr/ </VirtualHost> # Configuration principale pour HTTPS (SSL) <VirtualHost *:443> ServerName www.funigo.fr ServerAlias funigo.fr # On adapte vos chemins Windows vers Linux SSLEngine on SSLCertificateFile "/etc/letsencrypt/live/funigo.fr/fullchain.pem" SSLCertificateKeyFile "/etc/letsencrypt/live/funigo.fr/privkey.pem" # Vos headers de sécurité [cite: 81, 82] Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains" <IfModule mod_headers.c> Header set Content-Security-Policy "default-src 'self'; script-src 'self' 'sha256-8AFl6gs2BjOGxU9eZtoVWi4wLFMR4DkrvF+TlMsKORc='; style-src 'self' https://cdnjs.cloudflare.com 'unsafe-inline'; connect-src 'self' https://api.open-meteo.com https://api.exchangerate-api.com https://worldtimeapi.org https://cdn.jsdelivr.net; img-src 'self' data:; font-src 'self' https://cdnjs.cloudflare.com data:;" Header set X-Frame-Options "SAMEORIGIN" Header set X-Content-Type-Options "nosniff" Header set Referrer-Policy "no-referrer-when-downgrade" </IfModule> # Configuration du Reverse Proxy vers Node.js ProxyPass /.well-known ! ProxyPreserveHost On ProxyRequests Off ProxyPass / http://localhost:5000/ ProxyPassReverse / http://localhost:5000/ # Chemins des logs version Linux ErrorLog ${APACHE_LOG_DIR}/funigo-error.log CustomLog ${APACHE_LOG_DIR}/funigo-access.log common </VirtualHost> ******************************************************************************************************************************* Activer les modules Apache ******************************************************************************************************************************* 1. Préparer le terrain : Activer les modules Apache Sur Windows, vous activiez les modules avec des lignes LoadModule directement dans le fichier. Sur Raspberry Pi, c'est bien plus simple ! On utilise des commandes pour "allumer" les options. Ouvrez votre terminal et tapez ces commandes pour activer ce dont votre configuration a besoin: sudo a2enmod ssl (Pour le cadenas vert) sudo a2enmod proxy proxy_http (Pour parler à votre app Node.js) sudo a2enmod headers (Pour la sécurité renforcée) sudo a2enmod rewrite (Pour les redirections) sudo a2enmod ssl sudo a2enmod proxy proxy_http sudo a2enmod headers sudo a2enmod rewrite sudo systemctl restart apache2 fred@funigo:~ $ sudo a2ensite funigo.conf Enabling site funigo. To activate the new configuration, you need to run: systemctl reload apache2 On copie les fichiers .pem de window vers linux sudo cp ~/apache-file/*.pem /etc/letsencrypt/live/funigo.fr fred@funigo:~ $ sudo systemctl reload apache2



SQL Supprimer une vue

MariaDB [jap]> show FULL TABLES where table_type = 'view'; +---------------+------------+ | Tables_in_jap | Table_type | +---------------+------------+ | v_quiz_ora | VIEW | | vue_quiz_2 | VIEW | | vue_quiz_N2 | VIEW | | vue_quiz_N4 | VIEW | | vue_quiz_N5 | VIEW | | vue_quiz_n1 | VIEW | | vue_quiz_n2 | VIEW | | vue_quiz_n3 | VIEW | | vue_quiz_n4 | VIEW | +---------------+------------+ 9 rows in set (0.001 sec) MariaDB [jap]> drop view vue_quiz_N5; Query OK, 0 rows affected (0.006 sec)



mysql Mysql configuration du service MYSQL par modification de la clé

Ordinateur\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL ImagePath --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" MySQL


Image pour l'article

HTML Ouvrir un fichier dans un onglet

Ouvrir un fichier dans un onglet


Image pour l'article

CSS Faire clignoter un élément (ex paramètre)

Faire clignoter le paragraphe <p style="animation: blink 2s infinite;"><br>Cliquer sur une ligne pour avoir des détails<br></p> Blink est l’identifiant qui permet la définition du keyframe dans le css Dans le css définition de @keyframes blink { 0% { opacity: 1; } 20% { opacity: 0; } 100% { opacity: 1; } }



GIT Faire un commit

git add * git commit -m "202509141800 avec la documentation mise à jour" git branch -M main git push -u origin main git log --oneline History



SQL Inserer des données avec un retour à la ligne dans un champ

Pour insérer des retours à la ligne dans une colonne texte (comme ARTICLE ou CONTENU) dans MySQL, tu peux utiliser la séquence d’échappement qui représente un saut de ligne. Par exemple : INSERT INTO funigo_blog (TITRE, ARTICLE, DATE_CREAT, DATE_MODIF) VALUES ('Titre de l'article', 'Première ligne Deuxième ligne Troisième ligne', '2025-09-10', '2025-09-10'); Autre méthode avec la fonction CHAR() pour insérer un saut de ligne (code ASCII 10) : INSERT INTO funigo_blog (TITRE, ARTICLE, DATE_CREAT, DATE_MODIF) VALUES ('Titre', CONCAT('Première ligne', CHAR(10), 'Deuxième ligne', CHAR(10), 'Troisième ligne'), '2025-09-10', '2025-09-10');



SQL Voir l'année et le niveau intégré dans la table quiz

mysql> SELECT DISTINCT annee, niveau FROM quiz; +-------+-----------+ | annee | niveau | +-------+--------+ | 1991 | N3 | | 1991 | N4 | | 1993 | N4 | | 1992 | N3 | | 1992 | N4 | | 1991 | N2 | | 1993 | N3 | | 1994 | N4 | | 1992 | N2 | +-------+--------+



SQL Insérer des valeurs dans une table

INSERT INTO vocab_char (niveau, kana, kanji, francais) VALUES ('N5', 'つかう', '使う', 'employer, utiliser'); N5 つかう 使う employer, utiliser select * from vocab_char where kanji = '使う'; mysql> select * from vocab_char where kanji = '使う'; +------------+--------+-----------+--------+------------------------+ | voca_index | niveau | kana | kanji | francais | +------------+--------+-----------+--------+------------------------+ | 26312 | N5 | つかう | 使う | employer, utiliser | +------------+--------+-----------+--------+-------------------------+ 1 row in set (0.00 sec)



MYSQL Avoir les caractères japonais sous POWERSHELL

PS C:WINDOWSsystem32> mysql --default-character-set=utf8mb4 -u root -p Enter password: **********



SQL Renuméroter l'index d’une table

Créer une nouvelle table temporaire avec la même structure (sauf l'ID) : Nous allons créer une table temporaire pour y stocker les données avec les nouveaux IDs. CREATE TABLE quiz_new ( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, ANNEE INT, NIVEAU VARCHAR(2), TEXTE TEXT, REP_OK TEXT, QUESTION TEXT, REP1 TEXT, REP2 TEXT, REP3 TEXT, REP4 TEXT ); Insérer toutes les données de l'ancienne table dans la nouvelle, en générant de nouveaux IDs consécutifs : C'est ici que nous utilisons une variable utilisateur pour assigner un id consécutif à chaque ligne lors de l'insertion. SET @row_number = 0; -- Initialiser le compteur INSERT INTO quiz_new (ANNEE, NIVEAU, TEXTE, REP_OK, QUESTION, REP1, REP2, REP3, REP4) SELECT ANNEE, NIVEAU, TEXTE, REP_OK, QUESTION, REP1, REP2, REP3, REP4 FROM quiz ORDER BY id; -- Il est important de trier pour que les nouveaux IDs reflètent un ordre logique si désiré Note : Nous ne spécifions pas la colonne id dans l'INSERT de quiz_new, car elle est AUTO_INCREMENT et générera automatiquement les IDs à partir de 1. ORDER BY id est important ici pour s'assurer que si vous aviez des IDs non consécutifs dans l'ancienne table, les nouvelles IDs suivent l'ordre des anciennes IDs. Supprimer l'ancienne table quiz : DROP TABLE quiz; Renommer la nouvelle table quiz_new en quiz : ALTER TABLE quiz_new RENAME TO quiz;



SQL Intégrer un fichier csv dans une table après DELETE

Réinitialiser le compteur sans vider la table (uniquement si la table est déjà vide mais le compteur est élevé) Si vous avez déjà vidé la table avec DELETE FROM mais que le compteur n'a pas été réinitialisé : SQL -- 1. Vérifiez que la table est bien vide : SELECT COUNT(*) FROM quiz; -- Doit retourner 0 -- 2. Réinitialiser le compteur AUTO_INCREMENT à 1 ALTER TABLE quiz AUTO_INCREMENT = 1; -- 3. Ensuite, chargez vos données LOAD DATA INFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/quiz.csv' INTO TABLE quiz FIELDS TERMINATED BY ',' ENCLOSED BY '"' -- Ajustez cette ligne si vos champs ne sont pas entourés de guillemets LINES TERMINATED BY ' ' IGNORE 1 ROWS -- Ajustez cette ligne si votre CSV n'a pas d'en-tête ( @dummy_id, -- Lit le premier champ du CSV dans une variable temporaire non utilisée ANNEE, NIVEAU, TEXTE, REP_OK, QUESTION, REP1, REP2, REP3, REP4 );



SQL Modifier une colonne en TEXT

ALTER TABLE quiz MODIFY question TEXT;



SQL Importer les données d'un fichier csv dans une table

LOAD DATA INFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/quiz.csv' INTO TABLE quiz FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY ' ' IGNORE 1 ROWS;



SQL Effacer les données d'une table

DELETE FROM quiz; : Supprime toutes les lignes, mais ne réinitialise pas le compteur AUTO_INCREMENT. TRUNCATE TABLE quiz; : Supprime toutes les lignes et réinitialise le compteur AUTO_INCREMENT à sa valeur de départ (généralement 1). C'est beaucoup plus rapide pour vider une table.



SQL Extraire les données d'une table dans un fichier csv

SELECT * FROM quiz INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/quiz_20250907.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY ' ';



MYSQL Voir le répertoire autorisé à charger

mysql> SHOW VARIABLES LIKE 'secure_file_priv'; +------------------+------------------------------------------------+ | Variable_name | Value | +------------------+------------------------------------------------+ | secure_file_priv | C:ProgramDataMySQLMySQL Server 8.0Uploads | +------------------+------------------------------------------------+ 1 row in set, 1 warning (0.00 sec)



MYSQL Avoir UTF8 dans Mysql 8.0 Command Line CLI

mysql> SHOW VARIABLES LIKE 'char%'; +--------------------------+---------------------------------------------------------+ | Variable_name | Value | +--------------------------+---------------------------------------------------------+ | character_set_client | cp850 | | character_set_connection | cp850 | | character_set_database | utf8mb4 | | character_set_filesystem | binary | | character_set_results | cp850 | | character_set_server | utf8mb4 | | character_set_system | utf8mb3 | | character_sets_dir | C:Program FilesMySQLMySQL Server 8.0sharecharsets | +--------------------------+---------------------------------------------------------+ 8 rows in set, 1 warning (0.01 sec) Se logger avec powershell Mysql -u root -p --default-character-set=utf8mb4