MDWebServer

Een lichte, snelle webserver die Markdown-bestanden rechtstreeks als website host, zonder database, zonder CMS.

Open een .md-bestand in je favoriete editor, sla op, en ververs de browser. Dat is alles. De server leest het bestand bij elk verzoek opnieuw van schijf, zodat wijzigingen direct zichtbaar zijn.

Beschikbaar op gitlab

kijk op https://gitlab.com/dexter1-dev/mdwebserver

Hoe het werkt

MDWebServer (mdws) serveert een map met Markdown-bestanden. De mapstructuur wordt de sitestructuur:

demo/
├── index.md             → /
├── _nav.md              → navigatiebalk
├── _footer.md           → voettekst
├── blog/
│   └── 2026/06/04/
│       └── artikel.md   → /blog/2026/06/04/artikel
├── howto/
│   └── ssh-sleutels.md  → /howto/ssh-sleutels
└── projecten/
    └── fmon/
        └── index.md     → /projecten/fmon/

Geen configuratie nodig. Nieuwe map aanmaken = nieuwe sectie. Bestand verwijderen = pagina weg.

Lokaal bewerken

Dit is de kern van mdws: de bestanden zijn gewoon bestanden. Je bewerkt ze met elke editor die je al gebruikt, Kate, Vim, VS Code, nano, het maakt niet uit.

# Bewerk een bestaand artikel
kate /pods/mdserver/demo/howto/ssh-sleutels.md

# Maak een nieuw artikel aan
kate /pods/mdserver/demo/blog/2026/06/04/nieuw-artikel.md

Sla op → ververs de browser → klaar. Geen buildcommando, geen uploadstap, geen CMS-interface nodig. Omdat de server bij elk verzoek de bestanden opnieuw leest, is er ook geen herstart nodig.

Wat mdws biedt

  • Volledige Markdown — tabellen, codeblokken met syntaxkleuring, takenlijsten, doorgestreepte tekst
  • Zoeken — doorzoekt alle .md-bestanden, inclusief tagfiltering met #tag
  • Blog — automatisch archief op jaar/maand/dag via de mapstructuur
  • Tags — frontmatter met tags: rust, linux en een automatische tagpagina
  • Inhoudsopgave — automatisch gegenereerd op basis van de koppen in een artikel
  • Donkere modus — op basis van systeemvoorkeur, handmatig te wisselen
  • Analytics — bezoekerslog in Apache Combined Log Format, analyseerbaar met GoAccess
  • Enkele binary — één Rust-binary, geen runtime, geen losse dependencies

Starten

cargo build --release
./target/release/mdws --dir ./demo --port 3000

Of via het meegeleverde script:

./restart.sh

De server is bereikbaar op http://localhost:3000.

Frontmatter

Optionele metadata bovenaan een .md-bestand:

---
date: 2026-06-04
tags: linux, rust, tools
---

# Titel van het artikel

date wordt getoond bij blogteksten en gebruikt voor sortering. tags verschijnen als klikbare labels en zijn doorzoekbaar.

Analytics

Elk verzoek wordt gelogd naar access.log in Apache Combined Log Format, buiten de serveer-map — niet bereikbaar via een URL.

./analyse.sh          # HTML-rapport → report.html
./analyse.sh --live   # Live terminal-dashboard (vereist GoAccess)

Nice to have

  • functie om een lijst van bestanden te genereren in een index.md file