Gitlab is a git front end with repository management, graphs, links, goodies, commands to run, and review capabilities similar in feel to a self-hosted ?GitHub.
A new feature release of gitlab flows in the following direction: devel -> staging -> experimental -> unstable -> fasttrack-staging -> fasttrack (experimental and unstable may be skipped during freeze and transitions).
See /omnibus if you are looking for instructions to install upstream provided packages.
New upstream releases (including security updates) are announced at https://about.gitlab.com/releases/categories/releases/ and available as RSS feed https://about.gitlab.com/security-releases.xml.
Note 1: For a smooth upgrade experience, always stay on the latest major version of gitlab. For example, if latest version of gitlab is 12.0.0 and you are currently on 11.3.6, then update to 12.0.0 as soon as possible, certainly before the debian package is updated to 13.x. Ideally, you should update as soon as a new version with security updates is available.
Note 2: It is recommended to subscribe to changes in this wiki page or frequently check this page for updates. Alternatively, you can subscribe to https://tracker.debian.org/pkg/gitlab to get notified when new versions are uploaded.
Make sure contrib section is enabled for official repos.
Story of Gitlab packaging project/FAQ about Gitlab packaging
Gitlab Inc is sponsoring the packaging effort for a long time.
Though the dependencies are so many, the work benefits Debian immensely by maintaining many important build tools like webpack, rollup, babel, npm, yarn... And frameworks like ruby on rails.
Out of 1600+ node modules gitlab needs, we have 1200+ modules already packaged. It is not impossible to have it in main (it was in main earlier before the nodejs modules exploded exponentially and if some more people join the team, currently it is mostly a single person work and at times some new people helping out with a handful of dependencies. I don't think it is much harder if you take whole gnome or KDE as comparison. We are able to pull it off because of team work. This project have also brought many new contributors to Debian.
While we might love long term supported releases, calling anything moving fast as insane and not able to adapt to change is a recipe for Debian becoming irrelevant over time. Many just want distros to be only a base os for shipping containers but that is not necessarily a good thing for users to have dependency on a single project for updates and lose choice and flexibility.
We created https://fasttrack.debian.net to serve gitlab as it did not fit into a debian stable release cycle and currently not just gitlab, but matrix synapse and virtual box is also shipped via FastTrack.
From gitlab 14.2.6: postgresql database should be updated to 13 before installing gitlab 14.2. See gitlab/postgresql-update for steps to upgrading postgresql to 13.
- From gitlab 14.0.10: We no longer require a work around to install grpc and google-protobuf gems from rubygems.org, packaged versions now work.
From 2021 July 23: We no longer require the personal repo of gitlab maintainer to install gitlab, all golang packages can now be added to fasttrack.debian.net directly. Thanks to Akshay S Dinesh for fixing this long pending bug (See https://salsa.debian.org/fasttrack-team/support/-/issues/8 for details).
New workaround from gitlab 13.12.3: You need to use google-protobuf from rubygems.org (see below for details).
- New from gitlab 13.10.4: Since this version includes gitlab-workhorse golang binary, it was moved to people.debian.org/~praveen/gitaly and should now include contrib section.
New in gitlab 13.6.7-1: New user created after a fresh installation should be approved using gitlab-rails-console. See gitlab#your_account_is_awaiting_approval_from_your_GitLab_administrator for steps to approving users and creating a user with Administrative privileges.
New in gitlab 13.3.8-1: You will need to install grpc gem from rubygems.org gem install -v 1.30.2 grpc (more details below). If you run gitaly on a different machine, you will need to do this on that machine as well.
New in gitlab 13.2.6-3: We have switched to puma as application server replacing unicorn. Upstream already made the switch from 12.9 and unicorn support will be dropped in gitlab 14.0. They saw a memory reduction of 37% in gitlab.com after the switch. See more details about this switch at this upstream blog post https://about.gitlab.com/blog/2020/07/08/migrating-to-puma-on-gitlab/. puma defaults to listening only on unix sockets and if you are running gitaly on a different machine, then you will have to edit /etc/gitlab/puma.rb to bind to tcp:// url as well.
Bullseye FastTrack (Recommended)
gitlab 14.2.6 is available in Bullseye FastTrack (no open security issues). Note: this upgrade seems to create problems during upgrade in some of the tests, so it is recommended to take backup of the database before you upgrade.
Add fasttrack.debian.net as a trusted repo for apt,
# apt install fasttrack-archive-keyring ca-certificates
And add the following lines for fasttrack repo:
deb https://fasttrack.debian.net/debian/ bullseye-fasttrack main contrib # For dependency packages not in testing only temporarily due to freeze, transitions or delayed by backports-new or NEW. deb https://fasttrack.debian.net/debian/ bullseye-backports-staging main contrib
You will also need official bullseye-backports repo:
deb http://deb.debian.org/debian bullseye-backports main contrib
Note: You may also use a mirror of fasttrack repo like http://mirror.linux.pizza/debian-fasttrack/
and install gitlab
# apt update # apt install gitlab-apt-pin-preferences # apt install gitlab
Unstable (be careful when updating packages)
Gitlab 13.4.7 is available in unstable (many security release behind, see experimental for latest security updates).
We try to keep the version in unstable in a good shape with the latest security updates, but some times dependency updates break gitlab.
Now install gitlab
# apt install gitlab
Currently gitlab installation is broken due to a change in libsass. See 953415 for more details.
A work around is to downgrade libsass and libsass-dev to 3.6.1. Use http://snapshot.debian.org/package/libsass/3.6.1-1/ and hold it at the older version.
# dpkg -i libsass1_3.6.1-1_amd64.deb libsass-dev_3.6.1-1_amd64.deb
# apt-mark hold libsass1 libsass-dev
See gitlab#gitlab_crash_work_around_.28install_grpc_from_rubygems.org.29 for installing grpc gem from rubygems.org (just use apt install ruby2.7 for installing ruby)
Experimental - During freeze and transitions
gitlab 13.7.8 is available in experimental (many security release behind, see gitlab/staging for latest security updates).
If you are using experimental for the first time, check DebianExperimental.
You will have to follow the notes mentioned in unstable section above.
gitlab 14.1.7 is available in staging/experimental.
When gitlab is not ready for official experimental/unstable (for example some dependencies need to clear NEW queue), it will be available from this repo.
You will have to follow the notes mentioned in unstable section above.
This section moved to gitlab/staging.
Gitlab on older releases
These versions no longer receive any secuity updates and it is recommended to upgrade to Debian 11 Bullseye to continue recieving security updates.
Gitlab with apache2
Gitlab can use apache instead of nginx. To get a working configuration for your version the best thing to do is to follow the (gitlab-recipes repository) instructions.
Basically you will have to:
- disable nginx
- set www-data as web server user
- allow Modules dependencies:
a2enmod rewrite proxy_http headers
and as says in recipe
Allow gitlab-workhorse to listen on port 8181, edit or create /etc/default/gitlab and change or add the following:
gitlab_workhorse_options="-listenUmask 0 -listenNetwork tcp -listenAddr 127.0.0.1:8181 -authBackend http://127.0.0.1:8080"
Troubleshooting common issues
You can reach the maintainers of the gitlab package via
Matrix at #debian-gitlab:poddery.com (join via browser)
IRC #debian-gitlab on OFTC network (join via browser)
Via XMPP at #firstname.lastname@example.org
Documentation for gitlab maintainers