No description
  • Go 71.3%
  • HTML 28.7%
Find a file
2026-03-13 21:57:58 +01:00
static/fonts first commit 2026-03-13 19:21:03 +01:00
templates improved page width 2026-03-13 21:57:58 +01:00
.gitignore small fixes 2026-03-13 20:44:09 +01:00
go.mod added templates and support easier building 2026-03-13 21:05:29 +01:00
go.sum first commit 2026-03-13 19:21:03 +01:00
main.go improved raw handling 2026-03-13 21:55:57 +01:00
README.md added /raw and improved readme 2026-03-13 21:46:06 +01:00
SPEC.md first commit 2026-03-13 19:21:03 +01:00

Marki

A minimal markdown wiki server. Drop a folder of .md files on a server, run the binary, get a clean readable wiki — no database, no build step, no editor.

Install

go install code.bas.es/arne/marki@latest

Usage

marki --docs /path/to/docs --port 3000
Flag Env var Default Description
--docs DOCS_DIR /srv/docs Root directory of markdown files
--port PORT 3000 Port to listen on
--host 0.0.0.0 Bind address

Docs folder conventions

All file and folder names must be lowercase. Uppercase names are ignored, with two exceptions: README.md at the root serves as the index page (fallback if no index.md exists), and files inside raw/ are served as-is.

Pages

  • .md files are served at their path without the extension: servers/fismen.no.md/servers/fismen.no
  • Spaces in filenames map to dashes in the URL: my page.md/my-page
  • index.md in a folder serves as that folder's index. If absent, a file listing is shown.
  • README.md in the root serves as the index at / if no index.md exists.

Wikilinks

  • [[page]] — links to page relative to the current folder, falling back to root if not found there
  • [[page|label]] — custom link text
  • [[/page]] — absolute link from root, bypassing folder resolution

Raw files

Files placed in a raw/ folder are served verbatim as text/plain:

docs/raw/authorized_keys  →  /raw/authorized_keys
docs/raw/id_rsa.pub       →  /raw/id_rsa.pub

Special pages

  • /lost — two sections: pages not reachable by following links from /, and broken wikilinks

Building from source

Requires Go 1.22+.

go build -o marki .

Stack

  • Go standard library for HTTP
  • goldmark for markdown rendering (GFM)
  • Libre Caslon Text and JetBrains Mono embedded in the binary — no external requests