No description
- Go 71.3%
- HTML 28.7%
| static/fonts | ||
| templates | ||
| .gitignore | ||
| go.mod | ||
| go.sum | ||
| main.go | ||
| README.md | ||
| SPEC.md | ||
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
.mdfiles 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.mdin a folder serves as that folder's index. If absent, a file listing is shown.README.mdin the root serves as the index at/if noindex.mdexists.
Wikilinks
[[page]]— links topagerelative 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