129 lines
5.0 KiB
Markdown
129 lines
5.0 KiB
Markdown
---
|
|
title: BookLogr
|
|
created: 2026-06-07
|
|
updated: 2026-06-07
|
|
type: app
|
|
tags: [catalogue, books, python, flask, suivi-lecture, personnel, simple]
|
|
confidence: high
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=Books, https://github.com/MarcusKlaas/booklogr]
|
|
---
|
|
|
|
# 🪶 BookLogr
|
|
|
|
> **Le journal de lectures minimaliste et efficace** — une app Python/Flask pour pister ce qu'on lit, ce qu'on a lu, et garder ses impressions, sans le bruit d'un Goodreads.
|
|
|
|
| Métadonnée | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | [https://github.com/MarcusKlaas/booklogr](https://github.com/MarcusKlaas/booklogr) |
|
|
| **GitHub** | [https://github.com/MarcusKlaas/booklogr](https://github.com/MarcusKlaas/booklogr) |
|
|
| **License** | MIT |
|
|
| **Langage** | Python 3.11+ (Flask) |
|
|
| **Étoiles GitHub** | 30 ⭐ |
|
|
| **Dernière MAJ** | 2025-09 |
|
|
| **Catégorie** | [[cat-books\|Books]] |
|
|
|
|
## Description
|
|
|
|
BookLogr est une **application web minimaliste** de **suivi de lectures**, écrite en **Python / Flask** par Marcus Klaas. Le parti pris est radical : pas de réseau social, pas de federation, pas de catalogues à 200 millions d'ouvrages. Juste un **journal personnel** pour savoir ce que vous lisez, à quelle date, et ce que vous en avez pensé.
|
|
|
|
L'interface sobre propose trois « étagères » : **To-Read**, **Currently Reading** et **Read**. Vous ajoutez un livre manuellement (titre, auteur, ISBN optionnel), vous notez sur 5 étoiles, vous écrivez une **note libre**, et c'est tout. Pas de synchro Kindle, pas de scrobble, pas de partage : **vous, vos livres, et basta**.
|
|
|
|
Le projet brille par sa **simplicité de déploiement** : un fichier `app.py`, une base **SQLite** par défaut, **Bootstrap 5** pour l'UI, et une stack entièrement en Python standard. Idéal pour un **Raspberry Pi**, un **VPS léger** ou un **YunoHost**. Le code reste lisible (< 1000 lignes) et **personnalisable** en quelques minutes.
|
|
|
|
**Points forts** : ultra-léger (~ 50 Mo de RAM), SQLite embarqué, UI claire, philosophie "less is more", libre et modifiable.
|
|
|
|
**Points faibles** : pas de catalogue distant (pas d'OpenLibrary/Google Books), pas d'import Goodreads, pas d'application mobile, fonctionnalités figées, pas d'OPDS, communauté très réduite (30 étoiles).
|
|
|
|
## Installation
|
|
|
|
### Via Docker (recommandé)
|
|
|
|
```yaml
|
|
# docker-compose.yml
|
|
services:
|
|
booklogr:
|
|
image: ghcr.io/marcusklaas/booklogr:latest
|
|
container_name: booklogr
|
|
restart: unless-stopped
|
|
environment:
|
|
- BOOKLOGR_SECRET_KEY=change-me-to-a-long-random-string
|
|
- BOOKLOGR_DATABASE_URL=sqlite:////data/booklogr.db
|
|
- TZ=Europe/Paris
|
|
volumes:
|
|
- ./data:/data
|
|
ports:
|
|
- "8090:5000"
|
|
```
|
|
|
|
### Installation manuelle (Python pur)
|
|
|
|
```bash
|
|
# Cloner et installer
|
|
git clone https://github.com/MarcusKlaas/booklogr.git
|
|
cd booklogr
|
|
python3 -m venv venv
|
|
source venv/bin/activate
|
|
pip install -r requirements.txt
|
|
|
|
# Lancer
|
|
export BOOKLOGR_SECRET_KEY=$(python3 -c "import secrets; print(secrets.token_hex(32))")
|
|
export FLASK_APP=booklogr
|
|
flask run --host 0.0.0.0 --port 5000
|
|
```
|
|
|
|
Prérequis : **Python 3.11+**, **pip**, **SQLite 3**, **2 Go de RAM** suffisent largement.
|
|
|
|
## Configuration
|
|
|
|
1. Accéder à `http://localhost:8090`, créer le compte local.
|
|
2. Générer un **secret key** solide (32+ caractères hex) et l'exporter.
|
|
3. Sauvegarder régulièrement `data/booklogr.db` (un simple `cp` ou un cron `rsync`).
|
|
4. (Optionnel) Mettre derrière un **reverse-proxy HTTPS** :
|
|
|
|
```caddy
|
|
livres.example.com {
|
|
reverse_proxy localhost:8090
|
|
}
|
|
```
|
|
|
|
5. Pour un **usage multi-utilisateurs familial** : changer `BOOKLOGR_ALLOW_REGISTER` à `true` le temps de l'inscription, puis `false`.
|
|
|
|
## Alternatives
|
|
|
|
### Open source
|
|
- [[app-mybibliotheca]] — Gestionnaire plus complet, PHP/SQLite
|
|
- [[app-jelu]] — Version sociale et fédérée (Kotlin)
|
|
- [[app-librum-books]] — Lecteur EPUB avec catalogue
|
|
- **OpenReads** — Suivi de lectures mobile-first, Flutter
|
|
- **Tachiyomi** — Surtout manga, pas livres
|
|
|
|
### Propriétaires
|
|
- **Goodreads** — L'original, social mais tracking Amazon
|
|
- **StoryGraph** — Moderne, freemium, pas self-hostable
|
|
- **Notion / Obsidian** — Templates manuels possibles, sans la structure livre
|
|
|
|
## Sécurité
|
|
|
|
- ✅ **Authentification** : email + mot de passe (werkzeug hashing)
|
|
- ✅ **Sessions Flask** signées (itsdangerous)
|
|
- ✅ **CSRF** sur les formulaires
|
|
- ✅ **HTTPS** recommandé (HSTS via reverse-proxy)
|
|
- ⚠️ **Pas de 2FA** : coupler avec un SSO tiers si besoin
|
|
- ⚠️ **Secret key** : à garder **strictement confidentiel**, ne pas le commit
|
|
- ⚠️ **Sauvegarde SQLite** : backup quotidien du fichier `booklogr.db`
|
|
|
|
## Ressources
|
|
|
|
- [Dépôt GitHub](https://github.com/MarcusKlaas/booklogr)
|
|
- [Issues / Roadmap](https://github.com/MarcusKlaas/booklogr/issues)
|
|
- [selfh.st — Books](https://selfh.st/apps/?tag=Books)
|
|
|
|
## Pages Liées
|
|
|
|
- [[cat-books]] — Catégorie parente
|
|
- [[app-mybibliotheca]] — Alternative PHP plus complète
|
|
- [[app-jelu]] — Version sociale et fédérée
|
|
- [[recettes-docker-compose]] — Templates Docker
|
|
- [[app-caddy]] — Reverse-proxy HTTPS
|