Aucun commentaire

Installation de Curlew faite 😀

Comme indiqué dans le Readme, j'ai vérifié (et installé si besoin) les dépendances suivantes :

sudo apt install python

->Il a fallu que j'installe

sudo apt install python-is-python3 2to3
sudo apt install python3-gi python3-dbus gir1.2-gtk-3.0 gir1.2-gstreamer-1.0 ffmpeg libavcodec-extra xdg-utils mediainfo gnome-icon-theme-symbolic librsvg2-bin intltool-debian 

Ensuite, copier/coller le dossier (une fois décompressé 😏) que j'ai téléchargé ici dans mon /home/user, puis un clic droit pour ouvrir le dossier dans un terminal, et saisir

sudo python3 setup.py install --prefix=/usr

Et voilà !

Allez, à bientôt o/

Aucun commentaire

Mon SSD Samsung de 64Go de 2011(!) m'a finalement lâché... J'en ai profité pour passer de Linux Mint Mate à Debian 12.

Étant passé par Ubuntu puis Linux Mint, j'ai petit à petit appris à ne pas avoir trop peur des lignes de commande (encore que bon, ce n'est pas intuitif comme beaucoup de barbus ^^)

Et pour continuer mon "pense-bête" sur ce dont je me sers et comment j'installe ça sur mon pc, voici une mise à jour.

Une fois le 1ᵉʳ démarrage fait, pour avoir une connexion automatique, se connecter en root, et dans le terminal, saisir :

nano /etc/lightdm/lightdm.conf

Décommenter

autologin-user=mon-user
autologin-user-timeout=0

Et ajouter "mon_user" à la liste des "sudoers" pour avoir le droit de passer des commandes avec des droits plus élevés :

nano /etc/sudoers

En fin de fichier ajouter

mon_user  ALL=(ALL:ALL) ALL

Puis, on repasse en user normal.

  • Je Commence par installer mon terminal préféré Tabby
wget https://github.com/Eugeny/tabby/releases/download/v1.0.172/tabby-1.0.197-linux-x64.deb

Pour l'installation

sudo dpkg -i /home/adrien/Téléchargements/tabby-1.0.197-linux-x64.deb

Une fois installé -> paramètre -> schéma de couleurs -> je choisi "Deep"
Et aussi -> Terminal -> tout en bas, je désactive "Ouvrir automatiquement un terminal....." mais j'active "Restaurer les onglets ouverts..."

Pour utiliser wget, mettre à jour, mais si

sudo apt-get upgrade

donne une erreur, alors saisir

apt --fix-broken install

Puis installer wget

apt-get install wget
sudo wget https://protonvpn.com/download/protonvpn-stable-release_1.0.1-1_all.deb

Puis installer le fichier téléchargé.
Après avoir installé le .deb pour protonvpn

sudo apt-get update
sudo apt-get install protonvpn

Pour l'utiliser, je créé le fichier vpn.sh dans lequel je mets

#!/bin/bash
protonvpn

Enregistrer et dans les propriétés, onglet "permission", cocher la case "autoriser l'exécution..."
Glisser ensuite ce fichier dans la barre des tâches pour créer un lanceur. Ne pas supprimer le fichier vpn.sh du bureau.
Je m'étais déjà aperçu que le client avait parfois du mal à se connecter. J'ai donc ajouté ces lignes dans

sudo crontab -e
@reboot nmcli connection delete pvpn-killswitch
@reboot nmcli connection delete pvpn-ipv6leak-protection

Je passe mon pc de DHCP à une IP fixe et indique l'ip des serveurs dns "ns0.fdn.fr : 80.67.169.12 ou 2001:910:800::12" ou "ns1.fdn.fr : 80.67.169.40 ou 2001:910:800::40" (source : https://www.ffdn.org/en/services).

La suite ne change quasiment pas :

  • Mon logiciel pour les mots de passe enpass que je synchronise via Webdav
sudo -i
echo "deb https://apt.enpass.io/ stable main" > \
 /etc/apt/sources.list.d/enpass.list
wget -O - https://apt.enpass.io/keys/enpass-linux.key | tee /etc/apt/trusted.gpg.d/enpass.asc
apt-get update
apt-get install enpass
exit

Dans le navigateur déjà présent (Firefox) :
- Language Tool -> un correcteur de texte ;
- Alter -> pour une redirection (de Youtube et consort) vers des alternatives respectueuses de la vie privée ;
- ghostery
- downloadhelper
- Firefox Multi-Account Containers

Dans about:config, je met à True la valeur de "privacy.resistFingerprinting"

Ensuite, niveau "outils" sur mon pc, je pourrais difficilement me passer de :

  • FreeTube
    wget https://github.com/FreeTubeApp/FreeTube/releases/download/v0.18.0-beta/freetube_0.18.0_amd64.deb
  • l'agent dwservice (prise en main à distance)
    sudo wget https://www.dwservice.net/download/dwagent_generic.sh
  • vnc viewer (prise en main locale)
    wget https://downloads.realvnc.com/download/file/viewer.files/VNC-Viewer-7.0.1-Linux-x64.deb

Une fois ceci fait, j'ai eu plus de mal avec la suite.

Pour

  • cryptomator
    sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
    sudo flatpak install flathub org.cryptomator.Cryptomator
    sudo flatpak override org.cryptomator.Cryptomator --filesystem=host
    Bon, du coup à chaque ouverture de coffre, au lieu de m'ouvrir le dossier contenant les données, c'est mon terminal qui s'ouvre... Il faut alors aller chercher les fichiers dans "/home/mon_user/.local/share/Cryptomator/mnt/"

Pour mon imprimante (Epson EcoTanck 2810),

sudo apt install --reinstall cups cups-bsd cups-client tasksel foomatic-db-engine hp-ppd hplip openprinting-ppds printer-driver-all
sudo service cups status

Puis se rendre à l'adresse suivante (je ne connaissais pas ^^)
http://localhost:631/printers/
Et pour installer une imprimante (les identifiants sont ceux du pc (root/mot de passe)), choisir "ipp everywhere".
Le scanner n'est plus vu direct, il faut installer Epson scan 2, extraire le fichier, puis clic droit pour ouvrir dans un terminal (choisir une application, etc.). Dans le terminal, saisir

sh install.sh

Les mp4 n'étant pas lu nativement, j'installe VLC

sudo apt install vlc

Et je me sers toujours de minidlna, mais pour ne pas faire de doublons, il faut aller voirici

Ce qui ne fonctionne plus et qui m'embête bien :

  • Pour la conversion de fichiers, j'utilisais curlew. Il ne semble pas encore "compatible" avec Debian 12... 😥
  • Pour faire des manips sur mon tél Android, je me servais de scrcpy 😭

Allez, à bientôt o/

Aucun commentaire

Suite à l'article de Sebsauvage sur PhoneTrack + NextCloud, j'étais bien embêté. Je trouvais l'idée sympa et utile, mais vu que je viens d'arrêter Nextcloud pour diverses raisons, je me suis sentis "frustré" (façon de parler).
Mais comme il le dit si bien :

Il est à noter que vous pouvez utiliser l'application PhoneTrack sans NextCloud : Vous pouvez lui demander d'envoyer les coordoonées GPS par HTTP (GET ou POST) à l'URL de votre choix (vous pouvez donc très bien développer votre propre application pour réceptionner les positions GPS).

C'est donc ce que je me suis attelé à faire, même s'il ne s'agit pas d'une application en fait ^^

Ci-dessous, j'explique comment j'ai fait, et ça commence déjà par avoir son nom de domaine à soit bien entendu.

Attention, ce n'est sûrement pas le plus propre possible, mais ça fonctionne. Si vous avez des suggestions...

Commencer par installer sur le smartphone l'appli phonetrack.
Niveau réglages, cocher les paramètres que vous voulez, puis créer un "log job personnalisé" en cliquant sur le "+" en bas de l'écran. En url mettez ceci :

http://votre_ndd/time=;%TIMESTAMP;=;bidulelat=;%LAT;=;%LON;

- autant de points-virgules pour être sûr de bien avoir les séparations lors de la récupération des infos ;
- le "bidulelat" pour avoir une expression à peu près unique que l'on recherchera dans le fichier de log ;

Dans votre index.php (ou toute autre page), saisir les lignes suivantes :


<!--<tbody>-->
<!DOCTYPE html>
<html>
    <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf8">
      <link rel="SHORTCUT ICON" href="img.png">
      <title>Géolocalisation_smartphone</title>
    </head>
  <div style="text-align: left;" id="header"><a class="nom_du_site"><b>Géolocalisation_smartphone</b></a>
 <body>

<?php
echo "<br>";
?>
   
<?php
$emplacement = '/emplacement/ou/seront/stockes/vos/coordonnees/';

//recherche uniquement de fichiers "CSV"
$files = scandir($emplacement);
$csvFiles = array_filter($files, function ($file) {
    return pathinfo($file, PATHINFO_EXTENSION) === 'csv';
});

if (empty($csvFiles)) {
    echo 'Aucun fichier CSV trouvé dans cet emplacement.';
} else {
    $selectedFile = isset($_GET['file']) ? $_GET['file'] : '';
    $selectedLine = isset($_GET['line']) ? $_GET['line'] : 0;

    if (empty($selectedFile) || !in_array($selectedFile, $csvFiles)) {
        echo '<form method="get" action="">';
        echo 'Choisir un fichier CSV : ';
        echo '<select name="file">';
        foreach ($csvFiles as $file) {
            echo '<option value="' . $file . '">' . $file . '</option>';
        }
        echo '</select>';
        echo '<input type="submit" value="Sélectionner">';
        echo '</form>';
    } else {
        //echo 'Fichier sélectionné : ' . $selectedFile;
        // Autres traitements à effectuer avec le fichier sélectionné

        // Lecture du fichier CSV
        $fileContent = file_get_contents($emplacement . $selectedFile);
        $lines = explode("\n", $fileContent);

        if (!is_numeric($selectedLine) || $selectedLine < 0 || $selectedLine >= count($lines)) {
            $selectedLine = 0;
        }

        // Affichage du formulaire de sélection de ligne
        echo '<form method="get" action="">';
        echo 'Sélectionner un autre fichier CSV : ';
        echo '<select name="file">';
        foreach ($csvFiles as $file) {
            $selected = ($file === $selectedFile) ? 'selected' : '';
            echo '<option value="' . $file . '" ' . $selected . '>' . $file . '</option>';
        }
        echo '</select>';
        echo '<br>';
        echo 'Sélectionner une ligne à afficher : ';
        echo '<select name="line" onchange="this.form.submit()">';
        foreach ($lines as $index => $line) {
            $selected = ($index == $selectedLine) ? 'selected' : '';
            $columns = explode(';', $line);
            $time = $columns[0];
            echo '<option value="' . $index . '" ' . $selected . '>' . $time . '</option>';
        }
        echo '</select>';
        echo '</form>';

        // Affichage du tableau avec la ligne sélectionnée
        echo '<table>';
        $line = $lines[$selectedLine];
        $columns = explode(';', $line);
        $time = $columns[0];
        $latitude = $columns[1];
        $longitude = $columns[2];

        //echo '<tr>';
        //echo '<td>' . $time . '</td>';
        //echo '<td>' . $latitude . '</td>';
        //echo '<td>' . $longitude . '</td>';
        //echo '</tr>';      
        
        echo "<br>";
        echo $time . '<br>';
        echo $latitude . '</br>';
        echo $longitude . '</br>';
        //echo '</tr>';

        echo '</table>';
      
        // Utilisation des valeurs dans le code JavaScript
        echo '<script>';
        echo 'var lat = ' . $latitude . ';';
        echo 'var lon = ' . $longitude . ';';
        echo '</script>';
    }
}
?>

<br>
   <head>
        <meta charset="utf-8">
        <!-- Nous chargeons les fichiers CDN de Leaflet. Le CSS AVANT le JS -->
        <link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.1/dist/leaflet.css" integrity="sha512-Rksm5RenBEKSKFjgI3a41vrjkw4EVPlJ3+OiI65vTjIdo9brlAacEuKOiQ5OFh7cOI1bkDwLqdLw3Zg0cRJAAQ==" crossorigin="" />
        <style type="text/css">
            #map{ /* la carte DOIT avoir une hauteur sinon elle n'apparaît pas */
                height:400px;
            }
        </style>
        <title>Carte</title>
    </head>
    <body>
        <div id="map">
	    <!-- Ici s'affichera la carte -->
	</div>
        <!-- Fichiers Javascript -->
        <script src="https://unpkg.com/leaflet@1.3.1/dist/leaflet.js" integrity="sha512-/Nsx9X4HebavoBvEBuyp3I7od5tA0UzAxs+j83KgC8PU0kgB4XiK4Lfe4y4cgBtaRJQEIFCW+oC506aPT2L1zw==" crossorigin=""></script>
	<script type="text/javascript">
            // On initialise la latitude et la longitude de Paris (centre de la carte)
            console.log('Latitude:', lat);
            console.log('Longitude:', lon);
            var macarte = null;
            // Fonction d'initialisation de la carte
            function initMap() {
                // Créer l'objet "macarte" et l'insèrer dans l'élément HTML qui a l'ID "map"
                macarte = L.map('map').setView([lat, lon], 11);
                // Leaflet ne récupère pas les cartes (tuiles) sur un serveur par défaut. Nous devons lui préciser où nous souhaitons les récupérer. Ici, openstreetmap.fr
                L.tileLayer('https://{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png', {
                    // Il est toujours bien de laisser le lien vers la source des données
                    attribution: 'données © <a href="//osm.org/copyright">OpenStreetMap</a>/ODbL - rendu <a href="//openstreetmap.fr">OSM France</a>',
                    minZoom: 15,
                    maxZoom: 20
                }).addTo(macarte);
// Nous ajoutons un marqueur
var marker = L.marker([lat, lon]).addTo(macarte);
            }
            window.onload = function(){
		// Fonction d'initialisation qui s'exécute lorsque le DOM est chargé
		initMap(); 
            };
        </script>
    </body>
 </body>
  </div> 
</html>

Avec juste ce code, la page n'affiche rien hormis un bouton pour la sélection d'un fichier, et pour cause, le serveur n'a pas encore récupéré les données 🤪
Il faudra créer 2 scripts sur le serveur pour ça.

Le 1er :

nano /emplacement/script_surveillance_log.sh

#!/bin/bash

# Chemin du fichier de journal Apache
access_log="/var/log/apache2/access.log"

# Chemin du fichier de destination pour les lignes extraites
coordonnees_brutes="/emplacement/ou/seront/stockes/vos/coordonnees/coordonnees_brutes.txt"

# chemin du fichier après suppression des doublons
input_file_1="/emplacement/ou/seront/stockes/vos/coordonnees/coordonnees_uniq_1.txt"

# Chemin du fichier de sortie après suppression des %
output_file_1="/emplacement/ou/seront/stockes/vos/coordonnees/coordonnees_uniq_2.txt"

# chemin du fichier avec les dates propres
output_file_2="/emplacement/ou/seront/stockes/vos/coordonnees/coordonnees_dates_propres.txt"

# chemin du fichier contenant toutes les dates présentes dans le fichier de log
fichier_sortie_1="/emplacement/ou/seront/stockes/vos/coordonnees/coordonnees_all_dates.csv"

# chemin du fichier ne contenant que les coordonnées du jour mais parfois avec des doublons
fichier_sortie_2="/emplacement/ou/seront/stockes/vos/coordonnees/coordonnees_du_jour.txt"

# chemin du fichier ne contenant que les coordonnées du jour sans doublons
fichier_sortie_3="/emplacement/ou/seront/stockes/vos/coordonnees/coordonnees_du_jour_uniq.txt"

# chemin fichier de sortie du jour
fichier_du_jour="/emplacement/ou/seront/stockes/vos/coordonnees/coordonnees_aujourd-hui.csv"

# Fonction pour extraire les lignes du fichier de log, supprimer les doublons puis les %
recup_lignes() {
    # Recherche des lignes contenant le motif spécifié (par exemple, "bidulelat=;")
sudo grep "bidulelat=;" "$access_log" | cut -d";" -f 2,5,7  >> "$coordonnees_brutes"

    # suppression des doublons :
sudo cat "$coordonnees_brutes" | sort | uniq > "$input_file_1"

	# suppression des lignes contenant %
	# Utilise sed pour supprimer les lignes contenant le caractère '%'
sed '/%/d' "$input_file_1" > "$output_file_1"

}

# Surveille en continu le fichier de journal
tail -f "$access_log" | while read -r line; do
    # Affichez la ligne en cours pour vérification (optionnel)
    echo "$line"

    # Appelez la fonction pour extraire les lignes appropriées
    recup_lignes

	# Lecture du fichier TXT
while IFS=';' read -r timestamp col2 col3
do
    # Conversion du timestamp en format lisible
    date_propre=$(date -d @$timestamp)

    # Ajout des données modifiées à un nouveau fichier CSV
    echo "$date_propre;$col2;$col3" >> "$output_file_2"
done < "$output_file_1"

    # RE-suppression des doublons (au cas ou...)
    # et envois du résultat vers un fichier CSV avec toutes les dates du fichier de log
sudo cat "$output_file_2" | sort | uniq > "$fichier_sortie_1"

    # Remplacer la date du jour qui ressemeble à 'jeu. 20 juil. 2023'
    # par la date de la veille au format spécifique
date_veille=$(date -d "yesterday" +"%a %e %b %Y")

    # Utiliser grep avec une expression régulière pour enlever les lignes
    # qui correspondent exactement à la date de la veille au début de la ligne
grep -vE "^$date_veille" "$output_file_2" > "$fichier_sortie_2"

    # suppression des doublons (oui encore au cas ou) :
sudo cat "$fichier_sortie_2" | sort | uniq > "$fichier_sortie_3"

    # passage du fichier TXT en fichier CSV
sudo cp "$fichier_sortie_3" "$fichier_du_jour"

done

Et on rends ce script exécutable

chmod +x /emplacement/script_surveillance_log.sh

Le 2nd qui permettra de créer un fichier par date afin de rendre plus facile la recherche pour la géolocalisation

chmod +x /emplacement/script_archivage.sh

#!/bin/bash
    annee=$(date +%Y)
    mois=$(date +%m)
    jour=$(date +%d)
    jour=$[$jour-1]
    date=$annee-$mois-$jour

	# chemin fichier d'entrée
fichier_du_jour="/emplacement/ou/seront/stockes/vos/coordonnees/coordonnees_aujourd-hui.csv"

fichier_tmp_1="/emplacement/ou/seront/stockes/vos/coordonnees/coordonnees_tmp_1.csv"
fichier_tmp_2="/emplacement/ou/seront/stockes/vos/coordonnees/coordonnees_tmp_2.csv"
fichier_tmp_3="/emplacement/ou/seront/stockes/vos/coordonnees/coordonnees_tmp_3.csv"

sudo cp "$fichier_du_jour" "fichier_tmp_1"

	# création de la variable qui définie la date de la veille
date_veille=$(date -d "yesterday" +"%a %e %b %Y")

	# ici on ne garde que la date de la veille
grep -E "^$date_veille" "$fichier_tmp_1" > "$fichier_tmp_2"

    # suppression des doublons :
sudo cat "$tmp_file_2" | sort | uniq > "$ichier_tmp_3"

sudo mv "$ichier_tmp_3" /emplacement/ou/seront/stockes/vos/coordonnees/coordonnees-$date.csv

    # suppression des fichiers afin de repartir à zéro
sudo rm -f /emplacement/ou/seront/stockes/vos/coordonnees/coordonnees_brutes.txt
sudo rm -f /emplacement/ou/seront/stockes/vos/coordonnees/coordonnees_uniq_1.txt
sudo rm -f /emplacement/ou/seront/stockes/vos/coordonnees/coordonnees_uniq_2.txt
sudo rm -f /emplacement/ou/seront/stockes/vos/coordonnees/coordonnees_dates_propres.txt
sudo rm -f /emplacement/ou/seront/stockes/vos/coordonnees/coordonnees_all_dates.csv
sudo rm -f /emplacement/ou/seront/stockes/vos/coordonnees/coordonnees_du_jour.txt
sudo rm -f /emplacement/ou/seront/stockes/vos/coordonnees/coordonnees_du_jour_uniq.txt
sudo rm -f /emplacement/ou/seront/stockes/vos/coordonnees/coordonnees_aujourd-hui.csv
sudo rm -f /emplacement/ou/seront/stockes/vos/coordonnees/coordonnees_tmp_1.csv
sudo rm -f /emplacement/ou/seront/stockes/vos/coordonnees/coordonnees_tmp_2.csv
sudo rm -f /emplacement/ou/seront/stockes/vos/coordonnees/coordonnees_tmp_3.csv

Et on rends (biensûr aussi ^^) ce script exécutable

chmod +x /emplacement/script_archivage.sh

On peut mettre tout ça dans


crontab -e

# au démarrage, surveillance du fichier de log apache2 pour extraire les coordonnées GPS du smartphone
@reboot sudo /emplacement/script_surveillance_log.sh
# tous les jours à 0h01, sauvegarde des coordonnée GPS du smartphone de la veille
01 0 * * * sudo /emplacement/script_archivage.sh

On peut ainsi avoir l'emplacement de téléphone à l'heure que l'on souhaite.

Biensur, ceci ne doit pas être utilisé à des fins d'espionnage ou de tracking d'un appareil sans le consentement du propriétaire du dît appareil.
Perso, c'est sur le meins en cas de pertes, ou s'il m'arrive quelque chose lors d'une rando (j'ai fournit le lien aux personnes suseptible d'en avoir besoin)

Je n'ai pas "créé" tout ces codes, je me suis largement inspiré de ce que j'ai pu "sous-tiret" ça et là...

À bientôt.

o/

Aucun commentaire

Pour mémoire, dans mon sudo crontab -e, je mets :

# exécution du fichier rsync.sh qui se trouve sur mon bureau toutes les heures
* */1 * * * sudo /home/user/Bureau/rsync.sh

# montage au démarrage du HDD du pc sous win
@reboot sudo mount.cifs //192.168.1.x/d_pc_win_reseau /home/user/d_pc_win_reseau -o user=user_autre_pc,password=mdp_user_autre_pc

# désactivation à chaque démarrage des options du vpn afin d'avoir du réseau
# sinon, il arrive parfois qu'au démarrage le réseau ne fonctionne pas
@reboot nmcli connection delete pvpn-killswitch
@reboot nmcli connection delete pvpn-ipv6leak-protection

L'explication pour les 2 lignes contenant nmcli, c'est qu'après 1 mois d'utilisation de mon pc sous Linux Mint Mate, je viens de me rendre compte que mon vpn, que je lançais tout comptant à chaque démarrage de mon pc, avec comme seule vérification l'icône de l'interface réseau dans mon tableau de bord, ne me "protégeais" de strictement rien !

Enfin j'ai refait mon pc il y a moins de 2 semaines, alors c'est peut-être à ce moment-là que j'ai mal fait un truc... Toujours est-il que ces derniers jours, je me suis rendu compte (via l'icône réseau dans mon tableau de bord), que peu voir pas de trafic transitait via le vpn. Et c'est ce que le site http://www.ripe.net/ m'a confirmé en m'affichant l'ip que mon fournisseur internet.

Après pas mal de recherches, des désinstallations/ré-installations, modification de ma carte Ethernet et même l'installation de gnome-terminal pour le mettre en application par défaut comme évoqué ici et ici, rien n'y a fait.

Il y a pourtant sûrement quelque chose dans ma config qui a changé le comportement du vpn, parce que maintenant c'est tout bon...? Et à chaque démarrage !

Si quelqu'un a une idée du pourquoi du comment. On ne sait jamais ^^

À bientôt.

o/

Aucun commentaire

Ne sachant pas si ça vient de moi ou non, j'vais mettre ici la solution que j'ai trouvée !

Shaarli est un outil super pour se faire une sorte de base de donnée afin d'archiver des choses que l'on a trouvées utiles, qui nous ont aidées et qui pourraient encore nous aider dans le futur.
Et si pour beaucoup, le but est le partage de liens, d'astuces à destination des autres, mais que personne ne sait que vous avez un Shaarli, alors le partage est limité.

C'est là qu'intervient l'API de Shaarli dont la doc est disponible ici. Ça sert à rassembler des Shaarli de diverses personnes (si j'ai bien compris ^^), et c'est ce que l'on appelle the river. Et si on s'abonne au flux RSS des personnes qui hébergent cette API, cela revient à s'abonner à toutes les personnes qui ont des Shaarli référencés chez celui qui a l'API. Mais au lieu d'avoir pleins de flux RSS dans son lecteur de flux, on en a qu'un.

Après en avoir fait la demande, mon Shaarli est donc désormais dans la liste d'Oros 😀

Mais ça n'a pas été pour moi aussi simple. En effet, une erreur 404 lors de l'appel de la page https://sous-tiret.ddns.net/shaarli/feed/atom, parce que mon flux RSS pointait en réalité vers https://sous-tiret.ddns.net/shaarli/index.php/feed/atom.

Pourtant, mon installation sortait "du moule"... Et qu'en enlevant index.php moi-même de ma barre de recherche, j'atteignais tout de même mon Shaarli. Par contre, ça ne fonctionnait pas pour l'accès au mur d'images, au nuage de tags, et ni au flux RSS donc.

Afin d'enlever ce "index.php" de manière automatique et transparente, il suffisait "juste" d'ajouter au fichier de configuration du site :

<Directory /var/www/dossier_de_mon_site/dossier_de_shaarli/>
    # Required for .htaccess support
    AllowOverride All
    Require all granted
</Directory>

<Files "index.php">
    Require all granted
</Files>

    # serve the Shaarli favicon from its custom location
    Alias favicon.ico /var/www/dossier_de_mon_site/dossier_de_shaarli/images/favicon.ico

Voilà, si d'autre avait également ce souci d'index dans son URL, ces quelques lignes permettent de s'y soustraire.

À bientôt.

o/

Aucun commentaire

Bah voilà, a pu Nextcloud.

Plus sérieusement, comme j'en parlais dans mon billet précédent, je ne me sers plus de Nextcloud. Certes ça m'aura appris pas mal de choses en + d'entre-apercevoir toute l'étendue de ses fonctionnalités, mais je suis tout de même content d'être passé à autre chose (-> WebDAV). En fait, pour mon "petit" RPI 3B+, tant que je n'avais "que" ça, ça allait, mais au fur et à mesure, j'y ai d'abord rajouté blogotext (ce blog, lecteur RSS, etc.), puis mon Shaarli, puis Baïkal (gestion d'événements (rdv) et de contacts), et dernièrement Emby (serveur multimédias). Et à force, je voyais bien que le Raspberry PI mettait plus de temps à répondre. Tout en sachant que je risque d'y ajouter encore d'autres "projets"...

Finalement, comme Nextcloud ne me servait plus qu'à synchroniser nos pc perso (Windows et Linux) via le client, récupérer les médias de mon téléphone, et synchroniser mon gestionnaire de mot de passe (Enpass), j'ai cherché une alternative moins gourmande.
Autant, la partie synchronisation de fichiers présente sur pc et smartphone ne m'inquiétait pas spécialement, autant, pour les mots de passe...

J'ai donc essayé de trouver une alternative à Enpass, qui ne propose pas l'auto-hébergement, tel que :

  • Bitwarden, mais je n'avais pas les 4 GB de RAM pour le faire tourner, et il faut en plus installer Docker et Docker Compose.
  • Passbolt, il faut aussi installer Docker et Docker Compose, et avoir un service NTP (je ne sais pas ce que c'est) pour éviter les problèmes d'authentification GPG
  • Psono, toujours pareil, il faut installer Docker
  • Teampass... Bon, il faut croire que sans Docker, on ne fait rien 🤨

Mais c'est pareil, je veux qu'un client pour Linux ET Windows existe, et que Firefox dispose d'une extension.

Puis j'ai regardé vers quelles solutions externes Enpass proposait de se connecter pour se synchroniser, et bien, la liste est assez complète => Dropbox, Google Drive, OneDrive (Personal/Business), iCloud, Box, WebDAV, Nextcloud ! 😮

WebDAV, WebDAV 🤔 ça me dit quelque chose, mais c'est quoi ?

Je cherche un peu, et PAF, c'est dispo d'office avec Apache 😃. Il faut "juste" activer les modules qui vont bien

sudo a2enmod dav
sudo a2enmod dav_fs

Et les 2 ou 3 petites choses que je décris ci-dessous :

  • Créer un espace sur son serveur (ou ici sur un disque dur externe)
sudo mkdir /media/user/disque_dur_externe/espace_webdav

Lui affecter les droits pour que le serveur puisse y déposer des fichiers

sudo chown -R www-data:www-data /media/user/disque_dur_externe/espace_webdav
sudo chown www-data:www-data //media/user/disque_dur_externe
sudo chown www-data:www-data /media/user
sudo chmod 777 /media/user
sudo chmod 777 /media/user/disque_dur_externe
sudo chmod 777 /media/user/disque_dur_externe/espace_webdav
  • Modifier le fichier de configuration du site
sudo nano /etc/apache2/sites-available/votre_ndd.conf

En ajoutant dès le début de fichier

DavLockDB /var/www/dossier_du_site/DavLock

-> La directive DavLockDB désigne le nom de la base de données DAV Lock. Il doit s'agir d'un chemin d'accès à un fichier. Le fichier n'a pas besoin d'être créé. Le répertoire doit être accessible en écriture par le serveur Apache.

Puis en ajoutant dans "VirtualHost *:443"

Alias /webdav /media/user/disque_dur_externe/espace_webdav

<Directory /media/user/disque_dur_externe/espace_webdav>
    DAV On    
</Directory>

Tester la config avant de l'appliquer (ceci permettra de ne pas rendre HS le site)

sudo apachectl configtest

Si c'est OK, redémarrer apache

sudo systemctl restart apache2

Tester l'accès (navigation privée Firefox pour être sûr que l'historique des cookies/identifiants/etc ne soient pas en mémoire)
https://votre_site/espace_webdav/

Si c'est OK, continuer 😉

  • Il faut maintenant créer un user
sudo htdigest -c /etc/apache2/users.password userwebdav votre_user

Renseigner 2 fois le mot de passe voulu

sudo chown www-data:www-data /etc/apache2/users.password
  • Re-modifier le fichier de configuration du site
sudo nano /etc/apache2/sites-available/votre_ndd.conf

En ajoutant dans "Directory /media/user/disque_dur_externe/espace_webdav"

    AuthType Digest
    AuthName "userwebdav"
    AuthUserFile /etc/apache2/users.password
    Require valid-user
    Options Indexes FollowSymLinks

-> Options Indexes FollowSymLinks --> étant donné que "espace_webdav" est sur un HDD et non dans /var/www/..., il faut indiquer au fichier de conf que le navigateur web doit afficher les dossiers/fichiers sous forme de liens.

  • Activer les modules suivants
sudo a2enmod auth_digest
sudo a2enmod dav_lock

Re-tester la config

sudo apachectl configtest

Et enfin redémarrer apache

sudo systemctl restart apache2
  • Re-tester l'accès

https://votre_site/espace_webdav/

Et voilà, on peut maintenant synchroniser ce que l'on veut avec notre espace WebDAV que l'on vient de créer, si tant est que le logiciel en question le veuille... À mais oui, Enpass le propose ^^

Et pour y avoir accès à partir de son navigateur de fichier sous Linux, il faut saisir l'emplacement réseau comme suit :
davs://votre_site/espace_webdav

À bientôt.

o/

Aucun commentaire

Il semblerait que mon temps avec Nextcloud soit bientôt révolu.

Il faut savoir que Nextcloud me sert à la base pour :

  • faire une sauvegarde du pc de madame, avec en plus la possibilité d'avoir accès à ses fichiers de n'importe où (qui ne sert pas spécialement d'ailleurs), au travers du client Nextcloud sous Windows
  • faire également une sauvegarde de mon pc au travers du client Nextcloud sous Linux
  • récupérer de façon automatique les photos que je prends avec mon smartphone (mais même si l'archivage des photos est vachement bien organisé de façon automatique, l'outils n'est pas fiable)
  • avoir accès à nos mots de passe de n'importe -> enpass permet de connecter un compte Nextcloud et ainsi, une fois le client enpass installé sur un pc (Windows ou Linux), les mots de passe sont synchronisés
  • écouter ma bibliothèque musicale

Mais depuis peu, j'utilise Emby pour ma musique, et franchement, c'est top !

Pour les mots de passe, j'ai mis un article de côté dans lequel il est question d'autohéberger son gestionnaire de mot de passe (trouvé ici). Même si Proton est en train de sortir un outil pour la gestion de mot de passe, et donc compatible Windows, Linux, Android, c'est tout de même donner ses mdp à une entreprise extérieure => non !

Les photos, comme je le dis plus haut, je ne trouve pas l'option Nextcloud fiable. Il m'est déjà arrivé, assez souvent, que finalement les photos ne soient pas envoyées sur mon serveur. Du coup, en doublon, j'ai installé sur mon téléphone FolderSync qui fait très bien le job. Juste, il envoie sur Nextcloud... Il faut donc que je trouve comment me les envoyer ailleurs.
Une fois que ce sera fait, je pourrais enlever Nextcloud.

Attention, Nextcloud est très bien hein ! Mais pour mon utilisation, c'est un peu comme se servir d'une pelleteuse pour planter un plan de tomate.
En utilisation perso, je ne me servirais pas des outils comme Discussion, Mail, Agenda, et tous les autres. Pour une association, une petite entreprise, ok (je parle en auto-hébergement), mais pour moi le couteau Suisse est trop grand. Par contre, c'est quand même grâce à Nextcloud que j'ai commencé à faire de l'auto-hébergement justement, et rien que pour ça, je les remercie 🤗

Reprenant l'exemple de l'agenda dont je ne me sers pas, et n'aimant pas trop mettre mes œufs dans le même panier, j'utilise Baïkal. Et je compte faire de même pour les photos

Et de ce fait, comme je le disais en intro, je pense bientôt dire au revoir à Nextcloud. Le problème venant d'une synchronisation qui bloquait.

Ça a commencé par le pc de ma femme qui depuis plusieurs jours, ne voulait plus synchroniser certains fichiers, que ce soit des photos, des tableurs ou des pdf. Des fichiers qui pourtant avaient déjà tous été correctement synchronisés. De plus, un dossier $RECYCLE.BIN n'arrêtait pas de se créer. J'avais beau tenter les solutions trouvées sur le net pour palier à mon pb, rien n'y faisait. Pensant que cela pouvait venir de mon serveur, j'ai remis la sauvegarde du mois dernier, idem (En plus, il a fallu que je réinstalle Emby, ce qui m'a permis de compléter mes notes 😅).
Puis c'est sur mon pc que la synchro s'est mise à m*rder.

Désormais, j'utilise FreeFileSync sur le pc de madame, qui permet de créer des scripts automatisant la synchronisation. Une fois les batchs créés, dans le planificateur de tache, je lance la synchro à chaque démarrage, puis toutes les heures. C'est transparent et surtout, ça fait le taf ! 😁
Pour mon pc à moi par contre, je me suis mis à rsync. Même si j'ai galéré au début, c'est en fait assez simple.

Donc, après avoir modifié les fichiers

nano /etc/fstab

sur mon pc (ajouter la ligne

adress.ip.du.rpi:/media/user/HDD           /home/user/HDD          nfs         defaults,user,auto 0 0

) et

nano /etc/exports

sur le serveur (ajouter la ligne

/media/user/HDD 192.168.1.0/24(rw,sync,all_squash,anonuid=33,anongid=33,no_subtree_check)

), il faut créer le dossier qui va recevoir le montage sur le pc

mkdir /home/user/HDD

puis monter le hdd du raspberry qui est partagé

sudo mount -t nfs adress.ip.du.rpi:/media/user/HDD /home/user/HDD

Une fois fait, la commande

sudo rsync -avh --no-group --no-owner --delete /media/user/mon_HDD_sur_mon_pc/films/ /home/user/HDD/films/

permet de faire une copie fidèle du dossier "films" du disque dur de mon pc vers le dossier "films" sur le disque dur connecté à mon Raspberry, en ajoutant/supprimant ce qui a besoin de l'être.

Il ne reste plus qu'à mettre ça dans un fichier.sh (sur le bureau par exemple), de le rendre exécutable, de s'assurer bien sûr que l'on a le droit de modification sur le HDD du RPI, puis d'ajouter dans

sudo crontab -e

la ligne

* */1 * * * sudo /home/user/Bureau/ficheir.sh

Ainsi, toutes les heures, la synchronisation se fait de manière automatique !

J'ai galéré pour 2 raisons :

  • je voulais passer par FreeFilesync également sur mon pc, et je n'ai pas trouvé comment intégrer la commande¹
    DISPLAY=:0
    à l'exécution du batch que FreeFileSync permet de créer pour automatiser les synchros de mes différents dossiers de manière "invisible et régulière" sans avoir à lancer le logiciel lui-même.
  • je tentais de passer par crontab -e (sans le sudo) mais jamais rien ne se passait² (je n'avais pas d'erreurs dans le syslog). À force de recherche, j'ai lu qu'il fallait ajouter son user au fichier
    sudo nano /etc/crontab.allow
    ce qui, en plus de ne rien changer, fait que si maintenant j'enlève mon user de ce fichier, je ne peux plus éditer crontab -e ! 😓

Allez, à bientôt.

o/

¹ : DISPLAY=:0 est à utiliser pour les logiciels avec interface graphique
² : un moyen simple de tester un ligne dans crontab -> ajouter

*/1 * * * * echo test >> /home/user/Bureau/test.txt

Ceci va créer un fichier texte nommé test sur votre bureau dans lequel va être écrit toutes les minutes le mot test à l'intérieur.

Aucun commentaire

Pour régler (enfin contourner) mes soucis de synchronisation via le client Nextcloud qui recommence à zéro, j'ai tenté plusieurs choses :
- fixer le montage de mes supports externes ;
- augmenter l'intensité délivrée aux ports usb ;
- tester un autre moyen pour streamer ma musique, parce que c'est principalement ça qui m'embêtait ;

Et c'est le dernier "point" que j'ai retenu (après avoir infructueusement testé les 2 premiers). Je m'explique 😏

Pour fixer le montage des périphériques, j'ai tenté de modifier

/etc/fstab

en mettant un truc du genre :

/dev/sda1                                       /media/rpi/sauv_repo            ext4    defaults        0       2
/dev/sdb1                                       /media/rpi/rpi_srv_backup       ext4    defaults        0       2

ou bien même

PARTUUID=0303d461-01                            /media/rpi/sauv_repo            ext4    defaults        0       2
PARTUUID=d7b213c9-01                            /media/rpi/rpi_srv_backup       ext4    defaults        0      2

Mais 2 choses n'allaient pas (selon moi 😆):

  1. Si j'enlève celui déclaré en sda1, alors sdb1 passe en sda1 vu qu'il faut bien commencer par sda... Et ça on ne le choisit pas (enfin pas aussi facilement que ça¹)
  2. Si j'enlève sdb, le Raspberry ne voulait pas démarrer, car il lui manquait une ressource (il a fallu que je connecte physiquement un écran pour comprendre pourquoi le rpi ne démarrait pas). Soit, je devais enlever la carte sd pour modifier fstab, soit il fallait que je reconnecte le périphérique.

-> bref, tentative suivante, que finalement JE DÉCONSEILLE :

délivrer plus de courant sur le port USB d'un Raspberry Pi :

  1. Je suis incapable de mesurer le courant réel avant et après la modif citée ci-dessus !
  2. J'ai testé en branchant un 2nd HDD (c'est normalement dans ce but que l'on augmente l'intensité délivrée aux ports usb), et les 2 HDD "sautaient" ! (et oui mon alimentation était faite pour)
  3. Une des 2 clés usb (128Go) qui étaient branchées n'a pas aimé la blague, malgré toutes mes tentatives et également l'astuce de sebsauvage pour tester les supports amovibles -> poubelle 😕

-> enlèvement fissa de la ligne

max_usb_current=1

du fichier /boot/config.txt, et solution finale :

Mettre en place un serveur audio. Et après plusieurs tests, j'ai choisi Emby 😃
Qui soit dit en passant est plus un serveur multimédia qu'un simple serveur audio !

Pour mémoire et/ou pour aide à qui voudrait en faire de même, voici comment j'ai fait :

wget https://github.com/MediaBrowser/Emby.Releases/releases/download/4.7.11.0/emby-server-deb_4.7.11.0_arm64.deb
dpkg -i emby-server-deb_4.7.11.0_arm64.deb

Ouvrir le port TCP 8920 sur la box².
Modifier le fichier de config du serveur

sudo nano /etc/apache2/ports.conf

Et ajouter en dessous de "Listen 80"

Listen 8920

Créer le fichier

sudo cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/le_nom_que_vous_voulez.conf

Et mettre dedans

sudo nano /etc/apache2/sites-available/le_nom_que_vous_voulez.conf

Ce qui suit

# If you are not using a SSL certificate, replace the 'redirect'
# line above with all lines below starting with 'Proxy'
<IfModule mod_ssl.c>
<VirtualHost *:8920>
	ServerName votre_server_name
    # This folder exists just for certbot(You may have to create it, chown and chmod it to give apache permission to read it)
    
    ProxyPreserveHost On

    # Letsencrypt's certbot will place a file in this folder when updating/verifying certs
    # This line will tell apache to not to use the proxy for this folder.
    ProxyPass "/.well-known/" "!"

    # Tell Jellyfin to forward that requests came from TLS connections
    RequestHeader set X-Forwarded-Proto "https"
    RequestHeader set X-Forwarded-Port "443"

    ProxyPass "/socket" "ws://adresse_ip_interne_de_votre_serveur:8096/socket"
    ProxyPassReverse "/socket" "ws://adresse_ip_interne_de_votre_serveur:8096/socket"

    ProxyPass "/" "http://adresse_ip_interne_de_votre_serveur:8096/"
    ProxyPassReverse "/" "http://adresse_ip_interne_de_votre_serveur:8096/"

    SSLEngine on
    SSLCertificateFile	/etc/letsencrypt/live/votre_ndd/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/votre_ndd/privkey.pem
    Protocols h2 http/1.1

    # Enable only strong encryption ciphers and prefer versions with Forward Secrecy
    SSLCipherSuite HIGH:RC4-SHA:AES128-SHA:!aNULL:!MD5
    SSLHonorCipherOrder on

    # Disable insecure SSL and TLS versions
    SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1

    ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
</IfModule>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

Puis créer le lien symbolique

sudo ln -s /etc/apache2/sites-available/le_nom_que_vous_voulez.conf /etc/apache2/sites-enabled/le_nom_que_vous_voulez.conf

Activer le site

sudo a2ensite le_nom_que_vous_voulez.conf
sudo systemctl restart apache2.service

Ne rien changer dans la configuration réseau d'Emby
Pour un démarrage automatique au démarrage du Raspberry

sudo systemctl enable emby-server

Lors de la connexion via "https://votre_ndd:8920" (via le web ou un tél), s'il faut choisir un serveur, renseigner :
https://votre_ndd
Port
8920

J'avais d'abord testé Jellyfin, mais l'affichage de l'architecture de mes dossiers musicaux n'était PAS DU TOUT identique à ce que j'avais réellement sur mon support externe ! Et c'est en cherchant une solution que j'ai appris que Jellyfin était en fait un fork d'Emby, qui lui est plus complet et surtout RESPECT l'architecture de mes dossiers.

Pour ni surcharger la carte sd du Raspberry, ni augmenter le nombre de lecture/écriture sur celle-ci, je monte la clé usb

sudo mount /dev/sdc1 /media/mount_ziq

sur laquelle se trouve toute ma musique dans un dossier créé au préalable

sudo mkdir /media/mount_ziq

Car Emby ne sais pas aller directement voir sur une clé usb (Jellyfin non plus d'ailleurs).
Pour être sûr que sdc1 corresponde bien à ma clé, j'ai renseigné fstab, et le montage se fait 50 secondes après le démarrage du Raspberry (via un script appelé par cron). Si le montage se faisait dès le boot, c''était fiable une fois sur.... je ne sais pas combien, ce n'était pas fiable en fait.

À bientôt o/

¹ : On m'a parlé de udev, mais j'ai pris peur en voyant les tonnes de possibilités de la chose, et connaissant ma rigueur, cette phrase m'a assez vite refroidit :

Je vous conseille de ne pas le lire en diagonale : il contient beaucoup d'informations, toutes nécessaires pour faire fonctionner correctement vos règles. En général une règle s'écrit en quelques lignes dans un fichier .rules qui se trouve dans /etc/udev/rules.d, mais nécessite beaucoup de rigueur pour qu'elle fonctionne.

.
Mais je tenterais ça un jour... Il s'agit d'exécuter un script à l'insertion d'un disque ou clé USB.

² : vous pouvez bien sûr changer le port par la suite ^^

Aucun commentaire

Depuis environ 2 semaines, c'est mon OS à la maison. Et pour ajuster mon article sur comment je (re)fais mes pc et celui sur les Plugins et logiciels que j'utilise, je (re)mets ci-dessous ce dont moi je me sers. Bon par contre, je pars de zéro, et ce n'est pas aussi complet que l'article de sebsauvage. Surtout, je n'ai pas la même utilisation ni les mêmes besoins.

Donc, une fois l'installe faite et le pc démarré :

sudo wget https://protonvpn.com/download/protonvpn-stable-release_1.0.1-1_all.deb

puis installer le fichier téléchargé.
Une fois installé, je m'étais déjà apreçu que le client avait parfois du mal à se connecter. Je créé donc le fichier vpn.sh dans lequel je mets

#!/bin/bash
nmcli connection delete pvpn-ipv6leak-protection
protonvpn

Enregistrer et dans les propriétés, onglet "permission", cocher la case "autoriser l'exécution..."
- glisser ensuite ce fichier dans la barre des taches pour créer un lanceur.
- ne pas supprimer le fichier vpn.sh du bureau.

Je passe également mon pc de DHCP à une IP fixe et indique l'ip des serveurs dns "ns0.fdn.fr : 80.67.169.12 ou 2001:910:800::12" ou "ns1.fdn.fr : 80.67.169.40 ou 2001:910:800::40" (source : https://www.ffdn.org/en/services).

Je change de terminal et je prends Tabby

wget https://github.com/Eugeny/tabby/releases/download/v1.0.172/tabby-1.0.172-linux.deb

Puis -> paramètre -> schéma de couleurs -> je choisi "Deep"
Et aussi -> Terminal -> tout en bas je désactive "Ouvrir auotmatiquement un terminal....." mais j'active "Restaurer les onglets ouverts..."

  • enpass (gestionnaire de mot de passe)
sudo -i
echo "deb https://apt.enpass.io/ stable main" > \
 /etc/apt/sources.list.d/enpass.list
wget -O - https://apt.enpass.io/keys/enpass-linux.key | tee /etc/apt/trusted.gpg.d/enpass.asc
apt-get update
apt-get install enpass
exit

Dans le navigateur déjà présent (Firefox) :
- Language Tool -> un correcteur de texte ;
- Alter -> pour une redirection (de Youtube et consort) vers des alternatives respectueuses de la vie privée ;
- PolitiquePolemique -> un plugin qui rattache les membres du gouvernement français à leurs affaires judiciaires et polémiques ;
- ghostery
- refoorest
- decentraleyes
- clearurls
- downloadhelper
- ninja cookie
- Firefox Multi-Account Containers
- Alter

- Dans about:config, je met à True la valeur de "privacy.resistFingerprinting"

Ensuite, niveau "outils" sur mon pc, je pourrais difficilement me passer de :

  • FreeTube
    wget https://github.com/FreeTubeApp/FreeTube/releases/download/v0.18.0-beta/freetube_0.18.0_amd64.deb
  • client NextCloud
    sudo apt install nextcloud-desktop
  • l'agent dwservice (prise en main à distance)
    sudo wget https://www.dwservice.net/download/dwagent_generic.sh
  • vnc viewer (prise en main locale)
    wget https://downloads.realvnc.com/download/file/viewer.files/VNC-Viewer-7.0.1-Linux-x64.deb
  • curlew (convertisseur audio/vidéo)
sudo add-apt-repository ppa:noobslab/apps
sudo apt update
sudo apt install curlew

(et je choisis "Blackberry Music (mp3)" pour convertir les fichiers en mp3, et "Matroska Video (MKV)" pour........ les vidéos ^^)

sudo -i
sudo flatpak install flathub org.cryptomator.Cryptomator
sudo flatpak override org.cryptomator.Cryptomator --filesystem=host
sudo apt install lsb

Pour mon imprimante (Epson EcoTanck 2810), je vais sur cette page, ET je ne renseigne QUE le modèle de l'imprimante (ET-2810) SANS l'OS. Sinon il ne trouve pas. Et je télécharge la version 1.7.26 (ESC/P-R Driver (generic driver))(epson-inkjet-printer-escpr_1.7.26-1lsb3.2_amd64.deb pour moi).
Une fois le paquet installé, installer l'imprimante en faisant une recherche et en spécifiant son IP.
Le scanner lui est vu direct, avant même l'installation de l'imprimante.

Je me sert aussi de minidlna, et pour ne pas faire de doublons, Il faut aller voir ici

Ne pas oublier scrcpy

sudo apt install scrcpy

.
Allez, à bientôt.

o/

Aucun commentaire

Grace aux liens de strak, j'ai pu voir il y a quelques jours, que Shaarli avait une mise à jour 😃

Bon, par contre n'étant pas très fortiche, j'ai tatonné pour la faire cette MàJ, c'est pourquoi je mets ici comment j'ai fait (pour moi plus tard, ou pour quiconque lirait ceci 😉 ).

Et donc, dans la console connecté en tant que root (via DWService pour ma part) :

Se placer dans le dossier contenant votre actuel Shaarli

cd /var/www/mon-site

Comme mon dossier où se trouve mon shaarli s'écrit avec un "s" minuscule ET que je ne veux pas perdre mes datas

mv shaarli shaarlii

Ensuite, on télécharge la MàJ et dézippe l'archive

wget https://github.com/shaarli/Shaarli/releases/download/v0.12.2/shaarli-vx.xx.x-full.zip
unzip shaarli-vx.xx.x-full.zip

On renomme pour correspondre à son certificat SSL

mv Shaarli shaarli

Puis il faut copier le contenu du dossier data de shaarlii vers shaarli (enfin si on ne veut pas perdre ses données ^^).

Et ensuite, on attribu les droit qui vont biens à notre dossier shaarli

chown -R www-data:www-data /var/www/sous-tiret/shaarli
chmod -R 770 /var/www/sous-tiret/shaarli

Et voilà, tout est ok.

On peut faire un reboot pour valider que même s'il y a une coupure du serveur, après redémarrage, notre Shaarli est toujours accessible...

À bientôt

o/