Commit 5d45b44df51558a267bbef890c8641b0d13d6df7
Exists in
master
and in
2 other branches
Merge branch 'passenger_readme' of https://gitlab.com/digital.pardoe/omnibus-gitlab
Conflicts: README.md
Showing
1 changed file
with
73 additions
and
0 deletions
Show diff stats
README.md
@@ -645,6 +645,79 @@ from starting before a given filesystem is mounted, add the following to | @@ -645,6 +645,79 @@ from starting before a given filesystem is mounted, add the following to | ||
645 | # wait for /var/opt/gitlab to be mounted | 645 | # wait for /var/opt/gitlab to be mounted |
646 | high_availability['mountpoint'] = '/var/opt/gitlab' | 646 | high_availability['mountpoint'] = '/var/opt/gitlab' |
647 | ``` | 647 | ``` |
648 | +## Using an existing Passenger/Nginx installation | ||
649 | + | ||
650 | +In some cases you may want to host GitLab using an existing Passenger/Nginx | ||
651 | +installation but still have the convenience of updating and installing using | ||
652 | +the omnibus packages. | ||
653 | + | ||
654 | +First, you'll need to setup your `/etc/gitlab/gitlab.rb` to disable the built-in | ||
655 | +Nginx and Unicorn: | ||
656 | + | ||
657 | +```ruby | ||
658 | +# Disable the built-in nginx | ||
659 | +nginx['enable'] = false | ||
660 | + | ||
661 | +# Disable the built-in unicorn | ||
662 | +unicorn['enable'] = false | ||
663 | + | ||
664 | +# Set the internal API URL | ||
665 | +gitlab_rails['internal_api_url'] = 'http://git.yourdomain.com' | ||
666 | +``` | ||
667 | + | ||
668 | +Make sure you run `sudo gitlab-ctl reconfigure` for the changes to take effect. | ||
669 | + | ||
670 | +Then, in your custom Passenger/Nginx installation, create the following site | ||
671 | +configuration file: | ||
672 | + | ||
673 | +``` | ||
674 | +server { | ||
675 | + listen *:80; | ||
676 | + server_name git.yourdomain.com; | ||
677 | + server_tokens off; | ||
678 | + root /opt/gitlab/embedded/service/gitlab-rails/public; | ||
679 | + | ||
680 | + client_max_body_size 250m; | ||
681 | + | ||
682 | + access_log /var/log/gitlab/nginx/gitlab_access.log; | ||
683 | + error_log /var/log/gitlab/nginx/gitlab_error.log; | ||
684 | + | ||
685 | + # Ensure Passenger uses the bundled Ruby version | ||
686 | + passenger_ruby /opt/gitlab/embedded/bin/ruby; | ||
687 | + | ||
688 | + # Correct the $PATH variable to included packaged executables | ||
689 | + passenger_set_cgi_param PATH "/opt/gitlab/bin:/opt/gitlab/embedded/bin:/usr/local/bin:/usr/bin:/bin"; | ||
690 | + | ||
691 | + # Make sure Passenger runs as the correct user and group to | ||
692 | + # prevent permission issues | ||
693 | + passenger_user git; | ||
694 | + passenger_group git; | ||
695 | + | ||
696 | + # Enable Passenger & keep at least one instance running at all times | ||
697 | + passenger_enabled on; | ||
698 | + passenger_min_instances 1; | ||
699 | + | ||
700 | + error_page 502 /502.html; | ||
701 | +} | ||
702 | +``` | ||
703 | + | ||
704 | +For a typical Passenger installation this file should probably | ||
705 | +be located at `/etc/nginx/sites-available/gitlab` and symlinked to | ||
706 | +`/etc/nginx/sites-enabled/gitlab`. | ||
707 | + | ||
708 | +To ensure that user uploads are accessible your Nginx user (usually `www-data`) | ||
709 | +should be added to the `git` group. This can be done using the following command: | ||
710 | + | ||
711 | +```shell | ||
712 | +sudo usermod -aG git www-data | ||
713 | +``` | ||
714 | + | ||
715 | +Other than the Passenger configuration in place of Unicorn and the lack of HTTPS | ||
716 | +(although this could be enabled) this file is mostly identical to the | ||
717 | +[bundled Nginx configuration](files/gitlab-cookbooks/gitlab/templates/default/nginx-gitlab-http.conf.erb). | ||
718 | + | ||
719 | +Don't forget to restart Nginx to load the new configuration (on Debian-based | ||
720 | +systems `sudo service nginx restart`). | ||
648 | 721 | ||
649 | ## Building your own package | 722 | ## Building your own package |
650 | 723 |