Differences between revisions 1 and 347 (spanning 346 versions)
Revision 1 as of 2014-06-05 21:24:39
Size: 207
Comment: explanation of gitlab initial commit, much much much more to come
Revision 347 as of 2021-06-24 07:42:17
Size: 8331
Editor: Praveen A
Comment: add note about needing contrib
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
warning!!! under construction ||<tablestyle="float:right; margin: 0px;" style="padding:0.5em; border: 0px;font-size: 80%;"><<TableOfContents>>||
Line 3: Line 3:
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. 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.
Line 5: Line 5:
== Install == A new feature release of gitlab flows in the following direction: [[/devel|devel]] -> [[/staging|staging]] -> experimental -> unstable -> [[/fasttrack-staging|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.

{{{#!wiki important
New upstream releases (including security updates) are announced at https://about.gitlab.com/releases/categories/releases/.
}}}

Debian is running its own Instance of GitLab under [[https://salsa.debian.org]], which is not based on the packaged version.

{{{#!wiki important
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.
}}}

{{{#!wiki important
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.
}}}

{{{#!wiki important
Make sure `contrib` section is enabled for official repos.
}}}

== New changes ==
 1. New workaround from gitlab 13.12.3: You need to use google-protobuf from rubygems.org ([[gitlab#gitlab-sidekiq_service_failure_work_around_.28install_google-protobuf_from_rubygems.org.29|see below for details]]).
 1. 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.
 1. 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.
 1. 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.
 1. 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.

== Setup people.debian.org/~praveen as trusted repository ==

You may encounter the following error message when adding people.debian.org/~praveen as apt repository in `/etc/apt/sources.list`:
{{{
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 0B76920762A6B785
}}}

If so, these commands can help (trust these repositories):
{{{
# wget https://people.debian.org/~praveen/gitaly/praveen.key.new.asc
# apt-key add praveen.key.new.asc
}}}

If apt-key does not work, then:
{{{
# wget https://people.debian.org/~praveen/fasttrack-staging/praveen.key.new.gpg
# cp praveen.key.new.gpg /etc/apt/trusted.gpg.d/
}}}

Note: From apt version 2.1.8, apt-key is deprecated

== Bullseye FastTrack (Recommended) ==

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
}}}

Eventually the packages in this repo will be moved to fasttrack or official backports after fixing https://salsa.debian.org/fasttrack-team/support/-/issues/8 (Need help)
{{{
deb https://people.debian.org/~praveen/gitaly bullseye-backports-staging main contrib
deb https://people.debian.org/~praveen/gitaly bullseye-fasttrack main contrib
}}}

and install gitlab

{{{
# apt update
# apt install gitlab-apt-pin-preferences
# apt install gitlab
}}}

Check [[gitlab/buster]] for notes about upgrading from buster.

== 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
}}}

=== Known Issues ===
{{{#!wiki important
Currently gitlab installation is broken due to a change in libsass. See [[DebianBug: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.

# wget http://snapshot.debian.org/archive/debian/20190705T210019Z/pool/main/libs/libsass/libsass-dev_3.6.1-1_amd64.deb

# wget http://snapshot.debian.org/archive/debian/20190705T210019Z/pool/main/libs/libsass/libsass1_3.6.1-1_amd64.deb

# dpkg -i libsass1_3.6.1-1_amd64.deb libsass-dev_3.6.1-1_amd64.deb

# apt-mark hold libsass1 libsass-dev
}}}

{{{#!wiki important
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]].

{{{#!wiki important
You will have to follow the notes mentioned in unstable section above.
}}}

== Experimental/unstable Staging ==

gitlab 13.12.3 is available in staging/experimental.

When gitlab is not ready for experimental/unstable (for example some dependencies need to clear NEW queue), it will be available from this repo.

{{{#!wiki important
You will have to follow the notes mentioned in unstable section above.
}}}

This section moved to [[gitlab/staging]].

== Gitlab on Stretch ==

This section moved to [[gitlab/stretch]].

== 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 ([[https://gitlab.com/gitlab-org/gitlab-recipes/-/tree/master/web-server/apache|gitlab-recipes repository]]) instructions.

Basically you will have to :
Disable nginx
Set www-data as web server user.
Allow Modules dependencies
# mod_rewrite
# mod_ssl
# mod_proxy
# mod_proxy_http
# mod_headers

{{{
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 ==

See [[gitlab/troubleshooting]]

== Contact maintainers ==
You can reach the maintainers of the gitlab package via

 1. Matrix at #debian-gitlab:poddery.com ([[https://chat.poddery.com/#/room/#debian-gitlab:poddery.com|join via browser]])
 1. IRC #debian-gitlab on OFTC network ([[https://webchat.oftc.net/?channels=debian-gitlab&uio=MT11bmRlZmluZWQb1|join via browser]])
 1. Via XMPP at `#debian-gitlab#poddery.com@matrix.org`

Documentation for [[gitlab/maintainers_corner|gitlab maintainers]]

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/.

Debian is running its own Instance of GitLab under https://salsa.debian.org, which is not based on the packaged version.

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.

New changes

  1. New workaround from gitlab 13.12.3: You need to use google-protobuf from rubygems.org (see below for details).

  2. 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.
  3. 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.

  4. 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.

  5. 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.

Setup people.debian.org/~praveen as trusted repository

You may encounter the following error message when adding people.debian.org/~praveen as apt repository in /etc/apt/sources.list:

The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 0B76920762A6B785

If so, these commands can help (trust these repositories):

# wget https://people.debian.org/~praveen/gitaly/praveen.key.new.asc
# apt-key add praveen.key.new.asc

If apt-key does not work, then:

# wget https://people.debian.org/~praveen/fasttrack-staging/praveen.key.new.gpg
# cp praveen.key.new.gpg /etc/apt/trusted.gpg.d/

Note: From apt version 2.1.8, apt-key is deprecated

Bullseye FastTrack (Recommended)

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

Eventually the packages in this repo will be moved to fasttrack or official backports after fixing https://salsa.debian.org/fasttrack-team/support/-/issues/8 (Need help)

deb https://people.debian.org/~praveen/gitaly bullseye-backports-staging main contrib
deb https://people.debian.org/~praveen/gitaly bullseye-fasttrack main contrib

and install gitlab

# apt update
# apt install gitlab-apt-pin-preferences
# apt install gitlab

Check gitlab/buster for notes about upgrading from buster.

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

Known Issues

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.

# wget http://snapshot.debian.org/archive/debian/20190705T210019Z/pool/main/libs/libsass/libsass-dev_3.6.1-1_amd64.deb

# wget http://snapshot.debian.org/archive/debian/20190705T210019Z/pool/main/libs/libsass/libsass1_3.6.1-1_amd64.deb

# 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.

Experimental/unstable Staging

gitlab 13.12.3 is available in staging/experimental.

When gitlab is not ready for 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 Stretch

This section moved to gitlab/stretch.

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 # mod_rewrite # mod_ssl # mod_proxy # mod_proxy_http # mod_headers

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

See gitlab/troubleshooting

Contact maintainers

You can reach the maintainers of the gitlab package via

  1. Matrix at #debian-gitlab:poddery.com (join via browser)

  2. IRC #debian-gitlab on OFTC network (join via browser)

  3. Via XMPP at #debian-gitlab#poddery.com@matrix.org

Documentation for gitlab maintainers