IETM_FIXE\ietm6 a9242ba1e1
All checks were successful
Build & Push Images / build (brain) (push) Successful in 1m27s
Build & Push Images / build (web) (push) Successful in 1m50s
Build & Push Images / build (core) (push) Successful in 3m29s
Build & Push Images / build-switcher (push) Successful in 18s
Nettoyage post-revue : factorisation, code mort et fiabilité (reorder/lore/foundry/PDF)
Corrections fonctionnelles
- order initialisé à la création des pages et dossiers de lore (nextOrderFor) :
  un nouvel élément se place désormais en dernier de sa fratrie au lieu de 0
- storePortrait : type MIME canonique dérivé de l'extension du fichier
  (un data URL "image/jpg" n'est plus rejeté silencieusement)
- takeUntilDestroyed ajouté sur les abonnements paramMap de arc-view,
  folder-view et campaign-detail (fuites mémoire)

Factorisation (suppression de duplication)
- shared/folder-grouping.util.ts : groupByFolder + byOrder + byFolderName
  mutualisés entre npc-list, enemy-list, campaign-detail et la sidebar
  (folderChildren). Le tri des dossiers est désormais cohérent entre la
  sidebar et les vues cartes (insensible casse/accents partout)
- DataSyncService.onChange()/persist() remplacent le câblage
  changed$ + reorder recopié dans 5 vues
- campaign-detail : loadCampaignBundle()/applyCampaignBundle() éliminent
  le forkJoin dupliqué entre ngOnInit et reload
- ReorderSupport (domain/shared) : squelette générique remplaçant les
  8 boucles de réordonnancement copiées dans les services
- FoundryExportService : GameSystem résolu une seule fois dans buildBundle
- module Foundry : walkScalars mutualise la récursion de flattenStats et
  flattenStructure (comportements préservés) ; esc() de l'importer aligné
  sur foundry.utils.escapeHTML

Suppression de code mort
- characterService/characters retirés de loadCampaignTreeData et de ses
  16 appelants (arguments, injections, imports et littéraux CampaignTreeData)
- CSS orphelin : .tree-row.cdk-drop-list-receiving et .btn-back
- BottomPanel.initiallyOpen (jamais lu) retiré de l'interface et de l'appelant
- commentaire trompeur du PDF corrigé

Tests
- mise à jour de 3 tests obsolètes de campaign-tree.helper.spec qui
  vérifiaient encore l'ancien comportement (tri alphabétique, non-classés
  en enfants directs) → alignés sur le modèle actuel (tri par order +
  pseudo-dossier "Sans dossier")
2026-06-26 09:10:20 +02:00
2026-06-25 12:18:19 +02:00
2026-06-14 17:18:48 +02:00
2026-04-20 14:04:47 +00:00

DM Loremind

English · Français

A self-hostable web app for game masters who want to centralize their world, campaigns and characters — with a context-aware AI assistant.

License: AGPL v3 Documentation Demo Patreon Discord

See DM Loremind in action

DM Loremind overview

Dashboard

What it does

DM Loremind brings together what a game master usually scatters across several tools. The app is built around three core modules, augmented by an AI assistant that draws on all of your content.

Lore

Build your world with a tree of templated pages: locations, factions, NPCs, events, organizations... Each page type follows a configurable template, which keeps things consistent and makes navigating rich worlds easy.

Game System

Store the rules of your game system (D&D, Nimble, homebrew...) and define the matching character sheet templates. Indexed rules can be injected into the AI's context for answers that stay true to your system.

Campaign

Structure your campaigns as Arcs → Chapters → Scenes, with a clear split between GM-only and player-facing content. Manage PCs and NPCs through dynamic sheets based on your chosen game system's templates.

AI Assistant

A context-aware assistant that pulls from your Lore, rules and campaigns to answer your questions, suggest consistent content, or improvise around an unexpected situation at the table.

The AI runs locally via Ollama — your data stays on your machine — or in the cloud with your own API key via 1min.ai, Mistral, Google AI Studio (Gemini) or OpenRouter.

Quick start

Desktop (easiest) — grab the latest installer from the Releases page: Windows .msi or Linux .AppImage, then run it. Your data stays local.

Self-host with Docker — on Linux:

curl -fsSL https://raw.githubusercontent.com/IGMLcreation/LoreMind/main/installers/install.sh | bash

On Windows, follow the installation guide.

Documentation

The full documentation (installation, configuration, getting started) lives at loremind-docs.igmlcreation.fr/en.

Live demo

A demo instance is available at loremind-demo.igmlcreation.fr.

A few limitations to be aware of:

  • 10 concurrent users maximum (isolated instances)
  • Sessions limited to 20 minutes before reset
  • The AI features are not included in the demo (they require an AI provider — local Ollama or a cloud API key — configured server-side)

Support the project

DM Loremind is and will remain free when self-hosted. Development moves faster with your support:

  • Patreon — early access to features, roadmap voting, exclusive devlogs
  • Discord — announcements, support, user feedback

License

DM Loremind is distributed under the GNU AGPL v3 license.

In practice:

  • You can use it for free, host it, modify it, and redistribute it.
  • If you modify the code and expose the modified app over a network (even as a private SaaS), you must make your changes public under the same license.
  • The worlds (Lore) and campaigns you create with DM Loremind belong entirely to you — the license only covers the application's code.
Description
Outil pour Maîtres du Jeu : gestion de lore et de campagne assistée par LLM.
Readme AGPL-3.0 24 MiB
Languages
Java 52.8%
TypeScript 20.8%
Python 9.1%
HTML 8.4%
SCSS 6.7%
Other 2.1%