debian-mirror-gitlab/debian
Praveen Arimbrathodiyil 8bbb8b17df relax grape entity
2016-03-16 20:16:18 +05:30
..
conf define nginx-user 2016-02-18 18:12:09 +05:30
missing-sources add non minified source for latinise.js 2016-01-20 00:11:53 +05:30
patches relax grape entity 2016-03-16 20:16:18 +05:30
po add POTFILES.in 2015-10-24 13:03:36 +05:30
source ignore missing templates.pot 2015-12-15 16:43:30 +05:30
tests Imported Debian patch 7.2.1-1 2014-09-02 14:37:08 +02:00
adduser.sh move gitlab user's home to /var/lib 2016-02-18 13:02:28 +05:30
changelog update README.Debian 2016-03-16 19:46:15 +05:30
compat bump compat to 9 2016-01-20 00:37:16 +05:30
config ask letsencrypt question 2016-02-06 00:13:36 +05:30
control fix ruby-pg version 2016-03-14 19:42:54 +05:30
copyright reverse wrap and sort 2016-03-13 11:51:59 +05:30
gbp.conf remove fuzzaldrin-plus.min.js 2016-01-19 16:03:52 +05:30
gitlab.docs install nginx ssl conf example 2016-02-05 23:24:04 +05:30
gitlab.init add init script 2015-11-11 16:23:27 +05:30
gitlab.links reverse wrap and sort 2016-03-13 11:51:59 +05:30
gitlab.lintian-overrides gitlab.target is provided for systemd 2016-02-04 16:26:55 +05:30
gitlab.templates update template language style 2016-02-13 20:12:37 +05:30
grantpriv.sh fix quotes 2016-01-29 22:24:20 +05:30
install reverse wrap and sort 2016-03-13 11:51:59 +05:30
postinst create cache in /var/lib/gitlab 2016-02-18 22:42:43 +05:30
rake-tasks.sh replace gitlab:setup with db:schema:load 2016-03-14 18:58:24 +05:30
README.Debian update README.Debian 2016-03-16 19:51:43 +05:30
ruby-gitlab-ce.git.docs reverse wrap and sort 2016-03-13 11:51:59 +05:30
rules config in /etc, log a symlink to /var/log/gitlab 2016-02-18 17:04:24 +05:30
upstream-file-count-check.sh move public to /var/lib/gitlab 2016-02-18 17:30:10 +05:30
watch remove ~ in dversionmangle 2016-02-05 20:31:06 +05:30

Debian specific changes in gitlab
=================================

1. Redis connection: redis-server package in debian follows upstream default
and listens on tcp port 6379. So gitlab package in debian is configured to use
tcp sockets. gitlab developers recommend using unix sockets. You can change to
using unix sockets by changing the following configuration files.

 /etc/redis/redis.conf and /etc/gitlab/resque.yml

2. wiki backend: debian package uses gollum-rugged_adapter whereas gitlab
upstream still use gollum-grit_adapter. grit is no longer maintained and grit
developers recommend switching to rugged. gollum-lib developers have announced
their intention to switch to rugged_adapter by default and this is in progress.

3. default paths: debian package has changed some default values for paths
which you can see at /etc/gitlab/gitlab-debian.conf

4. database: gitlab package configures postgresql database with peer
authentication.

5. gem versions: some gem dependency requirements are relaxed to work with
their packaged version in debian.

You can find the list of gems required by gitlab and their corresponding
package versions in debian at
http://debian.fosscommunity.in/status/?appname=gitlab&sort=satisfied

6. vendored js files: some embedded javascript files in
vendor/assets/javascripts are replaced by their packaged version.

7. root directory of rails is read only (/usr/share/gitlab); following symbolic
links are added to enable write access to gitlab app

> config -> /etc/gitlab
> Gemfile.lock -> /var/lib/gitlab/Gemfile.lock
> log -> /var/log/gitlab
> public -> /var/lib/gitlab/public
> tmp -> /run/gitlab
> shared/cache -> /var/lib/gitlab/cache
> /usr/share/gitlab/.secret -> /var/lib/gitlab/.secret

Useful diagnostics
==================

Upstream documentation will instruct to run commands like the following:

    $ sudo -u gitlab -H bundle exec rake XXX RAILS_ENV=production

Where is something like "db:migrate", "gitlab:check" or "gitlab:env:info". In
Debian, the rake command has to be called by the gitlab user from app home
directory /usr/share/gitlab and with the environment variables from
/etc/gitlab/gitlab-debian.conf set. So above command could be run like:

    # su gitlab
    $ cd /usr/share/gitlab
    $ export $(cat /etc/gitlab/gitlab-debian.conf)
    $ rake XXX RAILS_ENV=production

One useful command to run in this environment is:

    $ rake gitlab:check RAILS_ENV=production

Which will output helpful diagnostics about the state of your system including
how to fix possible problems. Another one is:

    $ rake gitlab:env:info RAILS_ENV=production

To see service status with systemd, you can use:

    $ systemctl status gitlab.target
    $ systemctl status gitlab-unicorn.service -l
    $ systemctl status gitlab-sidekiq.service -l
    $ systemctl status gitlab-workhorse.service -l
    $ journalctl -xn

It is advised to attach the output of above commands to bugreports.

Migrating from non-Debian gitlab
================================

 0. Backup everything you don't want to loose like:
      - the postgresql database used by your gitlab instance
      - the repositories/ directory
      - the public/uploads/ directory
      - your .ssh/authorized_keys
 1. Rename your old database to gitlab_production and set the user gitlab as
    its owner and the owner of all its tables, sequences and views
 2. Copy your old repository directory to /var/lib/gitlab/repositories/
 3. Copy your old public/uploads/ directory to /var/lib/gitlab/public/uploads/
 4. Copy your old .ssh/authorized_keys to /var/lib/gitlab/.ssh/authorized_keys
 5. Start gitlab using `systemctl start gitlab.target`
 6. Check the status of your installation using gitlab:check (see section
    above). The output of that command will tell you the necessary remaining
    fixes. You might be told to run:

       $ sudo chmod -R ug+rwX,o-rwx /var/lib/gitlab/repositories/
       $ sudo -u gitlab -H /usr/share/gitlab-shell/bin/create-hooks
       $ sudo -u gitlab -H bundle exec rake db:migrate RAILS_ENV=production

    See the last section of how to execute the db:migrate command.

Resetting admin password without web interface
==============================================

    # su gitlab
    $ cd /usr/share/gitlab
    $ export $(cat /etc/gitlab/gitlab-debian.conf)
    $ rails console production
    irb(main):001:0> user = User.where(admin: true).first
    irb(main):002:0> user.password = 'secret_pass'
    irb(main):003:0> user.password_confirmation = 'secret_pass'
    irb(main):004:0> user.save!