Gollum
A simple, Git-powered wiki with a local frontend and support for many kinds of markup and content.
Install / Use
/learn @gollum/GollumREADME
gollum - A git-based Wiki
Gollum is a simple wiki system built on top of Git. A Gollum Wiki is simply a git repository of a specific nature:
- A Gollum repository's contents are human-editable text or markup files.
- Pages may be organized into directories any way you choose.
- Other content can also be included, for example images, PDFs and headers/footers for your pages.
- Gollum pages:
- May be written in a variety of markups.
- Can be edited with your favourite editor (changes will be visible after committing) or with the built-in web interface.
- Can be displayed in all versions, reverted, etc.
- Gollum strives to be compatible with GitHub and GitLab wikis.
- Just clone your GitHub/GitLab wiki and view and edit it locally!
- Gollum supports advanced functionality like:
- Diagrams using Mermaid or PlantUML
- BibTeX and Citation support
- Annotations using CriticMarkup
- Mathematics via KaTeX or MathJax
- Macros
- Redirects
- RSS Feed of latest changes
- ...and more
See the wiki for extensive documentation, along with screenshots of Gollum's features.
Table of Contents
System Requirements
Gollum runs both on Unix-like systems and on Windows.
Gollum runs either using 'normal' Ruby (MRI) or JRuby (Ruby on the Java Virtual Machine). On Windows, Gollum runs only using JRuby (either from source, or prebuilt).
On MRI, Gollum uses the rugged git library, while on JRuby/Java it utilizes the rjgit and JGit libraries. See here for more info.
Installation
As a Ruby Gem
Ruby is best installed either via RVM or a package manager of choice. Then simply:
gem install gollum
Installation examples for individual systems can be seen here.
Via Docker
See here for instructions on how to run Gollum via Docker.
As a Web Application Resource (Java)
The latest Release of Gollum will always contain a downloadable gollum.war file that can be directly executed on any system with a working Java installation:
java -jar gollum.war -S gollum <your-gollum-arguments-here>
When using the .war, please be sure to pass absolute paths to your Gollum arguments.
Markups
Gollum allows using different markup languages on different wiki pages. It presently ships with support for the following markups:
You can easily activate support for other markups by installing additional renderers (any that are supported by github-markup):
- AsciiDoc --
gem install asciidoctor - Creole --
gem install creole - MediaWiki --
gem install wikicloth - Org --
gem install org-ruby - Pod -- requires Perl >= 5.10 (the
perlcommand must be available on your command line)- Lower versions should install
Pod::Simplefrom CPAN.
- Lower versions should install
- ReStructuredText -- requires python >= 3
- Note that Gollum will also need you to install
docutilsfor python
- Note that Gollum will also need you to install
- Textile --
gem install RedCloth
Markdown Flavors
By default, Gollum ships with the kramdown gem to render Markdown. However, you can use any Markdown renderer supported by github-markup. This includes CommonMark support via the commonmarker gem. The first installed renderer from the list will be used (e.g., redcarpet will NOT be used if github/markdown is installed). Just gem install the renderer of your choice.
See here for instructions on how to use custom rendering gems and set custom options.
Running Gollum
Quick Start from Command Line
- Run:
gollum /path/to/wikiwhere/path/to/wikiis an initialized Git repository. - Open
http://localhost:4567in your browser.
Running From Source
git clone https://github.com/gollum/gollumcd gollumbundle install(may requiresudodepending on your Ruby setup)bundle exec bin/gollum- Open
http://localhost:4567in your browser.
Running with Rack
Gollum can also be run with any rack-compatible web server. More on that over here.
Running with an Authentication Server
Gollum can also be run alongside a CAS (Central Authentication Service) SSO (single sign-on) server. With a bit of tweaking, this adds basic user-support to Gollum. To see an example and an explanation, navigate over here.
Running as a Service
Gollum can also be run as a service. More on that over here.
Environment
Gollum uses the environment variable APP_ENV primarily to control how the underlying Sinatra app behaves:
development– reload the app on every requestproduction– load the app only once
Configuration
Gollum comes with the command line options listed below. Note that there are some additional 'minor' options to tweak Gollum's behaviour that do not have commandline options, but can be configured in config.rb.
Command-Line Options
| Option | Arguments | Description |
| ----------------------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| --host | [HOST] | Specify the hostname or IP address to listen on. Default: '0.0.0.0'. (Note: 0.0.0.0 allows remote access. For a personal Wiki, use 127.0.0.1.) |
| --port | [PORT] | Specify the port to bind Gollum with. Default: 4567. |
| --config | [FILE] | Specify path to Gollum's configuration file.
