Commit 4a1b42d26c5d35565f121d34527fe4cda0b51bdb

Authored by randx
Committed by Nihad Abbasov
1 parent a502f67c

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