Customizing the gitlab home page

The customization of the Gitlab home page is a proprietary extension that is not available in the Free Software version. When running Gitlab from docker containers, the home page template needs to be moved to a file that won’t go away with the container:

$ layouts=/home/git/gitlab/app/views/layouts/
$ docker exec gitlab mkdir -p /home/git/data/$layouts
$ docker exec gitlab mv $layouts/devise.html.haml /home/git/data/$layouts
$ docker exec gitlab ln -s /home/git/data/$layouts/devise.html.haml \
   $layouts/devise.html.haml

The template can now be modifed in /opt/gitlab/data/home/git/gitlab/app/views/layouts/ from the host running the container. It is a HAML template which can have raw HTML as long as proper indentation is respected.


If the template contains a bug, the error message can be displayed with

$ docker exec gitlab tail -f /home/git/gitlab/log/production.log
...
Started GET "/users/sign_in" for 82.235.173.177 at 2014-12-24 11:52:41 +0000
Processing by SessionsController#new as HTML
Completed 500 Internal Server Error in 12ms
ActionView::Template::Error (Inconsistent indentation:
  15 spaces used for indentation,
  but the rest of the document was indented using 2 spaces.):
    13:         .row
    14:           .col-md-7.brand-holder
    15:             %p.lead
    16:                working on Ceph
    17:           .col-md-5
    18:             = yield
    19:     %hr
  app/views/layouts/devise.html.haml:16
  app/controllers/sessions_controller.rb:25:in `new'

The gitlab process must be restarted to ensure the template result is not cached:

$ docker exec gitlab /etc/init.d/gitlab restart
Shutting down both Unicorn and Sidekiq^C
Session terminated, terminating shell... ...terminated.

Although the above never completes, the process is indeed restarted and it can be terminated with Control-C after a few seconds.
The symbolic link needs to be restored each time the container is run with

$ layouts=/home/git/gitlab/app/views/layouts/
$ docker exec gitlab ln -sf /home/git/data/$layouts/devise.html.haml $layouts/devise.html.haml
This entry was posted in gitlab. Bookmark the permalink.

One Response to Customizing the gitlab home page

  1. GitLab B.V. CEO here, thanks for sharing this with the community Loïc!

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>