---
title: BookHeaven
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, books, ebook, android, e-ink, reader, dotnet, blazor]
confidence: medium
contested: false
sources: [https://selfh.st/apps/?tag=books, https://github.com/BookHeaven]
---

# 📚 BookHeaven

> **Écosystème ebook minimaliste** : un serveur web pour gérer votre bibliothèque EPUB et une app Android optimisée pour liseuses e-ink, avec sync de progression.

| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | [bookheaven.ggarrido.dev](https://bookheaven.ggarrido.dev/) |
| **GitHub** | [BookHeaven/BookHeaven.Server](https://github.com/BookHeaven/BookHeaven.Server) |
| **License** | GPL-3.0 |
| **Langage** | C# (.NET 8), HTML/Blazor |
| **Étoiles** | 184 ⭐ (BookHeaven.Server) |
| **Dernière MAJ** | 2026-04 (BookHeaven.Server) |
| **Catégorie** | [[cat-books]] |

## Description

BookHeaven se présente comme **« un écosystème ebook minuscule »** : une stack simple (serveur + reader) taillée pour le cas d'usage spécifique « j'ai une liseuse Android e-ink et je veux juste gérer ma bibliothèque + lire + sync la progression ». C'est l'œuvre d'un auteur solo (ggarrido) et la **vocation est assumée minimaliste** — pas de OPDS, pas de conversion auto, pas de RBAC fin.

L'écosystème comprend deux projets principaux :

- **BookHeaven.Server** (184 ⭐) — L'app web .NET/Blazor qui sert de back-office. Gestion de la bibliothèque EPUB (ajout, métadonnées, suppression), upload, organisation par collections, configuration des utilisateurs.
- **BookHeaven.Reader** (31 ⭐) — L'app Android optimisée pour e-ink (mais qui marche sur n'importe quel Android). Télécharge les ebooks + polices depuis le serveur, synchronise la progression de lecture.

Trois sous-projets complètent l'écosystème : `BookHeaven.Domain` (lib C# partagée), `BookHeaven.EbookManager` (parsing EPUB), `BookHeaven.Web` (interface). Le tout sous GPL-3.0, publié sous l'organisation `BookHeaven` sur GitHub.

**Points forts** : focus e-ink (liseuse Android = marché de niche bien servi), sync de progression server ↔ reader, stack .NET moderne, interface Blazor propre, licence GPL-3.0, écosystème cohérent (server + reader + libs partagées).

**Points faibles** : **bus factor 1** (un seul mainteneur), **EPUB uniquement**, **pas d'OPDS** (donc ne marche qu'avec l'app Android maison), UI web jeune et limitée, base installée faible (184 étoiles server, 31 reader), pas de RBAC avancé, pas de conversion de format, doc light.

## Installation

### Via Docker (recommandé)

L'image n'est pas publiée officiellement sur Docker Hub (à compiler soi-même). Un template Easypanel existe. Le setup typique clone le repo et build localement.

```yaml
# docker-compose.yml
services:
  bookheaven-server:
    build:
      context: https://github.com/BookHeaven/BookHeaven.Server.git
    container_name: bookheaven-server
    restart: unless-stopped
    ports:
      - "8080:8080"
    volumes:
      - ./config:/app/config
      - /chemin/vers/epubs:/app/library
    environment:
      - ASPNETCORE_URLS=http://+:8080
      - ASPNETCORE_ENVIRONMENT=Production

  bookheaven-reader:
    # L'app Android n'est PAS un serveur, build séparé (APK)
    # Ce service est juste pour télécharger l'APK ou sync via ad-hoc
    image: alpine:latest
    command: ["echo", "Build l'APK depuis le repo BookHeaven.Reader"]
    profiles: ["never"]
```

> ⚠️ Vérifier le repo officiel pour l'image Docker à jour — la procédure a changé entre les versions 0.x et 1.x.

### Installation manuelle

Voir la doc : cloner `BookHeaven.Server`, .NET 8 SDK, `dotnet publish -c Release`, lancer le binaire. Pour le reader : Android Studio, `gradle build` → APK.

## Configuration

1. Démarrer le serveur, créer le compte admin.
2. Configurer le chemin de scan EPUB (`LIBRARY_PATH`).
3. Installer `BookHeaven.Reader` (APK) sur votre liseuse Android ou votre téléphone.
4. Configurer l'URL du serveur dans l'app reader (et le token de sync).
5. Activer HTTPS obligatoire (le reader Android bloque les URL HTTP par défaut depuis API 28+).
6. Activer la sync de progression dans les deux sens.

## Alternatives

### Open source
- [[app-calibre]] — Monstre sacré, plus complet mais plus lourd
- [[app-kavita]] — Lecteur moderne EPUB/CBZ avec OPDS, sync KOReader
- [[app-stump]] — Alternative Rust à Kavita
- [[app-bookhaven]] — Concurrent direct, OIDC + RBAC + OPDS
- **KOReader** — Firmware alternatif pour liseuses, pas de serveur
- **Reader3** — Lecteur EPUB simple, pas de serveur

### Propriétaires
- **Calibre Companion** (Android) — Sync avec Calibre desktop, freemium
- **Moon+ Reader** (Android) — Lecteur EPUB/PDF, sync cloud Google Drive/Dropbox
- **PocketBook Cloud** — Sync cloud propriétaire pour liseuses PocketBook

## Sécurité

- ⚠️ **Bus factor 1** : ggarrido est le seul mainteneur de tous les sous-projets
- ✅ **HTTPS obligatoire** : le reader Android moderne refuse les URL HTTP
- ⚠️ **Pas d'auth avancée** : vérifier les versions, RBAC limité
- ⚠️ **APK compilé maison** : signer avec une clé personnelle avant distribution
- ✅ **.NET 8** : stack moderne avec TLS 1.3 par défaut
- ⚠️ **Pas d'OPDS** : couplage fort avec l'app Android maison, sortir de l'écosystème est difficile
- ⚠️ **Projets jeunes** : tous les sous-repos sont < 200 étoiles, bugs probables

## Ressources

- [Site officiel BookHeaven](https://bookheaven.ggarrido.dev/)
- [GitHub BookHeaven/BookHeaven.Server](https://github.com/BookHeaven/BookHeaven.Server)
- [GitHub BookHeaven/BookHeaven.Reader](https://github.com/BookHeaven/BookHeaven.Reader)
- [Reddit — présentation](https://www.reddit.com/r/selfhosted/comments/1n0pmi1/i_present_to_you_bookheaven_a_selfhosted_library/)
- [Easypanel template](https://easypanel.io/docs/templates/bookheaven)
- [selfh.st Books](https://selfh.st/apps/?tag=books)

## Pages Liées

- [[cat-books]] — Catégorie Books
- [[app-kavita]] — Lecteur moderne OPDS concurrent
- [[app-bookhaven]] — Concurrent EPUB-only plus complet
- [[recettes-docker-compose]] — Templates Docker
- [[app-caddy]] — Reverse-proxy HTTPS pour le reader Android
