Ideenquelle

Ideenquelle ou la Source des idées en Français.

Il s’agit juste d’un lieu de partage et de réflexion écrit/géré, au départ, par Groink2369.
Il est ouvert à d’éventuelles collaborations à d’autres penseurs sous conditions d’être au moins plusieurs dans sa tête.

Le nom du blog vient de l’allemand et signifie Source des idées. Il s’agit également d’un jeu de mot Quelle idée.

Pensée du jour

une notification m’a renvoyée au journal d’il y a quatre ans, à la même période. en août 2022 j’écrivais: il faudrait que je m’invente une manière d’écrire à la lisière du pour soi/pour l’extérieur, s’autoriser à osciller, renoncer à l’explication sans abandonner l’intelligible, que les journaux soient l’outil qui creuse auprès de la main, plutôt que le trou dont on ne sait quoi faire. — journaux brésiliens – juillet 2026. camille ruiz. 5 août 2026.

via Histoire à rebours - la grange

Cela ressemble assez fort à ce que je veux pour cet espace : une zone entre deux : pour moi et pour l’extérieur. C’est une frontière tout en sachant qu’en réalité, je suis chez moi. Cela explique/conforte l’idée de ne pas avoir de commentaire. Peut-être des webmentions car l’avis de l’autre reste chez lui et propre à lui. Mon espace reste le mien. Je ne suis pas obligé de devoir gérer son avis.

Non pas que je n’aime pas les autres. Bien au contraire. Dans une certaine limite, oui.

Je vous aime bien. Et en même temps, moins je vous vois, mieux je me porte. Cela veut dire qu’il n’y a pas de problème. Et, comment dire ? je préfère les éviter les problèmes. Je ne sais pas vous.

C’est exactement ce que je pense. C’est d’ailleurs de moi cette expression.

Karombolage

La celèbre émission de TV franco-allemande.
Je l’aime bien; même si avec les années, ils se sont ouverts à d’autres pays dont l’Espagne et la Pologne.
Dommage qu’ils ne diffusent pas la totalité des émissions sur Youtube ou via un fil RSS maison. Ils pourraient peut-être envisager de recycler les anciennes émisions.
Personnellement, je ne les ai pas tous vu.

Pour l’occassion, voici quelques liens vers des saisons de Karambolage :

Après, il faut chipoter pour trouver les épisodes (en changeant les trois chiffres entre tirets)

Herbier typographique

Il m’a fallu du temps pour comprendre le titre.
HERBIER TYPOGRAPHIQUE
Les deux mots séparés ne posent aucun problème mais ensemble, cela ne m’est pas paru évident.

J’aime ce côté monomanique/geek/fan voir de l’ordre, peut-être, du trouble obessionnel sur un sujet qui semble anodin.
En réalité, l’herbier traite de l’histoire, histoire de l’écriture mais aussi d’histoire de perception et donc de soi, enfin d’eux.

via Je-ne-sais-plus-qui.

Faire tourner une pompe 3V

J’ai trouvé deux petites pompes à eau alimentable en 3V3. La première ne fonctionne pas. Dommage. J’attends le retour du vendeur. La deuxième fonctionne parfaitement.

J’ai mis un peu de temps à trouver le bon circuit. La plupart des schéma partent du principe d’une alimentation externe en 12V étant donné que la pompe tourne en 12V également. Personnellement, je n’ai pas besoin d’une grosse pompe dans mon cas. Je veux donc trouver un circuit qui fonctionne en 3V3. Le soucis est que les GPIO ne fournissent moins de 100 mA. Or une pompe cela nécessite plus.

J’aurais pu utiliser un relai (voir ESP32IO - ESP32 controls pump). Un relai, c’est pratique et cela a ses limites. Et comme j’aime me pourrir la vie (et que j’ai vu plein de schéma sans relai), je me suis dit : “Fais un circuit avec un MOFSET !” Sauf comme je l’ai dit, ils sont prévus avec du 12V.

Après deux heures de tests, j’ai enfin trouvé le circuit qui convient. Circuit Le Mofset utilisé est DMT6009LCT car sin V_GS(TH) est compris entre 0.7 et 2V; autrement dit, le MOFSET laissera passer le courant entièrement dès qu’il recevra plus de 2V via son GATE, piloté donc par un GPIO qui sort du 3.3V en position HIGH. Aucun courant ne passer quand le Gate sera alimenté sous les 0.7 V. Dans ce cas, il suffit de couper le GPIO pour obtenir 0V. Le MOFSET est à canal N ce qui explique pourquoi il est mis près du GND (ici le Source).

Etape suivante :

  1. ajouter le senseur capacitif d’humidité du sol (facile)
  2. écrire le programme pour contenter la plante en eau (plus long).

nginx ou nginx Proxy Manager

J’ai tenté d’installer nginx. J’y suis bien arrivé. C’est simple et facile. ** A condition que votre port 80/443 ne soit pas déjà utilisé par un autre service**

Sauf que … je souhaitais une interface graphique (parce que, même si je suis Geek, je me connais : je ne le suis que par phase).

Donc j’ai repéré nginx Proxy Manager (NPM de son petit nom à ne pas confondre avec NPM, le gestionnaire de paquets Node.js). Pour cela, il faut Docker. La méthode proposée est la suivante :

  1. Créer un folder /opt/stacks/nginxproxymanager
  2. Rentrer dedans (avec cd)
  3. Créer *compose.yml avec le contenu suivant :
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      # These ports are in format <host-port>:<container-port>
      - '80:80' # Public HTTP Port
      - '443:443' # Public HTTPS Port
      - '81:81' # Admin Web Port
      # Add any other Stream port you want to expose
      # - '21:21' # FTP

    #environment:
      # Uncomment this if you want to change the location of
      # the SQLite DB file within the container
      # DB_SQLITE_FILE: "/data/database.sqlite"

      # Uncomment this if IPv6 is not enabled on your host
      # DISABLE_IPV6: 'true'

    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
  1. Lancer le compose : docker compose up -d Il se peut que nginx Proxy Manager ne se lance pas car quelqu’un occupe déjà certains ports (80 ou 443). Modifier cela pour que NPM se lance.

  2. Si vous oubliez votre mot de passe (oui, cela arrive aux plus distraits et vu le nombre de mot de passe, c’est possible) 1. Ouvrir le terminal du l’instance nginx : docker exec -it nginx* sh 1. Installer sqlite3 pour modifier la base de données : apt install sqlite3 -y 1. Accéder à la base de données : sqlite3 /data/database.sqlite 1. Supprimer tous les utilisateurs : UPDATE user sets is_deleted=1; 1. Sortir de sqlite : exit; 1. Sortir de l’instance nginx : exit 1. Redémarrer l’instance nginx : docker restart nginx* `

#Update 2025-10-21 Et oui, déjà un update. Nginx Proxy Manager, c’est bien … pour gérer des proxy. Sauf que mon idée, c’est de faire plus que cela, notamment d’héberger des services différents dont du web classique.

Donc retour à nginx :)

  1. Installation rapide avec apt-get install nginx
  2. Lancement systemctl start nginx
  3. Installation de php (sait-on jamais) : apt-get install php8.4-fpm php8.4-mysql php8.4-curl php8.4-gd php8.4-zip php8.4-xml; Il y a plus que simplement PHP. Veillez à vérifier la dernière version encore et adapter dans la commande.
  4. Ajouter PHP dans nginx en éditant /etc/nginx/sites-enabled/default en remplacant :
#location ~ \.php$ {
#       include snippets/fastcgi-php.conf;
#
#With php5-cgi alone:
#fastcgi_pass 127.0.0.1:9000;
#With php5-fpm:
#fastcgi_pass unix:/var/run/php5-fpm.sock;
#}

par :

location ~ \.php$ {
               include snippets/fastcgi-php.conf;
               fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        }

A nouveau, il faut vérifier la version de PHP (en 2025-10, c’est la 8.4).

  1. Recharger nginx avec systemctl reload nginx

C’est la base. Tous les sites actifs sont dans /etc/nginx/sites-enabled. Les sites disponibles sont dans /etc/nginx/sites-available. Idéalement, on prépare puis on rend disponible. Une manière de faire (ou contourner l’esprit) est de faire des liens symobliques : ln -s /etc/nginx/sites-available/monsite.com /etc/nginx/sites-enabled/.

Avant de relanger nginx (avec un systemctl restart nginx), on peut vérifier la configuration avec nginx -t. Plutôt utile !

Et pour le reverse proxy ?

Il suffit de créer un fichier dans /etc/nginx/sites-enabled contenant :

server {

  listen 80;
  listen [::]:80;


  server_name pdf.home.lan pdf.lan;
  http2 off;

  location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
        proxy_pass http://192.168.1.2:3000;
  }

}

Cela permet dont de rediriger discrètement pdf.home.lan vers http://192.168.1.2:3000.

Si je dois rediriger vers un port et un sous-dossier explicitement ?

Pour une raison que j’ignore (et j’ignore beaucoup de choses), la fonction proxy_pass ne fonctionne pas. J’utilise return 301 http://MON_IP:MON_PORT/MON_DOSSIER :

server {

  listen 80;
  listen [::]:80;


  server_name serviio.home.lan serviio.lan;
  http2 off;

  location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
        return 301 http://serviio.home.lan:23423/console;
  }
}

Source

Bolet.io - How I Supercharged My Pi-hole Setup with Nginx Proxy Manager

Deployer hexo en FTP

J’utilise le moteur hexo pour mon blog statique. Je n’ai pas d’avis sur le côté NPM (si ce n’est que c’est encore un truc à maintenir à jour). Je ne l’utilise pas ailleurs.

hexo propose une ligne de commande pour déployer le blog sur Git, Heroku, Netlify, via Rsync, … et FTP. Mon hébergeur propose cette solution (oui, c’est un module de base que j’ai actuellement).

La documention présente comment faire. Les données doivent bien être rajoutées dans votre _config.yml. A priori, c’est tout en bas). Vous pouvez après générer et déployer en une commande : hexo generate --deploy ou hexo deploy --generate. Si vous êtes un gros flemmard (comme moi), vous pouvez également rajouter une ligne dans votre crontab (pour rappel, crontab -e pour le modifier):

0 3 * * 0 cd /votredossieravecvotrehexo/ && hexo generate --deploy

Personnellement, j’ai mis une mise à jour une fois par semaine pendant la nuit.

Andy Burnham sera-t-il le dernier Premier ministre du Royaume-Uni ?

Il est peu probable qu’il soit le dernier Premier ministre du Royaume-Uni vu que les prochaines élections générales auront lieu en août 2029.
Il faut encore réaliser les référendums. J’en doute donc.

Par contre, cela pose question sur les mouvements séparatistes qui risquent de prendre de l’ampleur dans les années à venir au sein de l’Europe (et de l’Union Européenne).

Pensée du jour

Aujourd’hui, le modèle de père pour nos enfants est encore mal défini et illustré. Oui, il y a milles et une façon d’être père.

Même si quelques (timides ?) nouveaux modèles sont à l’écran, le changement se fera lentement.

Ecoflora

Magasin de plantes, graines, … situé à Halle. Pas encore testé

Pensée du jour

J’ai commencé à me questionner et à écrire sur les réseaux sociaux.
Est-ce que la démarche d’écrire chacun de nous dans notre coin en permettant parfois d’avoir des commentaires et/ou des backlinks, fait de cette démarche un réseau social ?

Certes, il n’y a pas de programme/site web centralisé.
Certes, il n’y a pas d’algorithme, bien que je doute que ce soit réellement une obligation d’en avoir un.
Certes, nous ne partegeons pas directement un même centre d’intérêt. On pourrait encore discuter d’un point commun : celui de diffuser chez soi.

Mais finalement, le réseau social est un réseau, une interconnexion entre différents éléments qui crée un lien social entre les différentes composantes.
Même si je ne vous connais pas, je vous lis. J’ai des émotions. Je partage vos aventures.
Chez moi, cela crée un lien. Vous viendrez à mourir, j’en serai triste. Je regretterai vos écrits.

Même si, au final, cela n’a pas d’importance que nous créons un réseau social, la question m’est venue.

Je suis persuadé que mon explication n’est pas claire.
Peu importe.

Si vous souhaitez, vous pouvez partager de votre côté votre vision.
Si vous souhaitez vraiement être lu, envoyez-moi un message sur info@ideenquelle.be.

qBittorent

  1. Installer qBittorent Il existe deux versions : une version GUI local (qbittorrent) et une version Web GUI (qbittorrent-nox). Pour installer, il faut invoquer sudo apt-get install qbittorrent ou sudo apt-get qbittorrent-nox

  2. Lancer qBittorrent Cela se fait en utilisant une des commandes : qbittorent ou qbittorrent-nox

  3. Lancement de qBittorent à chaque redémarrage Pour permettre le lancement de qBittorent à chaque (re-)démarrage du système, il faut le renseigner comme un service.

    1. Dans les explications que j’ai suivies, il préconise de créer un nouvel utilisateur. J’avoue ne pas avoir compris pourquoi. sudo useradd -r -m qbittorrent L’argument -r est utilisé pour signaler que nous voulons un utilisateur système. L’argument -m est utilisé pour créer son répertoire parent/propre.
    2. Il faut rajouter l’utilisateur au groupe qbittorrent juste créé : sudo usermod -a -g qbittorrent $USER L’argument -a est utilisé pour ajouter un attribut à l’utilisateur. L’argument -G est utilisé pour signaler que c’est sur un groupe que l’on travaille.
    3. Maintenant, nous pouvons créer le service en créant le fichier suivant /etc/systemd/system/qbittorrent.service (il faut le créer en tant que sudo) :
Description=qBittorrent
After=network.target

[Service]
Type=forking
User=qbittorrent
Group=qbittorrent
UMask=002
ExecStart=/usr/bin/qbittorrent-nox -d --webui-port=8080
Restart=on-failure

[Install]
WantedBy=multi-user.target
Personnellement, j'ai d'abord lancé `qbittorrent-nox` et configuré tout dans l'interface via mon utilisateur. J'ai donc modifié l'user pour mettre le mien.

1. Il faut démarrer le service nouvellement créé : `sudo systemctl start qbittorrent`
1. Il est possible de vérifier le status du service : `sudo systemctl status qbittorrent`
1. Pour permettre que le service s'active à chaque démarrage, il faut activer le service : `sudo systemctl enable qbittorrent`
  1. Modifier le port pour accéder Si besoin, modifier le port auquel accéder à GUI Web (utile si vous avez de multiples services). Personnellement, je l’ai mis sur 49152.

  2. Ignorer l’authentification pour les clients avec une adresse IP spécifique Dans Options/IU Web > Nécessite une authentification, cocher les deux options commençant par “Ignorer […]” et rajouter les lignes suivantes dans l’encadré :

127.0.0.1/32
192.168.1.0/24
  1. Rediriger l’adresse via nginx J’utilise personnellement nginx Proxy Manager. Aller dans Hosts > Proxy Hosts > Add Proxy Host.
Domain Names : qbit.lan
Scheme : http
IP : 192.168.1.2
Forward port : 49152

Cela fonctionne très bien … sauf avec le point précédent. Pour éviter l’authentification, il faut configurer un Redirection Host

Domaine Names : qbit.lan
Scheme: http # en laissant à 'auto', une erreur est générée
Forward domain: 192.168.1.2:49152
HTTP Code : 308 Permanent redirect
Preserve Path : OK

Modification hexo

Je viens d’effectuer quelques changements sur le blog, propulsé par hexo. J’avoue que cela m’a pris un peu la tête.

Nouveau layout

Par défaut, hexo prévoit trois layouts.

Il est possible de prévoir de nouveaux layouts. Pour cela, il faut créer un fichier .md dans le dossier /scaffolds. Pour faire simple, un copier/coller de post.md vers link.md permet d’avoir un bon départ :

draft = false
+++
title = '{{ title }}'
date = '{{ date }}'
tags = []
draft = false
+++

Je l’ai modifié pour avoir un champs supplémentaire :

draft = false
+++
title = '{{ title }}'
date = '{{ date }}
layout : {{ layout }}
link = 
draft = false
+++

Rien de bien sorcier en somme.

Maintenant, j’ai modifié mon template /themes/mon-template/layout/_partial/article-excerpt.ejs pour que, lors de la génération de mon résumé d’article, il fasse apparaitre clairement au lecteur qu’il s’agisse d’un lien au moyen d’une icone.

<div class="blog-post">

  <div class="blog-header separate">


    <% if(item.layout == "thought"){ %>
      <blockquote>
        <%- item.content %>
      </blockquote>
    <% } else { %>
      <!-- Title -->
      <h2 class="blog-post-title">
        <% if(item.layout == "link") { %>
          <i data-eva="link-2-outline"></i> <a href="<%- item.link %>"><%- item.title %></a>
        <% } else { %>
          <%- item.title %>
        <% } %>
        </h2>
    <% } %>

Le code n’est pas complet. Il manque la fin de la page. Mais l’idée n’est pas de recréer un tutorial pour créer un thème. L’idée est juste de partager des tips&tricks que je n’ai pas trouvé facilement/simplement.

Article avec une fin de vie

J’ai également créé des posts liés à mon humeur. Toutefois, l’idée n’est pas que ces posts soient éternelles. J’ai envie de leur donner une date limite d’utilisation. J’avoue que j’ai galéré à mettre cela en place. La documentation n’est pas bien faite et il y a peu d’exemples sur ce type de modification. J’ai péché : j’ai fini par utiliser Gemini qui, à mon grand étonnement, a très bien répondu (mieux que ChatGPT sur un autre projet).

Ma première idée était de mettre une variable dans ma configuration indiquant la date limite de vie (30 jours). Lors de la génération des pages, si le layout est d’un type spécifique et si la date est passée, je ne l’affiche pas. Cela se fait dans le template. Il faut gérer la date (et là, j’ai sué, même si c’est affreusement simple rétrospectivement mais la documentation de hexo est trop faible sur ce point-là pour des néophytes) :

<% var diffInDays = (new Date()  - new Date(item.date)) / (1000*60*60*24) %>

<% if(item.layout == "thought" && !(diffInDays > config.lifespan_thought ) ){ %>

<% } else { %>
    <%- partial('_partial/article-excerpt', {item: item, index:true}) %>
<% } %>

Ce qui m’a entravé l’esprit, c’est que hexo permet d’utiliser les dates via moment.js mais que dans le template, la plupart des méthodes ne fonctionnent pas. Bref, j’ai trouvé une solution.

L’idée est plaisante. Toutefois, le post existe toujours en direct. Donc je veux restreindre la création même. Pour cela, il faut intervenir au niveau de la génération. Cool ! Et je fais comment ? J’ai donc créé un dossier /scripts à la racine du projet puis un fichier unpublish_expired_post.js :

const moment = require('moment')
const fs = require('hexo-fs')
const path = require('path');

'use strict';

function deleteFolderRecursive(folderPath) {
  if (fs.existsSync(folderPath)) {
    fs.readdirSync(folderPath).forEach((file) => {
      const curPath = path.join(folderPath, file);
      if (fs.lstatSync(curPath).isDirectory()) {
        deleteFolderRecursive(curPath);
      } else {
        fs.unlinkSync(curPath);
      }
    });
    fs.rmdirSync(folderPath);
  }
}

// If a Post is expired,
//  - set the parameter punlished to false
//  - delete the public file
//  - remove the Post from the actual generating list

hexo.extend.filter.register('before_generate', function () {
  const Post = hexo.model('Post');
  if (!Post) return;

  const now = new Date();

  // Identify the expired Posts
  const expiredPosts = Post.find({
    end_date = '{ $lt: now } // Warehouse allows the use of query operators.
  });

  if (expiredPosts.length === 0) return;

  expiredPosts.forEach(post => {
    // Safety check for the date
    const endDate = new Date(post.end_date);
    if (isNaN(endDate)) return;

    // Disable the post for the actual generating process.
    post.published = false;

    // Remove it from the model .
    Post.removeById(post._id);

    hexo.log.info(`Post expiré masqué : ${post.title} (expiré le ${moment(post.end_date).format('YYYY-MM-DD')})`);


    // Remove the published file
    try {
      const postFolder = path.join(hexo.public_dir, post.path);

      deleteFolderRecursive(postFolder);
      hexo.log.info(`Post expiré supprimé: ${post.title} `);

    } catch (err) {

      hexo.log.warn(`Impossible de supprimer ${post.path}: ${err.message}`);
    }

    // Full path to the source file (.md)
    const fullPath = path.join(hexo.source_dir, post.source);

    // Set the status to unpublished
    if (fs.existsSync(fullPath)) {
      let content = fs.readFileSync(fullPath);

      // Remplace published: true to false, or add the line if missing
      if (content.includes('published: true')) {
        content = content.replace('published: true', 'published: false');
      } else if (!content.includes('published:')) {
        // Insert after the first "+++"
        content = content.replace('+++', '+++\npublished: false');
      }

      fs.writeFileSync(fullPath, content, 'utf8');
      hexo.log.info(`Fichier source mis à jour (Draft) : ${post.source}`);
    }

  });
});

J’ai sorti l’artillerie lourde :

J’ai également rajouté un autre script (set_endDate.js) pour que certains types d’articles aient automatiquement une date de fin ajustée selon la configuration de hexo:

'use strict';

const moment = require('moment')
const fs = require('hexo-fs')

hexo.on('new', function(data){

    // Retrieve the parameter from _config.yml (or set a default value).
    const settings = hexo.config.lifespan_settings || {}
    const layoutMatch = data.content.match(/layout:\s*(\w+)/);
    const currentLayout = layoutMatch ? layoutMatch[1] : 'post';

    // Verify if the actual layout has a specific lifespan
    if (!settings.hasOwnProperty(currentLayout)) {
        return;
    }

    // Retrieve the lifespan for the layout used for the new post
    const lifespan = settings[currentLayout]


    // calculate the end date of the post
    const endDate = moment().add(lifespan,'days').format('YYYY-MM-DD HH:mm:ss');

    // replace 'end_date' default by the calculated one
    const newContent = data.content.replace(/end_date = '2400-12-31 01\:00\:00/g, 'end_date = ''+endDate);

    // write the change in the file
    fs.writeFile(data.path, newContent, function(err){
        if (err) {
            console.log("Error when writing 'endDate' variable");
        } else {
            console.log("'endDate' variable added");
        }
    });


});

Saferule

Quelques conseils relativement simples à mettre en place pour un design.

MapChart

Site pratique pour faire des cartes du monde.
La version gratuite est assez complète (carte du monde, d’Europe, d’Europe lors du WW I et WWII, …).
Possibilité de mettre des couleurs, des légendes, de zoomer, … et sauvegarder dans le format maison (ce qui est pratique pour pouvoir modifier une carte par après).

Art-toi

Courts exercices/invitations pour décrypter les tableaux (moins) connus.

HLBuilder

Outil pour designer, planifier (et générer une configuration) pour un homelab. Je dois d’ailleurs finaliser la configuration du mien.

L'homme et l'oiseau

Il s’agit du magazine édité par la Ligue Royale Belge pour la Protection des Oiseaux (LRBPO). J’ai reçu un exemplaire lors d’un achat chez eux.

Je ne suis pas assez fan ni convaincu pour m’abonner. Par contre !

Par contre, c’est agréable à lire. Il y a de l’espace, du vide. Les photos sont là pour être vues (en même temps, quand on parle animaux, il vaut mieux avoir de jolies photos). Le texte n’est pas spécialement aéré. La typographie est assez commune.

Ce qu’il y a, c’est du vide. Les marges sont énormes, de l’ordre de 4 à 5 cm. C’est reposant. Vraiment reposant.

Idées de projets

Vous avez un Raspberry ou Arduino/ESP32 ? Vous manquez d’idée ? Vous avez déjà réalisé tous vos projets personnels et aimé le défi ?

Voici mes idées de projets :

D’autres projets sans que ce soit spécifiques à un Raspberry/Arduino :

Les projets peuvent paraitre assez confus. Je vous rassure : dans ma tête, c’est assez clair (enfin, j’aime le penser).

Snapotter - Image toolkit

Un ensemble de fonctions pour manipuler des images (crop, resize, …) qui s’exécute dans le browser. Auto-hébergeable, open-source, … dans la même ligne que bentopdf ou stirling (mais eux, ce sont les PDF).

Un défaut : pas de possibilité de modifier les layouts (pour que cela s’intè parfaitement avec le reste du site en cas d’auto-hébergement)

Sauvegardez, sauvegardez, pauvre fou !

Si vous publiez du contenu en ligne

  1. Ayez une copie locale de tout le contenu.
  2. Autant que possible, publiez de votre machine vers l’extérieur, le service, le serveur. Considérez que l’original est local et que le public n’accède qu’à une copie.
  3. Si 2 ne rentre pas dans votre démarche de publication, que vous publiez sur un serveur distant, créez un système automatisé de sauvegarde locale de tout le contenu (ainsi que les métadonnées) disponible sur le serveur.
  4. Si vous avez la possibilité, créez une 3ème copie de sauvegarde automatique sur un disque externe local.
  5. Si vous avez la possibilité, créez une copie automatique sur un serveur distant (qui n’est pas celle du contenu publié sur le serveur accessible au public).
  6. Avoir son nom de domaine est un atout bien qu’il entraîne un coût supplémentaire de location. Il vous permet une mobilité, une flexibilité pour l’accès public de votre contenu. Pensées amicales à une personne qui a perdu tout son contenu soudainement bloqué par le service distant. (Mise à jour : le service a redonné accès au contenu).

ruissellement chez Karl (et déjà repris chez Navire; il m’a juste devancé).

Je n’ai pas encore fait entièrement le nécessaire. C’est en cours mais c’est lent car les idées fusent dans la tête et parfois, je ne reste pas concentré; je fais face à un manque de clarté; je suis interrompu. J’avance, petit à petit.