Commit aa708ed961e6c84010b3371cf64359152f08e7a8

Authored by Dmitriy Zaporozhets
1 parent 4fe438ce

Simplify setup for nginx, initd with already predefined files

doc/installation.md
@@ -244,42 +244,14 @@ You can login via web using admin generated with setup: @@ -244,42 +244,14 @@ You can login via web using admin generated with setup:
244 sudo -u gitlab cp config/unicorn.rb.orig config/unicorn.rb 244 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 245 sudo -u gitlab bundle exec unicorn_rails -c config/unicorn.rb -E production -D
246 246
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. 247 +Add gitlab to nginx sites & change with your host specific settings
  248 +
  249 + cp /home/gitlab/gitlab/lib/support/nginx-gitlab /etc/nginx/sites-enabled/gitlab
  250 +
  251 + # Change **YOUR_SERVER_IP** and **YOUR_SERVER_FQDN**
  252 + # to the IP address and fully-qualified domain name
  253 + # of the host serving GitLab.
  254 + vim /etc/nginx/sites-enabled/nginx-gitlab
283 255
284 Restart nginx: 256 Restart nginx:
285 257
@@ -287,60 +259,7 @@ Restart nginx: @@ -287,60 +259,7 @@ Restart nginx:
287 259
288 Create init script in /etc/init.d/gitlab: 260 Create init script in /etc/init.d/gitlab:
289 261
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 262 + cp /home/gitlab/gitlab/lib/support/init-gitlab /etc/init.d/gitlab
344 263
345 Adding permission: 264 Adding permission:
346 265
lib/support/init-gitlab 0 → 100644
@@ -0,0 +1,54 @@ @@ -0,0 +1,54 @@
  1 +#! /bin/bash
  2 +### BEGIN INIT INFO
  3 +# Provides: gitlab
  4 +# Required-Start: $local_fs $remote_fs $network $syslog redis-server
  5 +# Required-Stop: $local_fs $remote_fs $network $syslog
  6 +# Default-Start: 2 3 4 5
  7 +# Default-Stop: 0 1 6
  8 +# Short-Description: GitLab git repository management
  9 +# Description: GitLab git repository management
  10 +### END INIT INFO
  11 +
  12 +DAEMON_OPTS="-c /home/gitlab/gitlab/config/unicorn.rb -E production -D"
  13 +NAME=unicorn
  14 +DESC="Gitlab service"
  15 +PID=/home/gitlab/gitlab/tmp/pids/unicorn.pid
  16 +RESQUE_PID=/home/gitlab/gitlab/tmp/pids/resque_worker.pid
  17 +
  18 +case "$1" in
  19 + start)
  20 + CD_TO_APP_DIR="cd /home/gitlab/gitlab"
  21 + START_DAEMON_PROCESS="bundle exec unicorn_rails $DAEMON_OPTS"
  22 + START_RESQUE_PROCESS="./resque.sh"
  23 +
  24 + echo -n "Starting $DESC: "
  25 + if [ `whoami` = root ]; then
  26 + sudo -u gitlab sh -l -c "$CD_TO_APP_DIR > /dev/null 2>&1 && $START_DAEMON_PROCESS && $START_RESQUE_PROCESS"
  27 + else
  28 + $CD_TO_APP_DIR > /dev/null 2>&1 && $START_DAEMON_PROCESS && $START_RESQUE_PROCESS
  29 + fi
  30 + echo "$NAME."
  31 + ;;
  32 + stop)
  33 + echo -n "Stopping $DESC: "
  34 + kill -QUIT `cat $PID`
  35 + kill -QUIT `cat $RESQUE_PID`
  36 + echo "$NAME."
  37 + ;;
  38 + restart)
  39 + echo -n "Restarting $DESC: "
  40 + kill -USR2 `cat $PID`
  41 + echo "$NAME."
  42 + ;;
  43 + reload)
  44 + echo -n "Reloading $DESC configuration: "
  45 + kill -HUP `cat $PID`
  46 + echo "$NAME."
  47 + ;;
  48 + *)
  49 + echo "Usage: $NAME {start|stop|restart|reload}" >&2
  50 + exit 1
  51 + ;;
  52 +esac
  53 +
  54 +exit 0
lib/support/nginx-gitlab 0 → 100644
@@ -0,0 +1,33 @@ @@ -0,0 +1,33 @@
  1 +upstream gitlab {
  2 + server unix:/home/gitlab/gitlab/tmp/sockets/gitlab.socket;
  3 +}
  4 +
  5 +server {
  6 + listen YOUR_SERVER_IP:80; # e.g., listen 192.168.1.1:80;
  7 + server_name YOUR_SERVER_FQDN; # e.g., server_name source.example.com;
  8 + root /home/gitlab/gitlab/public;
  9 +
  10 + # individual nginx logs for this gitlab vhost
  11 + access_log /var/log/nginx/gitlab_access.log;
  12 + error_log /var/log/nginx/gitlab_error.log;
  13 +
  14 + location / {
  15 + # serve static files from defined root folder;.
  16 + # @gitlab is a named location for the upstream fallback, see below
  17 + try_files $uri $uri/index.html $uri.html @gitlab;
  18 + }
  19 +
  20 + # if a file, which is not found in the root folder is requested,
  21 + # then the proxy pass the request to the upsteam (gitlab unicorn)
  22 + location @gitlab {
  23 + proxy_redirect off;
  24 +
  25 + # you need to change this to "https", if you set "ssl" directive to "on"
  26 + proxy_set_header X-FORWARDED_PROTO http;
  27 + proxy_set_header Host $http_host;
  28 + proxy_set_header X-Real-IP $remote_addr;
  29 +
  30 + proxy_pass http://gitlab;
  31 + }
  32 +}
  33 +