Commit 4a1b42d26c5d35565f121d34527fe4cda0b51bdb
Committed by
Nihad Abbasov
1 parent
a502f67c
Exists in
master
and in
4 other branches
update install to use recipes
Conflicts: doc/installation.md Signed-off-by: Nihad Abbasov <narkoz.2008@gmail.com>
Showing
1 changed file
with
47 additions
and
121 deletions
Show diff stats
doc/installation.md
| 1 | -## Platform requirements: | 1 | +## Platform requirements: |
| 2 | 2 | ||
| 3 | **The project is designed for the Linux operating system.** | 3 | **The project is designed for the Linux operating system.** |
| 4 | 4 | ||
| @@ -22,7 +22,7 @@ You might have some luck using these, but no guarantees: | @@ -22,7 +22,7 @@ You might have some luck using these, but no guarantees: | ||
| 22 | 22 | ||
| 23 | Gitlab does **not** run on Windows and we have no plans of making Gitlab compatible. | 23 | Gitlab does **not** run on Windows and we have no plans of making Gitlab compatible. |
| 24 | 24 | ||
| 25 | -## This installation guide created for Debian/Ubuntu and properly tested. | 25 | +## This installation guide created for Debian/Ubuntu and properly tested. |
| 26 | 26 | ||
| 27 | The installation consists of 6 steps: | 27 | The installation consists of 6 steps: |
| 28 | 28 | ||
| @@ -43,14 +43,20 @@ Also read the [Read this before you submit an issue](https://github.com/gitlabhq | @@ -43,14 +43,20 @@ Also read the [Read this before you submit an issue](https://github.com/gitlabhq | ||
| 43 | 43 | ||
| 44 | > - - - | 44 | > - - - |
| 45 | > First 3 steps can be easily skipped with simply install script: | 45 | > First 3 steps can be easily skipped with simply install script: |
| 46 | -> | ||
| 47 | -> # Install curl and sudo | 46 | +> |
| 47 | +> # Install curl and sudo | ||
| 48 | > apt-get install curl sudo | 48 | > apt-get install curl sudo |
| 49 | -> | 49 | +> |
| 50 | > # 3 steps in 1 command :) | 50 | > # 3 steps in 1 command :) |
| 51 | -> curl https://raw.github.com/gitlabhq/gitlabhq/master/doc/debian_ubuntu.sh | sh | ||
| 52 | -> | ||
| 53 | -> Now you can go to step 4" | 51 | +> curl https://raw.github.com/gitlabhq/gitlab-recipes/master/install/debian_ubuntu.sh | sh |
| 52 | +> | ||
| 53 | +> Now you can go to [Step 4](#4-install-gitlab-and-configuration-check-status-configuration) | ||
| 54 | +> | ||
| 55 | +> Or if you are installing on Amazon Web Services using Ubuntu 12.04 you can do all steps (1 to 6) at once with: | ||
| 56 | +> | ||
| 57 | +> curl https://raw.github.com/gitlabhq/gitlab-recipes/master/install/debian_ubuntu_aws.sh | sh | ||
| 58 | +> | ||
| 59 | +> for more detailed instructions read the HOWTO section of [the script](https://github.com/gitlabhq/gitlab-recipes/blob/master/install/debian_ubuntu_aws.sh) | ||
| 54 | > - - - | 60 | > - - - |
| 55 | 61 | ||
| 56 | # 1. Install packages | 62 | # 1. Install packages |
| @@ -61,15 +67,15 @@ Also read the [Read this before you submit an issue](https://github.com/gitlabhq | @@ -61,15 +67,15 @@ Also read the [Read this before you submit an issue](https://github.com/gitlabhq | ||
| 61 | sudo apt-get upgrade | 67 | sudo apt-get upgrade |
| 62 | 68 | ||
| 63 | sudo apt-get install -y wget curl gcc checkinstall libxml2-dev libxslt-dev sqlite3 libsqlite3-dev libcurl4-openssl-dev libreadline6-dev libc6-dev libssl-dev libmysql++-dev make build-essential zlib1g-dev libicu-dev redis-server openssh-server git-core python-dev python-pip libyaml-dev postfix | 69 | sudo apt-get install -y wget curl gcc checkinstall libxml2-dev libxslt-dev sqlite3 libsqlite3-dev libcurl4-openssl-dev libreadline6-dev libc6-dev libssl-dev libmysql++-dev make build-essential zlib1g-dev libicu-dev redis-server openssh-server git-core python-dev python-pip libyaml-dev postfix |
| 64 | - | 70 | + |
| 65 | # If you want to use MySQL: | 71 | # If you want to use MySQL: |
| 66 | sudo apt-get install -y mysql-server mysql-client libmysqlclient-dev | 72 | sudo apt-get install -y mysql-server mysql-client libmysqlclient-dev |
| 67 | 73 | ||
| 68 | # 2. Install ruby | 74 | # 2. Install ruby |
| 69 | 75 | ||
| 70 | - wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p290.tar.gz | ||
| 71 | - tar xzfv ruby-1.9.2-p290.tar.gz | ||
| 72 | - cd ruby-1.9.2-p290 | 76 | + wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p194.tar.gz |
| 77 | + tar xfvz ruby-1.9.3-p194.tar.gz | ||
| 78 | + cd ruby-1.9.3-p194 | ||
| 73 | ./configure | 79 | ./configure |
| 74 | make | 80 | make |
| 75 | sudo make install | 81 | sudo make install |
| @@ -77,7 +83,7 @@ Also read the [Read this before you submit an issue](https://github.com/gitlabhq | @@ -77,7 +83,7 @@ Also read the [Read this before you submit an issue](https://github.com/gitlabhq | ||
| 77 | # 3. Install gitolite | 83 | # 3. Install gitolite |
| 78 | 84 | ||
| 79 | Create user for git: | 85 | Create user for git: |
| 80 | - | 86 | + |
| 81 | sudo adduser \ | 87 | sudo adduser \ |
| 82 | --system \ | 88 | --system \ |
| 83 | --shell /bin/sh \ | 89 | --shell /bin/sh \ |
| @@ -90,7 +96,7 @@ Create user for git: | @@ -90,7 +96,7 @@ Create user for git: | ||
| 90 | Create user for gitlab: | 96 | Create user for gitlab: |
| 91 | 97 | ||
| 92 | # ubuntu/debian | 98 | # ubuntu/debian |
| 93 | - sudo adduser --disabled-login --gecos 'gitlab system' gitlab | 99 | + sudo adduser --disabled-login --gecos 'gitlab system' gitlab |
| 94 | 100 | ||
| 95 | Add your user to git group: | 101 | Add your user to git group: |
| 96 | 102 | ||
| @@ -103,7 +109,7 @@ Generate key: | @@ -103,7 +109,7 @@ Generate key: | ||
| 103 | Get gitolite source code: | 109 | Get gitolite source code: |
| 104 | 110 | ||
| 105 | cd /home/git | 111 | cd /home/git |
| 106 | - sudo -H -u git git clone git://github.com/gitlabhq/gitolite /home/git/gitolite | 112 | + sudo -H -u git git clone git://github.com/gitlabhq/gitolite /home/git/gitolite |
| 107 | 113 | ||
| 108 | Setup: | 114 | Setup: |
| 109 | 115 | ||
| @@ -114,20 +120,20 @@ Setup: | @@ -114,20 +120,20 @@ Setup: | ||
| 114 | 120 | ||
| 115 | sudo -u git -H sed -i 's/0077/0007/g' /home/git/share/gitolite/conf/example.gitolite.rc | 121 | sudo -u git -H sed -i 's/0077/0007/g' /home/git/share/gitolite/conf/example.gitolite.rc |
| 116 | sudo -u git -H sh -c "PATH=/home/git/bin:$PATH; gl-setup -q /home/git/gitlab.pub" | 122 | sudo -u git -H sh -c "PATH=/home/git/bin:$PATH; gl-setup -q /home/git/gitlab.pub" |
| 117 | - | 123 | + |
| 118 | Permissions: | 124 | Permissions: |
| 119 | 125 | ||
| 120 | sudo chmod -R g+rwX /home/git/repositories/ | 126 | sudo chmod -R g+rwX /home/git/repositories/ |
| 121 | sudo chown -R git:git /home/git/repositories/ | 127 | sudo chown -R git:git /home/git/repositories/ |
| 122 | 128 | ||
| 123 | #### CHECK: Logout & login again to apply git group to your user | 129 | #### CHECK: Logout & login again to apply git group to your user |
| 124 | - | 130 | + |
| 125 | # clone admin repo to add localhost to known_hosts | 131 | # clone admin repo to add localhost to known_hosts |
| 126 | # & be sure your user has access to gitolite | 132 | # & be sure your user has access to gitolite |
| 127 | - sudo -u gitlab -H git clone git@localhost:gitolite-admin.git /tmp/gitolite-admin | 133 | + sudo -u gitlab -H git clone git@localhost:gitolite-admin.git /tmp/gitolite-admin |
| 128 | 134 | ||
| 129 | # if succeed you can remove it | 135 | # if succeed you can remove it |
| 130 | - sudo rm -rf /tmp/gitolite-admin | 136 | + sudo rm -rf /tmp/gitolite-admin |
| 131 | 137 | ||
| 132 | **IMPORTANT! If you cant clone `gitolite-admin` repository - DONT PROCEED INSTALLATION** | 138 | **IMPORTANT! If you cant clone `gitolite-admin` repository - DONT PROCEED INSTALLATION** |
| 133 | 139 | ||
| @@ -139,7 +145,7 @@ Permissions: | @@ -139,7 +145,7 @@ Permissions: | ||
| 139 | cd /home/gitlab | 145 | cd /home/gitlab |
| 140 | sudo -H -u gitlab git clone -b stable git://github.com/gitlabhq/gitlabhq.git gitlab | 146 | sudo -H -u gitlab git clone -b stable git://github.com/gitlabhq/gitlabhq.git gitlab |
| 141 | cd gitlab | 147 | cd gitlab |
| 142 | - | 148 | + |
| 143 | sudo -u gitlab mkdir tmp | 149 | sudo -u gitlab mkdir tmp |
| 144 | 150 | ||
| 145 | # Rename config files | 151 | # Rename config files |
| @@ -150,22 +156,22 @@ Permissions: | @@ -150,22 +156,22 @@ Permissions: | ||
| 150 | # SQLite | 156 | # SQLite |
| 151 | sudo -u gitlab cp config/database.yml.sqlite config/database.yml | 157 | sudo -u gitlab cp config/database.yml.sqlite config/database.yml |
| 152 | 158 | ||
| 153 | - # Or | 159 | + # Or |
| 154 | # Mysql | 160 | # Mysql |
| 155 | # Install MySQL as directed in Step #1 | 161 | # Install MySQL as directed in Step #1 |
| 156 | - | 162 | + |
| 157 | # Login to MySQL | 163 | # Login to MySQL |
| 158 | - $ mysql -u root -p | ||
| 159 | - | 164 | + $ mysql -u root -p |
| 165 | + | ||
| 160 | # Create the gitlabhq production database | 166 | # Create the gitlabhq production database |
| 161 | mysql> CREATE DATABASE IF NOT EXISTS `gitlabhq_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`; | 167 | mysql> CREATE DATABASE IF NOT EXISTS `gitlabhq_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`; |
| 162 | - | 168 | + |
| 163 | # Create the MySQL User change $password to a real password | 169 | # Create the MySQL User change $password to a real password |
| 164 | - mysql> CREATE USER 'gitlab'@'localhost' IDENTIFIED BY '$password'; | ||
| 165 | - | 170 | + mysql> CREATE USER 'gitlab'@'localhost' IDENTIFIED BY '$password'; |
| 171 | + | ||
| 166 | # Grant proper permissions to the MySQL User | 172 | # Grant proper permissions to the MySQL User |
| 167 | mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `gitlabhq_production`.* TO 'gitlab'@'localhost'; | 173 | mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `gitlabhq_production`.* TO 'gitlab'@'localhost'; |
| 168 | - | 174 | + |
| 169 | # Exit MySQL Server and copy the example config, make sure to update username/password in config/database.yml | 175 | # Exit MySQL Server and copy the example config, make sure to update username/password in config/database.yml |
| 170 | sudo -u gitlab cp config/database.yml.example config/database.yml | 176 | sudo -u gitlab cp config/database.yml.example config/database.yml |
| 171 | 177 | ||
| @@ -181,7 +187,7 @@ Permissions: | @@ -181,7 +187,7 @@ Permissions: | ||
| 181 | 187 | ||
| 182 | sudo cp ./lib/hooks/post-receive /home/git/share/gitolite/hooks/common/post-receive | 188 | sudo cp ./lib/hooks/post-receive /home/git/share/gitolite/hooks/common/post-receive |
| 183 | sudo chown git:git /home/git/share/gitolite/hooks/common/post-receive | 189 | sudo chown git:git /home/git/share/gitolite/hooks/common/post-receive |
| 184 | - | 190 | + |
| 185 | Checking status: | 191 | Checking status: |
| 186 | 192 | ||
| 187 | sudo -u gitlab bundle exec rake gitlab:app:status RAILS_ENV=production | 193 | sudo -u gitlab bundle exec rake gitlab:app:status RAILS_ENV=production |
| @@ -202,13 +208,13 @@ Checking status: | @@ -202,13 +208,13 @@ Checking status: | ||
| 202 | UMASK for .gitolite.rc is 0007? ............YES | 208 | UMASK for .gitolite.rc is 0007? ............YES |
| 203 | /home/git/share/gitolite/hooks/common/post-receive exists? ............YES | 209 | /home/git/share/gitolite/hooks/common/post-receive exists? ............YES |
| 204 | 210 | ||
| 205 | -If you got all YES - congrats! You can go to next step. | 211 | +If you got all YES - congrats! You can go to next step. |
| 206 | 212 | ||
| 207 | # 5. Server up | 213 | # 5. Server up |
| 208 | 214 | ||
| 209 | Application can be started with next command: | 215 | Application can be started with next command: |
| 210 | 216 | ||
| 211 | - # For test purposes | 217 | + # For test purposes |
| 212 | sudo -u gitlab bundle exec rails s -e production | 218 | sudo -u gitlab bundle exec rails s -e production |
| 213 | 219 | ||
| 214 | # As daemon | 220 | # As daemon |
| @@ -244,42 +250,15 @@ You can login via web using admin generated with setup: | @@ -244,42 +250,15 @@ You can login via web using admin generated with setup: | ||
| 244 | sudo -u gitlab cp config/unicorn.rb.orig config/unicorn.rb | 250 | sudo -u gitlab cp config/unicorn.rb.orig config/unicorn.rb |
| 245 | sudo -u gitlab bundle exec unicorn_rails -c config/unicorn.rb -E production -D | 251 | sudo -u gitlab bundle exec unicorn_rails -c config/unicorn.rb -E production -D |
| 246 | 252 | ||
| 247 | -Edit /etc/nginx/nginx.conf. In the *http* section add: | ||
| 248 | - | ||
| 249 | - upstream gitlab { | ||
| 250 | - server unix:/home/gitlab/gitlab/tmp/sockets/gitlab.socket; | ||
| 251 | - } | ||
| 252 | - | ||
| 253 | - server { | ||
| 254 | - listen YOUR_SERVER_IP:80; # e.g., listen 192.168.1.1:80; | ||
| 255 | - server_name YOUR_SERVER_FQDN; # e.g., server_name source.example.com; | ||
| 256 | - root /home/gitlab/gitlab/public; | ||
| 257 | - | ||
| 258 | - # individual nginx logs for this gitlab vhost | ||
| 259 | - access_log /var/log/nginx/gitlab_access.log; | ||
| 260 | - error_log /var/log/nginx/gitlab_error.log; | ||
| 261 | - | ||
| 262 | - location / { | ||
| 263 | - # serve static files from defined root folder;. | ||
| 264 | - # @gitlab is a named location for the upstream fallback, see below | ||
| 265 | - try_files $uri $uri/index.html $uri.html @gitlab; | ||
| 266 | - } | ||
| 267 | - | ||
| 268 | - # if a file, which is not found in the root folder is requested, | ||
| 269 | - # then the proxy pass the request to the upsteam (gitlab unicorn) | ||
| 270 | - location @gitlab { | ||
| 271 | - proxy_redirect off; | ||
| 272 | - | ||
| 273 | - # you need to change this to "https", if you set "ssl" directive to "on" | ||
| 274 | - proxy_set_header X-FORWARDED_PROTO http; | ||
| 275 | - proxy_set_header Host $http_host; | ||
| 276 | - proxy_set_header X-Real-IP $remote_addr; | ||
| 277 | - | ||
| 278 | - proxy_pass http://gitlab; | ||
| 279 | - } | ||
| 280 | - } | ||
| 281 | - | ||
| 282 | -Change **YOUR_SERVER_IP** and **YOUR_SERVER_FQDN** to the IP address and fully-qualified domain name of the host serving GitLab. | 253 | +Add GitLab to nginx sites & change with your host specific settings |
| 254 | + | ||
| 255 | + sudo wget https://raw.github.com/gitlabhq/gitlab-recipes/master/nginx/gitlab -P /etc/nginx/sites-available/ | ||
| 256 | + sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/gitlab | ||
| 257 | + | ||
| 258 | + # Change **YOUR_SERVER_IP** and **YOUR_SERVER_FQDN** | ||
| 259 | + # to the IP address and fully-qualified domain name | ||
| 260 | + # of the host serving GitLab. | ||
| 261 | + sudo vim /etc/nginx/sites-enabled/gitlab | ||
| 283 | 262 | ||
| 284 | Restart nginx: | 263 | Restart nginx: |
| 285 | 264 | ||
| @@ -287,60 +266,7 @@ Restart nginx: | @@ -287,60 +266,7 @@ Restart nginx: | ||
| 287 | 266 | ||
| 288 | Create init script in /etc/init.d/gitlab: | 267 | Create init script in /etc/init.d/gitlab: |
| 289 | 268 | ||
| 290 | - #! /bin/bash | ||
| 291 | - ### BEGIN INIT INFO | ||
| 292 | - # Provides: gitlab | ||
| 293 | - # Required-Start: $local_fs $remote_fs $network $syslog redis-server | ||
| 294 | - # Required-Stop: $local_fs $remote_fs $network $syslog | ||
| 295 | - # Default-Start: 2 3 4 5 | ||
| 296 | - # Default-Stop: 0 1 6 | ||
| 297 | - # Short-Description: GitLab git repository management | ||
| 298 | - # Description: GitLab git repository management | ||
| 299 | - ### END INIT INFO | ||
| 300 | - | ||
| 301 | - DAEMON_OPTS="-c /home/gitlab/gitlab/config/unicorn.rb -E production -D" | ||
| 302 | - NAME=unicorn | ||
| 303 | - DESC="Gitlab service" | ||
| 304 | - PID=/home/gitlab/gitlab/tmp/pids/unicorn.pid | ||
| 305 | - RESQUE_PID=/home/gitlab/gitlab/tmp/pids/resque_worker.pid | ||
| 306 | - | ||
| 307 | - case "$1" in | ||
| 308 | - start) | ||
| 309 | - CD_TO_APP_DIR="cd /home/gitlab/gitlab" | ||
| 310 | - START_DAEMON_PROCESS="bundle exec unicorn_rails $DAEMON_OPTS" | ||
| 311 | - START_RESQUE_PROCESS="./resque.sh" | ||
| 312 | - | ||
| 313 | - echo -n "Starting $DESC: " | ||
| 314 | - if [ `whoami` = root ]; then | ||
| 315 | - sudo -u gitlab sh -l -c "$CD_TO_APP_DIR > /dev/null 2>&1 && $START_DAEMON_PROCESS && $START_RESQUE_PROCESS" | ||
| 316 | - else | ||
| 317 | - $CD_TO_APP_DIR > /dev/null 2>&1 && $START_DAEMON_PROCESS && $START_RESQUE_PROCESS | ||
| 318 | - fi | ||
| 319 | - echo "$NAME." | ||
| 320 | - ;; | ||
| 321 | - stop) | ||
| 322 | - echo -n "Stopping $DESC: " | ||
| 323 | - kill -QUIT `cat $PID` | ||
| 324 | - kill -QUIT `cat $RESQUE_PID` | ||
| 325 | - echo "$NAME." | ||
| 326 | - ;; | ||
| 327 | - restart) | ||
| 328 | - echo -n "Restarting $DESC: " | ||
| 329 | - kill -USR2 `cat $PID` | ||
| 330 | - echo "$NAME." | ||
| 331 | - ;; | ||
| 332 | - reload) | ||
| 333 | - echo -n "Reloading $DESC configuration: " | ||
| 334 | - kill -HUP `cat $PID` | ||
| 335 | - echo "$NAME." | ||
| 336 | - ;; | ||
| 337 | - *) | ||
| 338 | - echo "Usage: $NAME {start|stop|restart|reload}" >&2 | ||
| 339 | - exit 1 | ||
| 340 | - ;; | ||
| 341 | - esac | ||
| 342 | - | ||
| 343 | - exit 0 | 269 | + sudo wget https://raw.github.com/gitlabhq/gitlab-recipes/master/init.d/gitlab -P /etc/init.d/ |
| 344 | 270 | ||
| 345 | Adding permission: | 271 | Adding permission: |
| 346 | 272 |