6.6 KiB
title: LinguaCafe created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, books, language-learning, srs, flashcards, reader, laravel, vue, docker] confidence: high contested: false sources: [https://selfh.st/apps/?tag=books, https://github.com/simjanos-dev/LinguaCafe, https://simjanos-dev.github.io/LinguaCafeHome/]
🌍 LinguaCafe
Plateforme de lecture multilingue avec SRS intégré : lisez des textes en langue étrangère, surlignez les mots inconnus, et révisez-les automatiquement avec un système de cartes mémoire inspiré d'Anki — le tout auto-hébergé.
📋 Informations Générales
| Champ | Valeur |
|---|---|
| Site web | simjanos-dev.github.io/LinguaCafeHome |
| GitHub | simjanos-dev/LinguaCafe |
| Licence | GPL-3.0 |
| Langage | PHP (Laravel 11), Vue 3, Python (NLP) |
| Étoiles GitHub | 1.4k ⭐ |
| Dernière MAJ | 2025-03 (v0.14.1) |
| Catégorie | cat-books |
📝 Description
LinguaCafe est une application web conçue pour les apprenants de langues étrangères qui veulent combiner lecture immersive et acquisition de vocabulaire. Le principe : vous importez vos textes (articles web, ebooks EPUB, fichiers PDF), vous lisez dans un lecteur intégré qui annote automatiquement chaque mot, vous cliquez sur un mot inconnu pour voir sa traduction contextuelle, et l'application l'envoie dans un système de répétition espacée (SRS). Quand vous voulez réviser, vous ouvrez l'écran Review et l'algo vous fait réviser les mots selon la courbe de l'oubli.
LinguaCafe supporte 27 langues : japonais (le mieux servi grâce à JMDict, KANJIDIC2, MeCab et furigana automatique), coréen, chinois, français, allemand, espagnol, italien, russe, portugais, néerlandais, polonais, turc, grec, latin, etc. Le niveau de support varie — japonais, anglais et français sont les plus complets, certaines langues n'ont que le tokenizer. Pour le japonais, l'application génère le furigana sur les kanji, supporte le kana→kanji (pykakasi) et lit les fichiers EPUB avec vert/horiz.
L'application propose aussi un scanner ISBN (mobile), une intégration Jellyfin (pour lire ses sous-titres de séries), une intégration DeepL (traduction) et une intégration Anki (export de paquets). C'est un outil pensé pour les apprenants sérieux qui veulent arrêter de gérer leurs flashcards à la main dans un tableur.
Points forts : SRS vraiment efficace, lecteur fluide avec surlignage, dictionnaire intégré, 27 langues, intégration DeepL/Anki/Jellyfin, sauvegardes automatiques (backup.sh).
Points faibles : mono-utilisateur (un seul compte par instance), pas d'images Docker ARM (Raspberry Pi non supporté), RAM ≥ 2 Go si toutes les langues activées, encore en développement actif (l'auteur prévient : « please test before actively using »).
🚀 Installation
Option recommandée : Docker Compose
Le dépôt fournit un docker-compose.yml de production clé-en-main (webserver Laravel + service Python NLP + PostgreSQL + Redis).
# docker-compose.yml
services:
linguacafe-webserver:
image: ghcr.io/simjanos-dev/linguacafe-webserver:latest
container_name: linguacafe-webserver
restart: unless-stopped
env_file: .env
ports:
- "8080:80"
depends_on:
- linguacafe-database
- linguacafe-redis
volumes:
- linguacafe_storage:/var/www/html/storage
linguacafe-python-service:
image: ghcr.io/simjanos-dev/linguacafe-python-service:latest
container_name: linguacafe-python-service
restart: unless-stopped
linguacafe-database:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_DB: linguacafe
POSTGRES_USER: linguacafe
POSTGRES_PASSWORD: change-me-strong
volumes:
- linguacafe_db:/var/lib/postgresql/data
linguacafe-redis:
image: redis:7-alpine
restart: unless-stopped
volumes:
- linguacafe_redis:/data
volumes:
linguacafe_storage:
linguacafe_db:
linguacafe_redis:
Installation manuelle
Un script Windows est fourni (install_linguacafe.bat). Sur Linux : cloner le dépôt, cp .env.example .env, composer install, npm install && npm run build, configurer PostgreSQL et Redis, puis php artisan migrate et php artisan serve. Prévoir PHP 8.3+, Node 20+, Python 3.11+ pour le service NLP.
⚙️ Configuration Initiale
- Choisir les langues actives dans
.env(variable d'activation par code langue) — chaque langue alourdit l'empreinte RAM. - Ajouter une clé DeepL (optionnel) pour la traduction contextuelle.
- Configurer l'intégration Anki (URL + clé API) pour exporter les decks.
- Connecter Jellyfin (URL + token) si vous voulez lire les sous-titres.
- Activer les sauvegardes automatiques via le script
backup.shfourni (cron quotidien). - Placer derrière un reverse proxy HTTPS (Caddy/Nginx) pour l'accès distant.
🔄 Alternatives
Open Source
- app-readarr — pour l'automatisation d'acquisition de livres
- app-audiobookshelf — focus audiobooks
- Anki + AnkiConnect — SRS pur, sans lecteur intégré
- Lute — lecteur SRS similaire, plus minimaliste
- Readlang — équivalent web (mais fermé)
Propriétaires
- WaniKani — SRS japonais spécifiquement
- LingQ — lecteur multilingue avec SRS, freemium, pas self-hostable
- Readibu — lecteur chinois avec dictionnaire, freemium
- LingoDeer / Duolingo — apps mobiles, pas de vraies lectures immersives
🔐 Sécurité
- ✅ Authentification par email + mot de passe (Laravel Breeze/Jetstream)
- ⚠️ Mono-utilisateur par instance (limitation de conception)
- ✅ HTTPS obligatoire dès qu'on sort du LAN
- ✅ Sauvegardes automatiques via
backup.sh— indispensable - ⚠️ Stockage local des EPUB importés : bien protéger le volume
- ⚠️ DeepL API key à garder secrète (compte payant)
- ✅ PostgreSQL avec mot de passe fort
📚 Ressources
Pages Liées
- cat-books — Catégorie Books
- app-readarr — PVR livres/audiobooks
- app-audiobookshelf — Streaming audiobooks
- app-caddy — Reverse proxy HTTPS
- recettes-docker-compose — Templates Docker