rxviki
rxviki is a small wiki in C. It is a single FastCGI program. This site uses it.
I wrote the original code by hand. Since then, AI rewrote it many times, mostly Claude (Anthropic).
Pages are Markdown files in a git working tree. rxviki converts them to static HTML with md4c. Apache serves the HTML directly. The program runs only when you change something.
Features:
- Markdown with GitHub-style tables, task lists, strikethrough and automatic links
- a menu and breadcrumbs that follow the directory tree
- editing in the browser, with a small toolbar on each page
- a preview of each change before you publish it
- Publish commits the changes and pushes them to a git remote, Cancel removes the changes that are not published and Undo removes the last publish
- PNG and JPEG uploads, up to 50 MB each
- a publish hook can remove the toolbar from a public copy of the site
Security:
- rxviki does not authenticate users. The web server must do this. I tested it with mod_auth_form and encrypted sessions.
- Each change must have a valid CSRF token.
- Raw HTML in pages is not permitted.
- rxviki cannot open files outside the document root.
rxviki needs libfcgi, md4c, OpenSSL 3.0 or later and git. The licence is the Unlicense (public domain). The tarball contains an RPM spec file and a README. The README tells you how to configure the web server.
My GPG key to verify the above signature:
Key fingerprint: FD37 F510 6A96 7524 0EE2 0D5A AAF2 9D65 B1B3 2FB3