Vue lecture

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.

Hoarder : liens, images, textes et PDF en favoris avec recherche et tags auto

Il existe plusieurs alternatives autohébergées à Pocket, la plus connue étant (d’après moi) Wallabag, que j’ai utilisé des années jusqu’à ma “boulette” où j’ai perdu mon blog et mon instance Wallabag (et leurs backups).

Voici un Wallabag avec de l’AI (OpenAI ou Ollama autohébergé) : Hoarder (site Web / GitHub)
Fonctionne depuis une page Web, applications iOS/Android et plugins Firefox/Chrom*.

J’ai aussi testé rapidement Benotes et il faut reconnaître que le gros avantage de Hoarder est de générer les tags automatiquement. Certes, on pourrait peaufiner (surtout que je les demande en français et non english) mais quand on monte à des 100aines de liens sauvegardés, les tags sont salvateurs…

On l’installe évidemment en 2-2 via Docker en suivant la documentation ou via mon exemple de compose :

version: "3.8"
services:
  web:
    image: ghcr.io/hoarder-app/hoarder:latest
    restart: always
    volumes:
      - /mnt/user/appdata/hoarder/web:/data
    ports:
      - 3067:3000
    environment:
      MEILI_ADDR: http://meilisearch:7700
      BROWSER_WEB_URL: http://chrome:9222
      OPENAI_API_KEY: ccc
      INFERENCE_LANG: french
      INFERENCE_TEXT_MODEL: gpt-4o-mini
      INFERENCE_IMAGE_MODE: gpt-4o-mini
      DATA_DIR: /data
      NEXTAUTH_SECRET: aaa
      MEILI_MASTER_KEY: bbb
      NEXTAUTH_URL: http://localhost:3000
    labels:
      - com.centurylinklabs.watchtower.enable=true
  chrome:
    image: gcr.io/zenika-hub/alpine-chrome:latest
    restart: always
    command:
      - --no-sandbox
      - --disable-gpu
      - --disable-dev-shm-usage
      - --remote-debugging-address=0.0.0.0
      - --remote-debugging-port=9222
      - --hide-scrollbars
    labels:
      - com.centurylinklabs.watchtower.enable=true
  meilisearch:
    image: getmeili/meilisearch:latest
    restart: always
    environment:
      MEILI_NO_ANALYTICS: "true"
      NEXTAUTH_SECRET: aaa
      MEILI_MASTER_KEY: bbb
      NEXTAUTH_URL: http://localhost:3000
    volumes:
      - /mnt/user/appdata/hoarder/meilisearch:/meili_data
    labels:
      - com.centurylinklabs.watchtower.enable=true

Je me base sur OpenAI pour les tags et il sont en français avec la variable INFERENCE_LANG: french

L’application iOS me permet surtout d’y ajouter des liens plutôt que pour les consulter évidemment (à tester sur iPad).

Docker labels sur UNRAID

La gestion de Docker sous UNRAID est bonne, mais il manque l’ajout simple de labels. Certes on peut passer par du compose (plugin) ou un outil tiers tel que DockGE mais là par exemple je viens d’installer Watchtower et je cherchais aussi un moyen d’envoyer du label à la volée.

Enfin on peut ajouter des labels, c’est d’ailleurs le cas de base (on le voit à la fin du lancement d’un container sur le panel), mais ça impliquerait de lancer les Dockers à la main, en CLI. Ce qui est dommage sur UNRAID 🙂

[...]
  -l net.unraid.docker.managed=dockerman
  -l net.unraid.docker.webui='http://[IP]:[PORT:3000]/'
  -l net.unraid.docker.icon='https://raw.githubusercontent.com/SiwatINC/unraid-ca-repository/master/icons/adguard.png'
[...]

La simplicité est de mise avec le super plugin docker.labelinjector de Phyzical. On y entre un ou des labels à appliquer ensuite à un ou plusieurs Dockers.

Il ne reste ensuite qu’à utiliser le plugin côté Docker

Sélectionner le ou les containers concerné.s par un ou plusieurs label.s

BW-Export : sauvegarde chiffrée de Bitwarden ou Vaultwarden

J’utilise les services de Bitwarden pour stocker mes mots de passe et clés. On peut aussi héberger ça via Vaultwarden mais comme j’ai pas confiance en moi après avoir supprimé des années de (backup de) blogging, je n’héberge plus aucun service critique directement au garage pour l’instant…

Quoi qu’il en soit, ces gestionnaires reposent sur un accès unique à l’ensemble de ses mots de passe. En cas de plantage du service ou tout simplement de perte de mémoire, ça peut devenir compliqué. BW-Export permet, comme son nom l’indique, d’exporter ses données Bitwarden de manière sécurisée en utilisant l’outil Bitwarden-CLI original, dans un Docker. L’export réalisé peut donc être réinjecté en quelques clics via l’application/plugin Bitwarden.

Chacun fera comme il veut, je lance le Docker tous les 15 jours en cron et lui demande de conserver toujours 3 sauvegardes différentes. Il existe un template pour UNRAID mais même sur cet OS, je préfère lancer ça tous les 15 jours via User Scripts.

Pour s’en servir, il convient de récupérer son client_id et client_secret, son mot de passe unique BW et d’en choisir un pour le chiffrement du backup.

docker run --rm \
--name=bitwarden-export \
-e TZ=Europe/Paris \
-e BW_CLIENTID=user.aaa \
-e BW_CLIENTSECRET=bbb \
-e BW_PASSWORD=ccc \
-e EXPORT_PASSWORD=ddd \
-e KEEP_LAST_BACKUPS=3 \
-e FILE_LOG=/var/data/logs.log \
-v /mnt/user/appdata/bw-export:/var/data \
-v /mnt/user/appdata/bw-export:/var/attachments \
0netx/bw-export

Le process de sécurité de BW nous indique que nos identifiants sont utilisés en CLI

On peut voir dans les logs que les informations sensibles ne sont pas rapportées

root@HomeBox:~# tree /mnt/user/appdata/bw-export/
/mnt/user/appdata/bw-export/
├── 20240817084820-bw-export
│ └── bitwarden_encrypted_export_20240817104824.json
├── 20240817090948-bw-export
│ └── bitwarden_encrypted_export_20240817110952.json
├── 20240817094105-bw-export
│ └── bitwarden_encrypted_export_20240817114110.json
└── logs.log

Exemple de sauvegarde chiffrée

{
  "encrypted": true,
  "passwordProtected": true,
  "salt": "xxx",
  "kdfType": 0,
  "kdfIterations": 100000,
  "encKeyValidation_DO_NOT_EDIT": "xxx",
  "data": "2.OMlq6tqWKl1uNOFzhsZTDw==|AUrb+ToMJySQgg+1iVDN1518QKtBezn0eCkQiEgaQNVzC/vVAcCao39jCOHI1/Pq02ZuJJepsKHezoBLArvpqtTscl5F8gYCVyF4S1/kZDE8VkuT4JrPF+QgP4/ehKZARnn4FQZqUnbOcP1CLZ6tYjaMUhiBSmXiHv2jBLhgFxhOXA2Wyt7fKYuFTKOemycLOmFUOx88ce9LUucgmYr5XIKxK3Fpa5IXt49/YwsE1b9piyEWMmDt2paM6oEui7bXKG4HUz9M8N+O9gPjVBgps1Mi65Klgy0WTPALRPh2Cu/10iKIEQuXOTpjlsskMhoYFCpcVnfeJD11a8Bp97SrFeXwWB5IzvaIUqUyxrBxeoi9B4BovhLFfnBIf7Jg30BeLUTLINNNySg3aBkXdEVZEKKAvH [...]
 
Et pour importer les données sauvegardées, il suffit de se rendre sur son compte Bitwarden (ou instance Vaultwarden), menu Outils/Importer des données. Ici j’ai créé un coffre de TEST. On sélectionne son fichier de sauvegarde.json, on entre le mot de passe de chiffrement requis et c’est parti !
 
❌