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

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

  1. Choisir les langues actives dans .env (variable d'activation par code langue) — chaque langue alourdit l'empreinte RAM.
  2. Ajouter une clé DeepL (optionnel) pour la traduction contextuelle.
  3. Configurer l'intégration Anki (URL + clé API) pour exporter les decks.
  4. Connecter Jellyfin (URL + token) si vous voulez lire les sous-titres.
  5. Activer les sauvegardes automatiques via le script backup.sh fourni (cron quotidien).
  6. 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