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 | 645 | # wait for /var/opt/gitlab to be mounted |
646 | 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 | 722 | ## Building your own package |
650 | 723 | ... | ... |