Vous êtes ici

Le blog de Laurent Espitallier

L'archive web locale du pauvre, sans prise de tête

💡 Pour une meilleure appréhension, il est recommandé de lire ce tutoriel sur le wiki ou à l'aide du mode lecture de votre navigateur web.


En attendant un web majoritairement décentralisé via IPFS (ou une autre technologie) archiver le web reste une pratique utile pour diverses raisons, par exemple :

  • comme contre mesure à la censure
  • pour consulter des pages web hors ligne
  • en cas d'indisponibilité ou inaccessibilité temporaire
  • ou pour avoir un historique lorsqu'un site ou une page web disparaît (ou est remplacé⋅e par une autre ou encore est modifié⋅e mais qu'il manque des informations)

Si l'acteur principal dans ce domaine - Internet Archive avec son archive.org - fait un travail remarquable, reste que tout n'est pas toujours archivé ou archivable et que vous pouvez vous retrouver déconnecté d'internet ou avoir une faible bande passante, insuffisante pour consulter ce dont vous avez besoin.

De plus si certains sites comme Wikipédia possèdent bien une version téléchargeable, le moins que l'on puisse dire, c'est que c'est loin d'être une généralité.

D’où l'idée d'avoir sa propre archive web. Même si elle restera probablement modeste, si de nombreuses personnes en ont, un historique du web décent pourrait advenir.

Comme vous allez le constater, il n'est pas nécessaire d'avoir un équipement coûteux ou complexe, l'objectif ici est simplement de sauvegarder tout le contenu d'une page web dans un seul fichier avec à côté les contenus audio ou vidéo qu'elle pourrait contenir.

Un disque dur de taille suffisante (à vous de choisir en fonction de vos besoins) et les logiciels suivants seront nécessaires.

Prérequis techniques

optionnel :

Installation

Incron, youtube-dl, archivement

Selon votre distribution :

sudo dnf install incron youtube-dl archivemount

ou

sudo dnf install incron youtube-dl archivemount

les bash, awk, tar sont généralement déjà installés (ou vous les utilisez déjà pour d'autres choses)

Configuration

SingleFile

1.

Clic droit sur l'icône de l'extension puis menu Gérer l'extension

singlefile2.png

Onglet "Préférences"

Ne pas oublier d'ajouter l'URL de la page sauvegardée dans la barre d'information

{url-href}

... et d'inclure la barre d'information dans la page sauvegardée.

Je propose également le modèle de nom de fichier (nomenclature) suivante :

{url-href-flat}_{page-title}_({date-locale}_{time-locale}).html

Ne pas hésiter à choisir des noms de fihiers longs.

singlefile25.png

2.

Avec les options suivantes :

singlefile3.png

Incron

 sudo rm -f  /etc/incron.allow
 echo $USER | sudo tee -a /etc/incron.allow
 incrontab -e # équivalent de crontab -e, permet de surveiller un dossier et de déclencher un script en fonction des événèments

Ajouter la ligne suivante :

/chemin/de/l/archive IN_CLOSE_WRITE /chemin/de/l/archive/incron-script-archive-web.sh
# cette ligne va permettre à incron de :
# 1. Surveiller le dossier : ...
# 2. Et lorsqu'un fichier est créé ou modifier 
# 3. Lancer le script : ...

Sauvegarder.

Automatisation

Lors de l'enregistrement de la page web, un dossier est créé avec le nom du site. La page déplacée à l'interieur de ce dossier et youtube-dl tente de télécharger les podcasts ou la vidéo qui se trouvent sur la même page.

nano /chemin/de/l/archive/incron-script-archive-web.sh
# le script contiendra :
FULLPATH="$1"
FILENAME="$2"
if [[ $FILENAME == **.html ]] # Si le fichier créé ou modifié est au format HTML
then
URL=$(grep -m 1 "url:" "$FULLPATH/$FILENAME") # Récupère l'URL exacte de la page sauvegardée dans les métadonnées enregistrées par l'extension SingleFile
URL=$(echo ${URL//url:/}) # Supprime la partie qui commence par "url :"
DOMAIN=$(echo $URL | awk -F/ '{print $3}') # Extraction du nom de domaine
cd "$FULLPATH" # Se rendre dans le dossier de l'archive
mkdir "$DOMAIN" # Création d'un dossier au nom du site
mv "$FILENAME" "$DOMAIN" # Déplacement de la page dans ce dossier
cd "$DOMAIN/"
youtube-dl -o '$FILENAME_%(title)s-%(id)s.%(ext)s' "$URL" # Sauvegarde des médias de cette page
else
echo "Fichier non HTML"
fi

Réduction de l'espace disque occupé par l'archive

Étant donné que les fichiers HTML seront en grand partie constitués de texte, le gain potentiel - même avec une compression sans perte - devrait être assez important.

sudo dnf install archivemount
touch fichier.vide
tar -czvf archive.tar.gz fichier.vide # Création du fichier d'archive
# Ajouter en début de script :
archivemount /chemin/de/archive.tar.gz /chemin/de/l/archive/ # montage du fichier d'archive

Lorsque l'archivage des fichiers est terminé :

# Ajouter en fin de script :
umount /chemin/de/l/archive/

UK/Happy hardcore : sélection janvier 2021

Débutant en informatique et intimidé par la ligne de commande ? Implémentez un premier alias qui pourrait réalistement vous émanciper d'un gestionnaire de fichiers graphique

Book Folder File - Free vector graphic on Pixabay https://pixabay.com/vectors/book-folder-file-notebook-159747/

Supposons que vous ayez beaucoup de fichiers sur un disque dur ou un serveur de fichiers avec une arborescence de dossiers profonde, complexe et que vous ne vous souveniez plus exactement de son emplacement. Même avec un bon gestionnaire de fichiers graphique comme l'explorateur Windows retrouver et ouvrir le document que vous cherchez va requérir beaucoup de temps, d'autant que l'Indexation et la recherche par mot clé sur des systèmes d'exploitation comme Microsoft Windows ne sont pas toujours très convaincants.

Voici une commande qui pourrait vous aider. A vous ensuite d'en créer d'autre ou de l'adapter à vos besoins.

Prérequis

Au préalable

Ouvrez un émulateur de terminal :

Touche "Super" sous GNOME, saisir "term" puis appuyez sur entrée.

Créer un fichier texte dans u sous dossier

mkdir -p ~/dossier/et/sous/dossier
echo "test" > ~/dossier/et/sous/dossier/monfichier.txt

Mettez à jour l'index des fichiers de votre système

sudo updatedb

Normalement cette indexation devrait se faire régulièrement sinon la paramétrer avec cron

Définissez quelques associations par défaut pour types de fichiers

Tant qu'à faire avec le fichier que l'on vient de créer

mimeopen -d monfichier.txt

Choisir :

"2) Other"

Et saisir avant de valider :

/usr/bin/nano

S'il retourne un message d'erreur la pemière fois, créer le dossier qui va contenir le fichier de configuration de mimeopen {.is-warning}

Création de l'alias

alias ouvre='mimeopen -n "$( ls "$(locate * | fzf -i -e)" )"'

Utilisation de l'alias

C'est le plus compliqué ! 😅
Saisir et valider :

ouvre

Puis saisir simplement un(des) bout(s) de nom(s) de dossier(s) et/ou de fichier(s) avec un espace pour les séparer.
Par exemple, si vous ne vous souvenez plus du nom complet du dossier et du fichier :

ossier fichi

Faites votre choix avec les flèches et du clavier.

... magique 🤩

Vous pourriez rendre le processus encore plus performant en créant la base d'indexation en mémoire vive dans l'espace utilisateur plutôt que sur le SSD (ou pire le disque dur). Pour cela vous devrez utiliser l'option -o de updatedb

sudo updatedb -o /chemin/de/l/index

et lors de la recherche avec la commande locate, l'option -d

alias ouvre='mimeopen -n "$( ls "$(locate -d /chemin/de/l/index * | fzf -i -e)" )"'

Rendre permanent l'alias

Il faut ajouter la création de l'alias au fichier .bashrc

echo $'alias ouvre=\'mimeopen "$( ls "$(locate * | fzf -i -e)" )"\'' >> .bashrc

Nextcloud : tour d'horizon des fonctionnalités et des applications qui en font actuellement une plateforme au sommet de son genre (MAJ)

Si Nextcloud 1 2 était originellement un logiciel libre permettent principalement d' (auto)héberger comme son parent une solution de stockage et de partage de fichiers par le web à la DropBox, il a depuis nettement évolué et s'est enrichi de nombreuses applications et autres fonctionnalités que je vais rapidement passer en revue - de façon non exhaustive - ici pour que vous puissiez vous en faire une idée.

Fonctionnalités

Fichiers
Gestion de versions des fichiers
Partage des fichiers aux utilisateurs internes et en externe par URL
Synchronisation des fichiers sur poste de travail et terminal mobile avec un client
Galerie photo avec reconnaissance faciale Face Recognition - Applications - App Store - Nextcloud
Recherche full-text unifiée et avec OCR Full text search - Files - Tesseract OCR - Applications - App Store - Nextcloud
Intégration multiples types de stockage dans le cloud et en réseau local (FTP, partages réseau Windows, SharePoint, Samba, OneDrive, etc.)
Bureautique
Éditeur Markdown intégré
Multimédia
Streaming vidéo
Productivité
Courrier électronique Mail - Applications - App Store - Nextcloud
Calendrier
Notes
Tâches
Intégration des applications natives entre elles
Collaboratif
Contacts
Visioconférence, appels audio ,vidéo et messagerie de groupe Talk - Applications - App Store - Nextcloud
Passerelles avec d'autres plateformes messageries collaboratives & visioconférence type MS Teams, Slack, IRC, Matrix, etc.
Espaces de travail basés sur les groupes d'utilisateurs Rich workspaces in Nextcloud - YouTube
Salles de données virtuelles Virtual Data Room – Nextcloud
Fédération entre instances
Cybersécurité
Chiffrement sur le serveur
Chiffrement de bout en bout
Anti rançongiciel
Conforme RGPD
Auto hébergeable - On Premise (sur site)
Authentification à multiples facteurs
Vue sécurisée avec filigrane Secure view – Prevent your shared files from getting downloaded – Nextcloud
Partage avec vérification par webcam Unique sharing security: video verification – Nextcloud
Automatisation
Workflows
Étiquetage (tagging) automatique
Accessibilité
Conforme WCAG 2.0 AA
Adapté aux lecteurs d'écran et nombreux raccourcis clavier
Police de caractères adaptée aux dyslexiques
Thème sombre
Administration système
Gestion des comptes optionnellement LDAP / Active Directory, Kerberos and Shibboleth / SAML 2.0, etc. LDAP Contacts Backend - Applications - App Store - Nextcloud
Gestion des quotas
Notifications aux utilisateurs
Import / Migration depuis d'autres plateformes Easy migration to Nextcloud from insecure and privacy-unfriendly platforms now available – Nextcloud
Interface
Système de notifications unifiées
Page d'accueil avec tableau de bord personnalisable avec des widgets interactifs

Applications

Productivité
Deck - Applications - App Store - Nextcloud Gestion de projet / tâches type Kanban (avec client pour terminaux mobiles)
Analytics - Applications - App Store - Nextcloud Décisionnel / Reporting / Entrepôt de données
Appointments - Applications - App Store - Nextcloud Gestion des réservations / Rendez-vous
LibreSign - Applications - App Store - Nextcloud Electronic Signatures - Applications - App Store - Nextcloud Signatures électroniques
Collaboratif
Circles - Applications - App Store - Nextcloud Créer des groupes d'utilisateurs personnalisés de façon décentralisée (privés / publics / secrets / sur invitation)
Temporary files lock - Applications - App Store - Nextcloud verrouiller momentanément certains fichiers partagés File Locking in Nextcloud - YouTube
README.md - Applications - App Store - Nextcloud Modifier le style des dossiers
Forms - Applications - App Store - Nextcloud Questionnaires / Formulaires
Polls - Applications - App Store - Nextcloud Sondages
Social - Applications - App Store - Nextcloud Réseau social interne
Whiteboard integration - Applications - App Store - Nextcloud Tableau blanc
Collectives - Applications - App Store - Nextcloud Base de connaissances
Bureautique
Collabora Online Office – Nextcloud Suite bureautique web complète
ONLYOFFICE integration – Nextcloud Suite bureautique web complète
Office Online integration - Nextcloud
Draw.io - Applications - App Store - Nextcloud Créer des diagrammes avec Draw.IO
PDF annotations - Applications - App Store - Nextcloud Annotation des PDF
Outlook Add-in news: name change, new release and 4 versions – Nextcloud
Mind Map - Applications - App Store - Nextcloud Cartes mentales / cartes heuristiques
Web - Intranet
PicoCMS Créer des sites web statiques
Maps - Applications - App Store - Nextcloud Cartographie OpenStreetMaps / Géolocalisation
News - Applications - App Store - Nextcloud Lecteur de flux RSS
Bookmarks - Applications - App Store - Nextcloud Marques pages / Favoris web
Multimédia
Music - Applications - App Store - Nextcloud Gestionnaire de collection et lecteur audio
Cybersécurité
Two-Factor TOTP Provider - Applications - App Store - Nextcloud Authentification à multiples facteurs
Passman - Applications - App Store - Nextcloud Coffre fort pour mots de passe de tout type
Brute-force settings - Applications - App Store - Nextcloud Protection contre les attaques par force-brute
GeoBlocker - Applications - App Store - Nextcloud Blocage des accès depuis certaines régions
Intégration avec l'antivirus Kaspersky
Administration système
External sites - Applications - App Store - Nextcloud Ajout de liens vers des sites externes au menu principal
Announcement center - Applications - App Store - Nextcloud Gestion avancée des notifications
Group folders - Applications - App Store - Nextcloud Dossiers pour groupes d'utilisateurs
Auto Groups - Applications - App Store - Nextcloud Groupes automatiques / par défaut
Retention - Applications - App Store - Nextcloud Suppression automatique de fichiers après un certain temps
Impersonate - Applications - App Store - Nextcloud Impersonation
Write support for LDAP - Applications - App Store - Nextcloud Gestion avancée des comptes LDAP
Printer - Applications - App Store - Nextcloud Impression directe sur une imprimante réseau
Retention - Applications - App Store - Nextcloud Suppression automatique après un délai
File access control - Applications - App Store - Nextcloud Contrôle d'accès sur des fichiers avancé, pouvant être basé sur l'adresse IP, le type mime, une étiquette, une date ou une heure, etc.
Workflow external scripts - Applications - App Store - Nextcloud Workflow pour scripts externes
Développement
GitHub integration - Applications - App Store - Nextcloud Intégration de Github
GitLab integration - Applications - App Store - Nextcloud Intégration de Gitlab
Tables - Applications - App Store - Nextcloud Création simplifiée de base de données

Notes de version des dernières versions à ce jour (Hubs).

Comparatifs avec d'autres solutions du même type

Comparison – Nextcloud


  1. dérivé logiciel d'ownCloud depuis 2016. ↩︎

  2. ownCloud est un logiciel libre offrant une plateforme de services de stockage et partage de fichiers ↩︎

Pages

Subscribe to RSS - Le blog de Laurent Espitallier