Wiki Server

title: Wiki Server created: 2026-06-01 updated: 2026-06-01

title: Wiki Server created: 2026-06-01 updated: 2026-06-01 type: entity tags: [rust, web, backend] sources: []

Wiki Server

The plr-web crate serves the wiki knowledge base as a browsable web application.

Access

  • URL: http://localhost:3000 (local) or http://:3000 (LAN)
  • Bind: 0.0.0.0:3000 (accessible to any HermQube on the network)

API Endpoints

Path Description
/ Wiki index (renders index.md as HTML)
/health Health check JSON: {"ok": true, "service": "plr-wiki"}
/page/{*path} Renders any wiki markdown file as styled HTML
/raw/{*path} Serves raw markdown text (Content-Type: text/plain)
/dir/{*path} Directory listing with navigation

Wiki Path

Serves files from: /home/wiki/

Tech Stack

  • Framework: axum 0.8
  • Markdown rendering: pulldown-cmark 0.12
  • HTTP middleware: tower-http (CORS, tracing)
  • Runtime: tokio (multi-thread)
  • Styling: Dark theme (GitHub-dark-like color scheme), embedded CSS

Security

  • Path traversal prevention via canonicalize — all resolved paths must be within the wiki root
  • CORS open (any origin) since this is an internal LAN service
  • No authentication yet — TBD based on architecture packet

Service Management

Systemd user service: plr-wiki.service

systemctl --user status plr-wiki
systemctl --user restart plr-wiki
journalctl --user -u plr-wiki -f

Build

cd /home/user/plr
cargo build -p plr-web --release

Release binary at: /home/user/plr/target/release/plr-web

Notes

  • [[wikilinks]] render as plain text (not clickable yet) — future enhancement
  • YAML frontmatter is automatically stripped before rendering
  • The server is intentionally minimal: no database, no auth, no JS — just markdown → HTML

Write a comment
No comments yet.