shiori un gestionnaire de signets
Sun, 29 Dec 2024 13:20:30 +0200Korben vient de publier un article sur Shiori. Banux m’en avait parlé en mars dernier mais je ne souhaitais pas alors installer un nouveau service.
Comme d’autres j’ai un syndrome, celui d’accumuler des zillons d’onglets dans mes navigateurs. Je tombe sur un texte intéressant mais à lire ou à approfondir plus tard et je laisse l’onglet ouvert, cela peut monter à plusieurs centaines.
Depuis une mise à jour récente Vivaldi permet de mettre en hibernation un onglet inutilisé afin d’économiser la mémoire mais le navigateur peut rapidement dépasser le Go en RAM. De toute manière c’est une pratique qui ne sert à rien, voir “dangereuse” car la page ou le site web dans l’onglet peut disparaitre.
J’ai en paralèlle une pratique qui est d’utiliser Obsidian pour télécharger et stocker en local une page web. Ils ont d’ailleurs sorti une excellente extension web, Web Clipper, qui télécharge une page, la converti en markdown et la stocke dans son coffre local.
Je continue d’utiliser Obsidian mais plusieurs raisons m’orientent malgré tout vers Shiori pour supprimer mon syndrome :
Pour l’instant les 2 outils sont complémentaires, Obsidian reste ma base de connaissance d’informations qualifiés.
Shiori a la bonne idée d’utiliser Go et Sqlite (ou PostgreSQL pour ceux qui préfèrent) ce qui permet d’avoir un service léger, rapide, consommant peu de ressources.
Voici mon fichier HCL pour le déployer sur mon NUC via Nomad
shiori.hcl
job "shiori" {
datacenters = ["dc1"]
type = "service"
group "home" {
count = 1
network {
port "http" {
to = 8080 # container port the app runs on
host_network = "tailscale"
}
}
task "shiori" {
driver = "docker"
constraint {
attribute = "${attr.unique.hostname}"
value = "nuc"
}
env {
SHIORI_DIR = "/data"
# generate secret key with : openssl rand -base64 24
SHIORI_HTTP_SECRET_KEY = "KEY"
}
config {
# image = "ghcr.io/go-shiori/shiori:alpine-pr-825"
image = "ghcr.io/go-shiori/shiori"
volumes = [
"/data/volumes/shiori:/data"
]
ports = [
"http"
]
}
resources {
cpu = 200
memory = 400
}
service {
name = "shiori"
provider = "consul"
port = "http"
tags = ["tricot shiori.domain.tld"]
check {
type = "http"
name = "app_health"
path = "/"
interval = "60s"
timeout = "30s"
}
}
}
}
}
Avec ce simple hcl vous pouvez déployer ce service qui sera automatiquement géré par Tricot. A noter qu’il faut générer une secret key à définir dans SHIORI_HTTP_SECRET_KEY
.
Le compte par défaut est shiori
pass gopher
. Vous pouvez créer plusieurs comptes mais ils auront accès à vos signets (en lecture seule ou en admin).
J’utilisais le service Pocket racheté par Mozilla, j’avais donc pas mal de signets dans leur base. La dernière version 1.7.2 permet d’importer l’export de Pocket, car depuis peu elle est au format CSV et non plus en HTML.
Pour cela il faut utiliser l’image en commentaire ghcr.io/go-shiori/shiori:alpine-pr-825
qui autorise un accès shell via docker exec -it ID ash
. Dans le répertoire des données de Shiori (/data/volumes/shiori
) j’ai déposé le fichier CSV généré par https://getpocket.com/export. Ensuite dans le conteneur il suffit de lancer l’import
shiori pocket /data/part_000000.csv
Attention l’import ne télécharge pas les pages web, il faudra cliquer sur le petit nuage de chaque archive.
L’extension Shiori dans les add-ons Firefox n’est pas à jour. Il faut utiliser directement le fichier XPI sur le projet Github https://github.com/go-shiori/shiori-web-ext/releases. Dans les préférences de l’extension il suffit de mettre l’URL le login et le pass pour pouvoir ajouter en un clic une page web qui sera téléchargé dans la base Sqlite.
Pour l’ajout de l’extension sur les navigateurs basés sur Chrome comme Vivaldi il faut décompresser le .zip et activer le mode développeur dans la page Extensions, voir : Vivaldi Extensions.
Le seul gros défaut que j’ai trouvé pour l’instant est que les sections de code dans les pages web téléchargées n’ont pas de colloration syntaxique ce qui peut être pénible à lire. Shiori (ou Wallabag) sont à mon avis des outils indispensables pour gérer sa veille dans un Web volatile en complément d’un lecteur de flux RSS. En 10 ans, dans mes signets Pocket, de nombreux sites web ont disparu.
(Ce texte a été écrit avec VNote)