rainerkeller.de

Simple Personal Wiki

2017-10-27

Wikis are useful for noting personal knowledge. Unfortunately most of the wikis are designed for a community of people and way too much overhead to setup and run just for personal use. PyGitWiki was created specifically for this case: a wiki just for personal use which is easy to setup and run.

It uses Python for the web server part and Git as storage backend. All content is stored in a regular Git repository which provides the full power of the Git tools for complex tasks as well as easy viewing and editing via webbrowser. The markup is written in Markdown which is also easy to read in the plain files.

Every wiki change results in a Git commit on the repository which allows you to track changes later on. The wiki has a search function which operates on Git as well. By using the Git tools it is easily possible to reliably synchronize the wiki content to different computers at work or at home.

Setup

Only 5 simple steps are needed for setting up the wiki:

  1. Clone the repository
    git clone https://github.com/Rainer-Keller/PyGitWiki.git
    
  2. Install the Python packages
    The wiki uses the Python packages Markdown and GitPython which need to be installed.
  3. Run the Wiki
    Start the Python script in the local working directory.
    ./wiki.py
    
    This will create a configuration file and Git repository in ~/.pygitwigi. The wiki is now ready for use using the URL http://localhost:8080.
    For customisation check the configuration file ~/.pygitwigi/wiki.conf

Setup as Service

Usually the wiki needs to be started automatically. Systemd provides user services which are started when a user logs in. By copying the file misc/pygitwiki.service to ~/.config/systemd/user/ and modifying it to match your setup you can start and/or enable the wiki via systemd commands:

systemctl --user enable pygitwiki
systemctl --user start pygitwiki

Anbieterkennzeichnung
Datenschutzhinweis

This work is licensed under a
Creative Commons Attribution-ShareAlike 4.0 International License.