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.
kijk op https://gitlab.com/dexter1-dev/mdwebserver
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.
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.
.md-bestanden, inclusief tagfiltering met #tagtags: rust, linux en een automatische tagpaginacargo build --release
./target/release/mdws --dir ./demo --port 3000
Of via het meegeleverde script:
./restart.sh
De server is bereikbaar op http://localhost:3000.
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.
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)