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 244 sudo -u gitlab cp config/unicorn.rb.orig config/unicorn.rb
245 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 256 Restart nginx:
285 257  
... ... @@ -287,60 +259,7 @@ Restart nginx:
287 259  
288 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 264 Adding permission:
346 265  
... ...
lib/support/init-gitlab 0 → 100644
... ... @@ -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 @@
  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 +
... ...