A simple, Git-powered wiki with a local frontend and support for many kinds of markup and content.
A simple, Git-powered wiki with a local frontend and support for many kinds of markup and content.
Gollum is a simple wiki system built on top of Git. A Gollum Wiki is simply a git repository of a specific nature:
See the wiki for extensive documentation, along with screenshots of Gollum's features.
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.
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.
See here for instructions on how to run Gollum via Docker.
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.
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):
gem install asciidoctorgem install creolegem install wikiclothgem install org-rubyperl command must be available on your command line)Pod::Simple from CPAN.docutils for pythongem install RedClothBy 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.
gollum /path/to/wiki where /path/to/wiki is an initialized Git repository.http://localhost:4567 in your browser.git clone https://github.com/gollum/gollumcd gollumbundle install (may require sudo depending on your Ruby setup)bundle exec bin/gollumhttp://localhost:4567 in your browser.Gollum can also be run with any rack-compatible web server. More on that over here.
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.
Gollum can also be run as a service. More on that over here.
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 onceGollum 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.
--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.
--ref
[REF]
Specify the git branch to serve. Default: main (or master if main is not found).
--bare
Tell Gollum that the git repository should be treated as bare.
--adapter
[ADAPTER]
Launch Gollum using a specific git adapter. Default: rugged. (See Git Adapters for more info.)
--base-path
[PATH]
Specify the leading portion of all Gollum URLs (path info). Setting this to /wiki will make the wiki accessible under http://localhost:4567/wiki/. Default: /.
--page-file-dir
[PATH]
Specify the subdirectory for all pages. If set, Gollum will only serve pages from this directory and its subdirectories. Default: repository root.
--static, --no-static
Use static assets. Defaults to false in development/test, true in production/staging.
--assets
[PATH]
Set the path to look for static assets.
--css
Tell Gollum to inject custom CSS into each page. Uses custom.css from wiki root (must be committed).
--js
Tell Gollum to inject custom JS into each page. Uses custom.js from wiki root (must be committed).
--no-edit
Disable the feature of editing pages.
--allow-uploads
[MODE]
Enable file uploads. If set to dir, Gollum will store all uploads in the /uploads/ directory in repository root. If set to page, Gollum will store each upload at the currently edited page. (Files can be uploaded by dragging and dropping onto the editor's text area.)
--math
[RENDERER]
Enable rendering of mathematical equations. Valid renderers: mathjax, katex. Default: katex. Add custom configuration for the renderer to math.config.js and commit it to the repo.
--critic-markup
Enable support for annotations using [CriticMarku