fenrir2232/interactive-fantasy-map-wiki
Interactive fantasy map with integrated wiki โ all in a single Docker container.

Live Demo
[๐ interactive-fantasy-map-wiki.hf.space](https://fenrir2232-interactive-fantasy-map-wiki.hf.space)
Default credentials: admin / admin
Features
- Interactive map โ Leaflet with CRS.Simple, zoom and pan, compass, place search
- Integrated wiki โ Markdown pages with TipTap editor (ProseMirror), image upload, version history
- Side panel โ click a marker on the map to read its linked wiki article
- Map editor โ create, edit, delete markers; import/merge/export JSON; save to server
- Admin panel โ protected login to edit the wiki and the map
- Settings panel โ customize world name, map image & dimensions, favicon, social sharing (og:title, og:description, og:image), colors with live preview
- Dynamic OG tags โ each wiki page gets custom open-graph metadata for rich link previews
- Translation system โ all UI strings in JSON files; add a new language by creating a single
lang/xx.jsonfile
Documentation
Full guide on translating the UI, customizing the theme, adding markers, creating wiki pages, and more: `DOCS.md`
Getting Started
docker compose up -dOpen in your browser:
Development without Docker
npm install
node server.jsConfiguration
Create a .env file (or copy from .env.example):
ADMIN_USER=admin
ADMIN_PASS=your_password
SESSION_SECRET=some_random_string
APP_LANG=engThen rebuild: docker compose up -d --build
Language
The UI supports English and Italian via APP_LANG. Set it in docker-compose.yml:
environment:
- APP_LANG=eng # English
- APP_LANG=it # ItalianThen docker compose up -d --build.
All user-facing strings (navigation, buttons, placeholders, dates, alerts, map UI, editor UI, settings) switch language automatically. The wiki content (markdown files) is not affected.
Adding a new language
- Copy
lang/eng.jsontolang/fr.json(or any language code) - Translate all values in the new file
- Set
APP_LANG=frindocker-compose.yml - Rebuild:
docker compose up -d --build
That's it โ no code changes needed.
Settings
Access /settings (admin login required) to customize:
Project Structure
.
โโโ map/ # Map files (viewer, editor, SVG, markers JSON)
โ โโโ index.html # Public map viewer
โ โโโ editor.html # Marker editor (admin)
โ โโโ settings.html # Branding & settings panel (admin)
โ โโโ markers.json # Marker data
โ โโโ mappa.svg # Base map image
โโโ wiki/ # Wiki pages in Markdown
โ โโโ images/ # Uploaded images
โ โโโ versions/ # Version backups
โโโ lang/ # Translation files
โ โโโ eng.json # English translations (all UI strings)
โ โโโ it.json # Italian translations
โ โโโ loader.js # Translation loader
โ โโโ maps.js # HTML template renderer
โโโ server.js # Express server
โโโ branding.json # Customizable site branding
โโโ Dockerfile # Node 20 Alpine build
โโโ docker-compose.yml # Container orchestration
โโโ .env.example # Configuration template
โโโ package.jsonLicense
MIT ยฉ 2026
This software is provided "as is", without warranty of any kind.
