Files
wiki/Catalogue-Self-Hosted/apps/app-hister.md
T
2026-06-09 18:40:21 +02:00

94 lines
4.1 KiB
Markdown

---
title: Hister
created: 2026-06-08
updated: 2026-06-08
type: app
tags: [catalogue, search, self-hosted, go]
confidence: medium
contested: false
sources:
- https://hister.org
- https://github.com/asciimoo/hister
---
# Hister 📚
> Moteur de recherche full-text ultra-léger pour indexer votre historique de navigation et vos bookmarks.
| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | https://hister.org/ |
| **GitHub** | https://github.com/asciimoo/hister |
| **License** | AGPL-3.0 |
| **Langage** | Go |
| **Étoiles** | 1 169 |
| **Dernière MAJ** | 2026-06-07 |
| **Catégorie** | [[cat-search]] |
## Description
Hister est un moteur de recherche minimaliste en Go qui indexe le **contenu complet des pages web** que vous avez visitées. C'est l'auto-hébergement de votre propre « Google personnel » qui tourne en local et que même Google ne peut pas indexer. Idéal pour retrouver un article lu il y a 6 mois, une doc technique noyée dans 500 onglets ou une recette découverte sur un blog éphémère.
Le projet est né en 2012 sous l'impulsion d'**asciimoo** (développeur de Searx) et reste maintenu régulièrement. L'architecture est volontairement simple : un binaire Go unique, un index BoltDB embarqué, pas de dépendances externes. L'indexation se fait via une commande CLI qui parse le HTML et extrait le texte, les titres, les métadonnées.
Hister se distingue de Meilisearch/Elasticsearch par sa **simplicité extrême** : aucune config, pas de serveur à administrer, c'est un outil CLI + un mini-serveur Web. C'est le couteau suisse pour qui veut **retrouver ce qu'il a vu sur le Web** sans dépendre d'un service tiers (Google History, Pocket, etc.).
## Installation
### Docker Compose
```yaml
services:
hister:
image: asciimoo/hister:latest
container_name: hister
command: serve --port 4444 --host 0.0.0.0
environment:
- HISTER_INDEX=/data/hister.db
volumes:
- ./index:/data
- ./pages:/pages:ro
ports:
- "4444:4444"
labels:
- traefik.enable=true
- traefik.http.routers.hister.rule=Host(`history.example.com`)
- traefik.http.routers.hister.entrypoints=websecure
- traefik.http.routers.hister.tls.certresolver=letsencrypt
- traefik.http.services.hister.loadbalancer.server.port=4444
restart: unless-stopped
```
### CLI natif
```bash
go install github.com/asciimoo/hister@latest
hister index --db ~/hister.db https://example.com
hister serve --db ~/hister.db
```
## Configuration
1. Compiler ou installer le binaire `hister` (Go 1.21+ requis).
2. Importer vos URLs : `hister index <url1> <url2>...` ou un fichier `urls.txt` avec une URL par ligne.
3. (Optionnel) Connecter **Wallabag / Linkding / Shaarli** pour indexer automatiquement les articles sauvegardés.
4. Lancer le serveur Web : `hister serve --port 4444 --host 0.0.0.0`.
5. Accéder à l'UI sur `http://localhost:4444` et lancer des recherches typo-tolérantes.
## Alternatives
- **Open source** : [[app-meilisearch]] (plus puissant, multi-langage), Sonic (search-as-you-type), Bleve (lib Go), Recoll (indexation desktop), Ripgrep + ugrep (CLI), Connectors/Shaarli (bookmarks), Linkding (bookmarks+tagging), Hoarder (Telegram bookmarking).
- **Propriétaire** : Google History (fermé, cloud), Evernote Web Clipper, Notion Web Clipper, Raindrop.io, Pocket.
## Sécurité
- **Stockage 100 % local** : aucune donnée envoyée à un tiers, conforme RGPD par construction.
- **BoltDB chiffré** au niveau filesystem (LUKS, ZFS) pour protéger l'historique sensible.
- **Pas d'auth intégrée** : prévoir un reverse proxy avec Authelia / BasicAuth si exposition publique.
- **Rate-limiting recommandé** sur le port 4444 pour éviter l'énumération.
- **Snapshots réguliers** de `hister.db` via `cron` + `rsync` pour archivage.
## Ressources
- Code : https://github.com/asciimoo/hister
- Site : https://hister.org/
- Auteur (asciimoo) : https://github.com/asciimoo
- Issues : https://github.com/asciimoo/hister/issues
## Pages Liées
- [[cat-search]] — Catégorie parente
- [[app-meilisearch]] — Moteur de recherche généraliste
- [[app-searxng]] — Méta-moteur Web
- [[recettes-docker-compose]] — Modèles de stacks