summaryrefslogtreecommitdiff
path: root/doc/install
diff options
context:
space:
mode:
Diffstat (limited to 'doc/install')
-rw-r--r--doc/install/installation.md142
-rw-r--r--doc/install/structure.md24
2 files changed, 40 insertions, 126 deletions
diff --git a/doc/install/installation.md b/doc/install/installation.md
index 0724bea9c3b..501ae6db87a 100644
--- a/doc/install/installation.md
+++ b/doc/install/installation.md
@@ -90,134 +90,75 @@ Install the Bundler Gem:
# 3. System Users
-Create a user for Git and Gitolite:
+Create a `git` user for Gitlab:
- sudo adduser \
- --system \
- --shell /bin/sh \
- --gecos 'Git Version Control' \
- --group \
- --disabled-password \
- --home /home/git \
- git
+ sudo adduser --disabled-login --gecos 'GitLab' git
-Create a user for GitLab:
+# 4. GitLab shell
- sudo adduser --disabled-login --gecos 'GitLab' gitlab
-
- # Add it to the git group
- sudo usermod -a -G git gitlab
-
- # Generate the SSH key
- sudo -u gitlab -H ssh-keygen -q -N '' -t rsa -f /home/gitlab/.ssh/id_rsa
-
-
-# 4. Gitolite
-
-Clone GitLab's fork of the Gitolite source code:
+ # login as git
+ sudo su git
+ # go to home directory
cd /home/git
- sudo -u git -H git clone -b gl-v320 https://github.com/gitlabhq/gitolite.git /home/git/gitolite
-
-Setup Gitolite with GitLab as its admin:
-
-**Important Note:**
-GitLab assumes *full and unshared* control over this Gitolite installation.
-
- # Add Gitolite scripts to $PATH
- sudo -u git -H mkdir /home/git/bin
- sudo -u git -H sh -c 'printf "%b\n%b\n" "PATH=\$PATH:/home/git/bin" "export PATH" >> /home/git/.profile'
- sudo -u git -H sh -c 'gitolite/install -ln /home/git/bin'
-
- # Copy the gitlab user's (public) SSH key ...
- sudo cp /home/gitlab/.ssh/id_rsa.pub /home/git/gitlab.pub
- sudo chmod 0444 /home/git/gitlab.pub
-
- # ... and use it as the admin key for the Gitolite setup
- sudo -u git -H sh -c "PATH=/home/git/bin:$PATH; gitolite setup -pk /home/git/gitlab.pub"
-
-Fix the directory permissions for the configuration directory:
-
- # Make sure the Gitolite config dir is owned by git
- sudo chmod 750 /home/git/.gitolite/
- sudo chown -R git:git /home/git/.gitolite/
-Fix the directory permissions for the repositories:
+ # clone gitlab shell
+ git clone https://github.com/gitlabhq/gitlab-shell.git
- # Make sure the repositories dir is owned by git and it stays that way
- sudo chmod -R ug+rwXs,o-rwx /home/git/repositories/
- sudo chown -R git:git /home/git/repositories/
+ # setup
+ cd gitlab-shell
+ cp config.yml.example config.yml
+ ./bin/install
-## Add domains to list to the list of known hosts
-
- sudo -u gitlab -H ssh git@localhost
- sudo -u gitlab -H ssh git@YOUR_DOMAIN_NAME
- sudo -u gitlab -H ssh git@YOUR_GITOLITE_DOMAIN_NAME
-
-
-## Test if everything works so far
-
- # Clone the admin repo so SSH adds localhost to known_hosts ...
- # ... and to be sure your users have access to Gitolite
- sudo -u gitlab -H git clone git@localhost:gitolite-admin.git /tmp/gitolite-admin
-
- # If it succeeded without errors you can remove the cloned repo
- sudo rm -rf /tmp/gitolite-admin
-
-**Important Note:**
-If you can't clone the `gitolite-admin` repository: **DO NOT PROCEED WITH INSTALLATION**!
-Check the [Trouble Shooting Guide](https://github.com/gitlabhq/gitlab-public-wiki/wiki/Trouble-Shooting-Guide)
-and make sure you have followed all of the above steps carefully.
-
# 5. Database
-See `doc/install/databases.md`
+To setup the MySQL/PostgreSQL database and dependencies please see [`doc/install/databases.md`](./databases.md) .
# 6. GitLab
- # We'll install GitLab into home directory of the user "gitlab"
- cd /home/gitlab
+ # We'll install GitLab into home directory of the user "git"
+ cd /home/git
## Clone the Source
# Clone GitLab repository
- sudo -u gitlab -H git clone https://github.com/gitlabhq/gitlabhq.git gitlab
+ sudo -u git -H git clone https://github.com/gitlabhq/gitlabhq.git gitlab
# Go to gitlab dir
- cd /home/gitlab/gitlab
+ cd /home/git/gitlab
# Checkout to stable release
- sudo -u gitlab -H git checkout 4-1-stable
+ sudo -u git -H git checkout 5-0-stable
**Note:**
-You can change `4-1-stable` to `master` if you want the *bleeding edge* version, but
+You can change `5-0-stable` to `master` if you want the *bleeding edge* version, but
do so with caution!
## Configure it
- cd /home/gitlab/gitlab
+ cd /home/git/gitlab
# Copy the example GitLab config
- sudo -u gitlab -H cp config/gitlab.yml.example config/gitlab.yml
+ sudo -u git -H cp config/gitlab.yml.example config/gitlab.yml
# Make sure to change "localhost" to the fully-qualified domain name of your
# host serving GitLab where necessary
- sudo -u gitlab -H vim config/gitlab.yml
+ sudo -u git -H vim config/gitlab.yml
# Make sure GitLab can write to the log/ and tmp/ directories
- sudo chown -R gitlab log/
- sudo chown -R gitlab tmp/
+ sudo chown -R git log/
+ sudo chown -R git tmp/
sudo chmod -R u+rwX log/
sudo chmod -R u+rwX tmp/
# Make directory for satellites
- sudo -u gitlab -H mkdir /home/gitlab/gitlab-satellites
+ sudo -u git -H mkdir /home/git/gitlab-satellites
# Copy the example Unicorn config
- sudo -u gitlab -H cp config/unicorn.rb.example config/unicorn.rb
+ sudo -u git -H cp config/unicorn.rb.example config/unicorn.rb
**Important Note:**
Make sure to edit both files to match your setup.
@@ -225,42 +166,29 @@ Make sure to edit both files to match your setup.
## Configure GitLab DB settings
# Mysql
- sudo -u gitlab cp config/database.yml.mysql config/database.yml
+ sudo -u git cp config/database.yml.mysql config/database.yml
# PostgreSQL
- sudo -u gitlab cp config/database.yml.postgresql config/database.yml
+ sudo -u git cp config/database.yml.postgresql config/database.yml
Make sure to update username/password in config/database.yml.
## Install Gems
- cd /home/gitlab/gitlab
+ cd /home/git/gitlab
sudo gem install charlock_holmes --version '0.6.9'
# For MySQL (note, the option says "without")
- sudo -u gitlab -H bundle install --deployment --without development test postgres
+ sudo -u git -H bundle install --deployment --without development test postgres
# Or for PostgreSQL
- sudo -u gitlab -H bundle install --deployment --without development test mysql
-
-## Configure Git
-
-GitLab needs to be able to commit and push changes to Gitolite. In order to do
-that Git requires a username and email. (We recommend using the same address
-used for the `email.from` setting in `config/gitlab.yml`)
-
- sudo -u gitlab -H git config --global user.name "GitLab"
- sudo -u gitlab -H git config --global user.email "gitlab@localhost"
-
-## Setup GitLab Hooks
+ sudo -u git -H bundle install --deployment --without development test mysql
- sudo cp ./lib/hooks/post-receive /home/git/.gitolite/hooks/common/post-receive
- sudo chown git:git /home/git/.gitolite/hooks/common/post-receive
## Initialise Database and Activate Advanced Features
- sudo -u gitlab -H bundle exec rake gitlab:setup RAILS_ENV=production
+ sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production
## Install Init Script
@@ -279,11 +207,11 @@ Make GitLab start on boot:
Check if GitLab and its environment is configured correctly:
- sudo -u gitlab -H bundle exec rake gitlab:env:info RAILS_ENV=production
+ sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production
To make sure you didn't miss anything run a more thorough check with:
- sudo -u gitlab -H bundle exec rake gitlab:check RAILS_ENV=production
+ sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production
If all items are green, then congratulations on successfully installing GitLab!
However there are still a few steps left.
@@ -356,7 +284,7 @@ a different host, you can configure its connection string via the
If you are running SSH on a non-standard port, you must change the gitlab user'S SSH config.
- # Add to /home/gitlab/.ssh/config
+ # Add to /home/git/.ssh/config
host localhost # Give your setup a name (here: override localhost)
user git # Your remote git user
port 2222 # Your port number
diff --git a/doc/install/structure.md b/doc/install/structure.md
index a67e12cc217..f580ea159a2 100644
--- a/doc/install/structure.md
+++ b/doc/install/structure.md
@@ -3,37 +3,23 @@
This is the directory structure you will end up with following the instructions in the Installation Guide.
|-- home
- | |-- gitlab
+ | |-- git
| |-- .ssh
| |-- gitlab
| |-- gitlab-satellites
- | |-- git
- | |-- .gitolite
- | |-- .ssh
- | |-- bin
- | |-- gitolite
+ | |-- gitlab-shell
| |-- repositories
-**/home/gitlab/.ssh**
- Contains the Gitolite admin key GitLab uses to configure Gitolite.
+**/home/git/.ssh**
-**/home/gitlab/gitlab**
+**/home/git/gitlab**
This is where GitLab lives.
-**/home/gitlab/gitlab-satellites**
+**/home/git/gitlab-satellites**
Contains a copy of all repositories with a working tree.
It's used for merge requests, editing files, etc.
-**/home/git/.ssh**
- Contains the SSH access configuration managed by Gitolite.
-
-**/home/git/bin**
- Contains Gitolite executables.
-
-**/home/git/gitolite**
- This is where Gitolite lives.
-
**/home/git/repositories**
Holds all your repositories in bare format.
This is the place Git uses when you pull/push to your projects.