Ask HN: Self-hosted lightweight wiki engine suggestions? (MoinMoin alternative)

5 points by ciprian_craciun ↗ HN
I have quite a dilemma: since 2008 I've been running a personal MoinMoin wiki instance, which I've used (up until 2015-2018) for everything from notes, bookmarks, knowledgebase, publishing, presentations, projects, basically almost everything involving transcribing thoughts into words and research; however since 2015-2018 I've transitioned away from it to a custom Bash script that just ties together `dmenu` / `rofi` with `howl` / `sublime` and streamlined my workflow further (although dropping any wiki syntax and web integration); unfortunately by switching to a "local" workflow, none of my snippets and other useful links were "shareable", thus I thought to revisit the wiki engine landscape of 2020 and see what options are out there.

And unfortunately I can't quite find a suitable MoinMoin replacement, so I thought I'll ask the HN community for advice. [See my comment bellow for what I'm searching for.]

As a sidenote, I was quite disappointed, as it seems that wikis have (except for a few notable cases like GitHub or Wikipedia) have been largely replaced by Wordpress clones...

Thanks for all the feedback!

13 comments

[ 3.0 ms ] story [ 37.1 ms ] thread
[OP: Bellow I'm describing what I'm searching for in a lightweight wiki engine, suitable for replacing MoinMoin.]

Now I know that there are many wiki engines, from dokuwiki and MediaWiki up to Bookstack and Wiki.js, however none of them fulfill the following requirements:

* first and foremost it has to use the file system to store the page content; one file per page (or per page history if it supports revisions); this excludes databases, including embedded ones like SQLite or the like; (basically I want to be able to cobbler together `find`, `grep` and `sed` to extract what I'm searching for if I want;)

* secondly it has to be lightweight enough so I can run it on my laptop; thus fiddling with NGinx and Apache is sub-optimal, as is having another 20-worker-process behemoth (I have enough Electron-ware already)... (for context, in my previous MoinMoin setup, I actually had two instances running, one on a public server and one on my laptop, and I've synchronized the files between them;)

* if possible it should come in a single binary (e.g. Go, Rust or C/C++), or at least be self contained (e.g. virtual environment); also NodeJS is out of the question just because I don't believe I'll be able to deploy it 5 years from now when the project is dead... (and no, I don't want to run a cluster of containers or even a single VM for my wiki... it's a wiki after all, not a web-scale search-engine with NLP built into it...)

* the UI shouldn't be more complex than it needs, thus a large text area for editing the page (without an WYSIWYG editor), lacking syntax highlighting, and not integrating with Jupyter Notebook are actually a plus; :)

* support for ACL's (for keeping sensitive pages private) would be a plus; (MoinMoin had the best ACL solution from all the wiki's I've seen so far;)

* (obviously, it must be open-source;)

So in the end why not just go with MoinMoin? Because I have the feeling the project is dead, and the stable version (1.9) seems to support only Python 2.7, which has just been EOL-ed and I believe it will slowly start to phase out from distributions repositories... Thus I wanted to see if there are alternatives...

I can't offer an alternative, but given that you used MoinMoin for years, you could also look into porting MoinMoin to python 3? Most likely you will learn enough about its codebase to add the features you wanted in 2018.

If the upstream project is dying, you might not only do yourself but others a favor by reviving its codebase.

Porting MoinMoin 1.x to Python 3.x would be a major hurdle especially since MoinMoin is very complex and has lots of advanced features (from supporting multiple syntaxes to API and even master-master replication). (On the bright side, by default it doesn't seem to have many dependencies, thus at least in that regard it would be easier.)

Therefore if I were to invest development time into a wiki engine, I would definitively go with a simpler Rust / Go based implementation from scratch.

In fact this is another reason why I'm looking for alternatives, namely I want a "simpler" wiki.

If this is for personal use only, you could also just install PHP from your distro (cli only, not mod_php) and run DokuWiki using the builtin PHP devel server. Low hassle and only running a process when you need it.
[OP here] I would also like to point out that by "self-hosted" I actually lean towards a HTTP-server-based solution as opposed to a desktop-application one.
I'm using Atom (http://atom.io) with MaPerWiki extention for this with private personal github repo for storage.
That's an interesting direction. For example for VIM users there is https://github.com/vimwiki/vimwiki

However this direction has a few important drawbacks:

* lock-in into a specific IDE / editor and syntax; (even if all claim to use "Markdown", in fact they add "extensions" that prevent migration from one wiki to another;)

* its not exportable / editable from a browser;

And the last one is what I miss from my current setup: the ability to export (parts of) my notes on the web, and the ability to edit them when I'm on the go and don't have my laptop.

Zim Wiki[1] is amazing as a personal self-hosted wiki. Loads of good official plugins and unofficial. Everything stored as text and organised in folders I think similar to MoinMoin. Supports code highlighting, pasting images, tasks, journal, links (internal and external), back links, version control, etc. Just an all round brilliant piece of software.

1: https://zim-wiki.org/

I've just given Zim Wiki a try, and indeed it seems to be closer to MoinMoin than other alternatives (also in terms of syntax, not only file storage).

However there are a couple of rough edges like for example:

* the builtin editor doesn't seem to have an option to edit the "raw" markup; it's always in WYSIWYG mode;

* according to the documentation [https://zim-wiki.org/manual/Help/Wiki_Syntax.html] the wiki syntax is quite trivial (nothing bad in that), however it seems to be a strange combination between Markdown and a few other wiki syntaxes; thus migrating to and from Zim would be an issue; (I see that there is an Markdown export option, however just like in case of JPEG this is a lossy conversion, and after a few "rounds" the markup could degrade;)

* the builtin web server seems to be quite rudimentary; (perhaps there are plugins out there that solve this;)

I just use the text editor I've set to open with the Edit Source menu item to edit the raw markup. When I moved over to Zim I just used pandoc to convert my notes, it worked very well with only minor issues, I don't know if pandoc supports moinmoin. I can't comment on the web server. I don't use it sorry.
I'm running DokuWiki now, although as a PHP application it is somewhat irritating to integrate with the rest of my server setup, especially with the nice URLs mode requiring a bunch of rewrite rules. It is backed by plaintext files, has a decent permissions system, is decently lightweight, and has a fairly simple UI.