Commit 151ada76 authored by Saito's avatar Saito

Merge pull request #2162 from frohoff/config-improvements

support for running in non-root directory/path (RAILS_RELATIVE_URL_ROOT)
parents cfca11f2 21e55ca3
...@@ -6,6 +6,7 @@ class Notify < ActionMailer::Base ...@@ -6,6 +6,7 @@ class Notify < ActionMailer::Base
default_url_options[:host] = Gitlab.config.gitlab.host default_url_options[:host] = Gitlab.config.gitlab.host
default_url_options[:protocol] = Gitlab.config.gitlab.protocol default_url_options[:protocol] = Gitlab.config.gitlab.protocol
default_url_options[:port] = Gitlab.config.gitlab.port if Gitlab.config.gitlab_on_non_standard_port? default_url_options[:port] = Gitlab.config.gitlab.port if Gitlab.config.gitlab_on_non_standard_port?
default_url_options[:script_name] = Gitlab.config.gitlab.relative_url_root
default from: Gitlab.config.gitlab.email_from default from: Gitlab.config.gitlab.email_from
......
# This file is used by Rack-based servers to start the application. # This file is used by Rack-based servers to start the application.
require ::File.expand_path('../config/environment', __FILE__) require ::File.expand_path('../config/environment', __FILE__)
run Gitlab::Application
map ENV['RAILS_RELATIVE_URL_ROOT'] || "/" do
run Gitlab::Application
end
...@@ -18,6 +18,9 @@ gitlab: ...@@ -18,6 +18,9 @@ gitlab:
host: localhost host: localhost
port: 80 port: 80
https: false https: false
# uncomment and customize to run in non-root path
# note that ENV['RAILS_RELATIVE_URL_ROOT'] in config/unicorn.rb may need to be changed
# relative_url_root: /gitlab
## Email settings ## Email settings
# Email address used in the "From" field in mails sent by GitLab # Email address used in the "From" field in mails sent by GitLab
......
...@@ -25,7 +25,8 @@ class Settings < Settingslogic ...@@ -25,7 +25,8 @@ class Settings < Settingslogic
[ gitlab.protocol, [ gitlab.protocol,
"://", "://",
gitlab.host, gitlab.host,
custom_port custom_port,
gitlab.relative_url_root
].join('') ].join('')
end end
end end
...@@ -45,6 +46,7 @@ Settings.gitlab['default_projects_limit'] ||= 10 ...@@ -45,6 +46,7 @@ Settings.gitlab['default_projects_limit'] ||= 10
Settings.gitlab['host'] ||= 'localhost' Settings.gitlab['host'] ||= 'localhost'
Settings.gitlab['https'] ||= false Settings.gitlab['https'] ||= false
Settings.gitlab['port'] ||= Settings.gitlab.https ? 443 : 80 Settings.gitlab['port'] ||= Settings.gitlab.https ? 443 : 80
Settings.gitlab['relative_url_root'] ||= ''
Settings.gitlab['protocol'] ||= Settings.gitlab.https ? "https" : "http" Settings.gitlab['protocol'] ||= Settings.gitlab.https ? "https" : "http"
Settings.gitlab['email_from'] ||= "gitlab@#{Settings.gitlab.host}" Settings.gitlab['email_from'] ||= "gitlab@#{Settings.gitlab.host}"
Settings.gitlab['url'] ||= Settings.send(:build_gitlab_url) Settings.gitlab['url'] ||= Settings.send(:build_gitlab_url)
......
...@@ -18,7 +18,7 @@ Gitlab::Application.routes.draw do ...@@ -18,7 +18,7 @@ Gitlab::Application.routes.draw do
project_root: Gitlab.config.gitolite.repos_path, project_root: Gitlab.config.gitolite.repos_path,
upload_pack: Gitlab.config.gitolite.upload_pack, upload_pack: Gitlab.config.gitolite.upload_pack,
receive_pack: Gitlab.config.gitolite.receive_pack receive_pack: Gitlab.config.gitolite.receive_pack
}), at: '/:path', constraints: { path: /[-\/\w\.-]+\.git/ } }), at: '/', constraints: lambda { |request| /[-\/\w\.-]+\.git/.match(request.path_info) }
# #
# Help # Help
......
# uncomment and customize to run in non-root path
# note that config/gitlab.yml web path should also be changed
# ENV['RAILS_RELATIVE_URL_ROOT'] = "/gitlab"
app_dir = "/home/gitlab/gitlab/" app_dir = "/home/gitlab/gitlab/"
worker_processes 2 worker_processes 2
working_directory app_dir working_directory app_dir
......
...@@ -17,10 +17,6 @@ module Grack ...@@ -17,10 +17,6 @@ module Grack
# Pass Gitolite update hook # Pass Gitolite update hook
ENV['GL_BYPASS_UPDATE_HOOK'] = "true" ENV['GL_BYPASS_UPDATE_HOOK'] = "true"
# Need this patch due to the rails mount
@env['PATH_INFO'] = @request.path
@env['SCRIPT_NAME'] = ""
# Find project by PATH_INFO from env # Find project by PATH_INFO from env
if m = /^\/([\w\.\/-]+)\.git/.match(@request.path_info).to_a if m = /^\/([\w\.\/-]+)\.git/.match(@request.path_info).to_a
self.project = Project.find_with_namespace(m.last) self.project = Project.find_with_namespace(m.last)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment