GitLab

Disclaimer
This guide is a rough port from the official guide and various internet references.

Some of the steps have been consolidated and obviously customized to the standard Gentoo environment.

If something is missing, please make a point of updating this article, with special attention to dependencies please.

This is a long installation guide, an alternative would be to use the unofficial www-apps/gitlabhq ebuild from Fritteli’s Overlay.

The Layman's Guide
The Gitlab overlay in layman, originally the CVUT overlay, is currently on par with the latest gitlab version (7.12 as of June 2015). It supports gitlab migrations in a post-configure step, for those performing upgrades. The repo and issues can be found here. Fritteli's Gentoo overlay provides an alternative, though the installation instructions are not documented here.

The overlay is added to layman using the command

One must then add the following keywords to be accepted by portage

where ARCH is the architecture and M.m.i are the Major, minor and intermittent/incremental version numbers.

Next emerge and configure the package using the following commands and adhering to the instructions in the emerge output.

Next, create all required configuration files from example configs (if they don't exist):

Create a sidekiq config:

Default owners are incorrect.

Then change some values in Gitlab-shell config. By default, user git is supposed to have a homedir /home/git, but gitlab.yml expects it to have a home in /var/lib/git. It has to be fixed:

Change all occurrences of /var/lib/git/ to /home/git.

Then restart service, and that's it.

Otherwise for a more Gentoo-ish approach to installation read on.

Prerequisites/Dependencies

 * version 2.7.x
 * version 2.0.x
 * version 2.7.x
 * version 2.0.x
 * version 2.0.x

Optional: To receive mailing notifications from GitLab, install a mail server. The recommended server is Postfix.

Next, tell Gentoo to start redis automagically:

Prepare the Necessary Users
Gitlab uses the git user, so add it:

MySQL/MariaDB
Merge mysql if it has not been done so already.

Setup root mysql password.

Turn on mysql.

Set mysql to start upon reboot.

Create the database and user:

Test connecting to the databases with the new user:

PostgreSQL
Merge postgresql-server, or postgresql-base if the PostgreSQL installation is on another server.

For PostgreSQL there are different methods of authentication. For a installation on the local machine some administrators prefer using the local account when connecting through a socket. By default this is enabled.

Create a database and a new user without a password and give the user ownership of it. Remember, when connecting through the socket the shell user is used for authentication, so its name must be git.

The git user will need access to the PostgreSQL socket, so it's required to add the user to the postgres group

And a little test, just to be sure everything went fine:

Copy the example database configuration file:


 * Edit the new configuration file and add the database credentials just created:

Install Needed Gems
Note that charlock_holmes has a bug on gentoo, so a workaround is required:

Note that there might be an error message about a dropped dependency called "modernizr". This is a frontend gem who has been renamed. This has to be added to the Gemfile:

just search the modernizr (v. 2.6.2) package and rename it to "modernizr-rails", "2.7.1". Also Note that a (maybe failing) command, being issued before, has created a Gemfile.lock. This lock file would need an edit as well (two mentions of modernizr).

Then build the package depending on the database setup, excluding the staging and dev environment (which have not been set up yet) and the not-used database:
 * mysql


 * postgresql

Download and Start the Initscript
At the time of writing, this init script is confirmed to work with Gitlab versions 6, just edit the user and home directory:

Nginx
Download the official template and activate it:

Use a favorite text editor to change the relevant portions:

Apache/Passenger
go over to the rails page, and fix up passenger...

The file needs to be edited, to adapt DocumentRoot and  directives to use. Thus, add the following virtual host to manage gitlab :

Now apache has to be restarted, don't forget to

&&

Finish Installing
Use a favorite web browser to navigate to the new host that was set up

If everything loads properly, the installer has made an admin account.

Diagnostics
Run this command to get a full diagnostic.

Push, Pull, Clone
Users to push, pull, clone generate ssh-rsa key.

Using the GitLab web page interface, add a user key to a user, & create new repository.

Many commands will show up, they need to be run on the users computer.

The command 'git push -u origin master' will activate the repository created and allow cloning.

clone using the url the web interface displays. (replace localhost with IP address, or fully qualified domain name)

Omniauth
In the file there's a section that controls login from remote sites such as Google, Twitter, and GitHub. change enabled: false to enabled: true. then scroll down and remove all ## marks from

{{FileBox|filename=/home/gitlab/gitlab/config/gitlab.yml|lang=yaml|1= }}
 * 1)    - { name: 'google_oauth2', app_id: 'YOUR APP ID',
 * 2)        app_secret: 'YOUR APP SECRET',

and ensure to leave the leading - on the first line.