Example org-mode site using GitLab Pages:

Name Last Update
.gitignore Loading commit data...
.gitlab-ci.yml Loading commit data...
LICENSE Loading commit data... Loading commit data...
favicon.ico Loading commit data... Loading commit data... Loading commit data... Loading commit data... Loading commit data...
publish.el Loading commit data...

Publishing org-mode projects on Gitlab Pages

Example org-mode website using GitLab Pages.

Learn more about GitLab Pages at and the official documentation


Org-mode is Free Software and part of GNU Emacs. It’s a simple document format (“Org”) with a powerful and intuitive interface (org-mode) that can export and publish to html, LaTeX, ascii, odt amongst others, and evaluate source code.

The org-mode manual can be accessed here:

The main place for Org development is the mailing list, available on Gmane.

Gitlab CI

This project’s static Pages are built by GitLab CI, following the steps defined in .gitlab-ci.yml:

image: moul/emacs

  - emacs --batch --eval "(progn (package-initialize) (package-refresh-contents) (package-install 'org))"
  - emacs --batch --no-init-file --load publish.el --funcall org-publish-all
    - public
  - master

These build instructions are using a docker image, namely moul/emacs. It makes it possible to publish the project on a public runner on

You could probably get a better experience by using a local runner on a server you control. If so, you can drop the image keyword.

Building locally

Org-mode is part of GNU Emacs. See how to obtain GNU Emacs on your OS here:

To get the latest version of Org see

GitLab User or Group Pages

To use this project as your user/group website, you will need one additional step: just rename your project to, where namespace is your username or groupname. This can be done by navigating to your project’s Settings.

Read more about user/group Pages and project Pages.

Did you fork this project?

If you forked this project for your own use, please go to your project’s Settings and remove the forking relationship, which won’t be necessary unless you want to contribute back to the upstream project.

Forked from