gitlab #4

Supports: bionic
Add to new model


GitLab is a single application for the entire DevOps lifecycle. This makes GitLab unique and makes Concurrent DevOps possible, unlocking your organization from the constraints of a pieced together toolchain. Join us for a live Q&A to learn how GitLab can give you unmatched visibility and higher levels of efficiency in a single application across the DevOps lifecycle.


This charm provides the GitLab code hosting and CI/CD platform, for use with MySQL as a backend database.

Optionally, a reverse proxy can be placed in front of GitLab by relating this charm to a charm implementing the reverseproxy interface.


Running the following step will install the GitLab Omnibus package,
with default configuration.
juju deploy gitlab

Before GitLab can be used, you will need to relate it to a MySQL
database relation, such as those provided by the MySQL charm, or
the Percona charms.
juju add-relation gitlab:db mysql

Usage via HTTPS can be achieved by running GitLab behind a reverse
proxy that has been properly configured for the desired external
domain name. A good default reverse proxy is provided by the
haproxy charm.
juju add-relation gitlab:reverseproxy haproxy

Contact Information

This charm is written by James Hebden of the Pirate Charmers group.

Planned features

  • configuration of SMTP settings
  • postgresql support (currenly MySQL only)
  • administrative password management via juju config
  • specify option to pass hostname over reverseproxy relation
  • specify option to override address used for reverseproxy


(string) The APT signing key used for the repository specified by apt_repo
(string) The APT source repository to configure before installing GitLab. The Ubuntu distribution (i.e. 'bionic' and the compoent 'main') will be automatically appended to the provided URI
(string) The external URI of this GitLab install. This will be used to configure GitLab, and any reverse proxy configured via the reverseproxy relation. Defaults to the fqdn of the unit.
(int) The HTTP port the GitLab backend will listen for connections on. It is recommended to relate this charm to a reverse proxy, rather than customising this value
(int) The external TCP port over which SSH-based git clone operations will be available, when GitLab is related to an external load balancer via the reverseproxy relation. Without a reverseproxy relation, the system sshd is used on port 22.
(string) The version of GitLab to install. Defaults (when this setting is empty) to latest.