mirror of https://github.com/grafana/grafana.git
				
				
				
			More work on getting grafana pro to work in sub url
This commit is contained in:
		
							parent
							
								
									f25a415a9e
								
							
						
					
					
						commit
						4cc8a9bd18
					
				|  | @ -19,3 +19,4 @@ data/*.db | |||
| data/log | ||||
| /bin/* | ||||
| /grafana-pro | ||||
| grafana.custom.ini | ||||
|  |  | |||
|  | @ -1,38 +1,9 @@ | |||
| app_name = Grafana | ||||
| app_mode = development | ||||
| 
 | ||||
| [server] | ||||
| protocol = http | ||||
| domain = localhost | ||||
| root_url = %(protocol)s://%(domain)s:%(http_port)s/ | ||||
| http_addr = | ||||
| http_port = 3000 | ||||
| router_logging = false | ||||
| static_root_path = grafana/src | ||||
| 
 | ||||
| [session] | ||||
| ; Either "memory", "file", default is "memory" | ||||
| provider = file | ||||
| ; Provider config options | ||||
| ; memory: not have any config yet | ||||
| ; file: session file path, e.g. `data/sessions` | ||||
| ; redis: config like redis server addr, poolSize, password, e.g. `127.0.0.1:6379,100,grafana` | ||||
| ; mysql: go-sql-driver/mysql dsn config string, e.g. `root:password@/session_table` | ||||
| provider_config = data/sessions | ||||
| ; Session cookie name | ||||
| cookie_name = grafana_sess | ||||
| ; If you use session in https only, default is false | ||||
| cookie_secure = false | ||||
| ; Enable set cookie, default is true | ||||
| enable_set_cookie = true | ||||
| ; Session GC time interval, default is 86400 | ||||
| gc_time_interval = 86400 | ||||
| ; Session life time, default is 86400 | ||||
| session_life_time = 86400 | ||||
| ; session id hash func, Either "sha1", "sha256" or "md5" default is sha1 | ||||
| session_id_hashfunc = sha1 | ||||
| ; Session hash key, default is use random string | ||||
| session_id_hashkey = | ||||
| root_url = %(protocol)s://%(domain)s:%(http_port)s/ | ||||
| 
 | ||||
| [oauth] | ||||
| enabled = true | ||||
|  | @ -53,56 +24,4 @@ scopes = https://www.googleapis.com/auth/userinfo.profile https://www.googleapis | |||
| auth_url = https://accounts.google.com/o/oauth2/auth | ||||
| token_url = https://accounts.google.com/o/oauth2/token | ||||
| 
 | ||||
| [database] | ||||
| ; Either "mysql", "postgres" or "sqlite3", it's your choice | ||||
| type = sqlite3 | ||||
| host = 127.0.0.1:3306 | ||||
| name = grafana | ||||
| user = root | ||||
| PASSWD = | ||||
| ; For "postgres" only, either "disable", "require" or "verify-full" | ||||
| ssl_mode = disable | ||||
| ; For "sqlite3" only | ||||
| path = data/grafana.db | ||||
| 
 | ||||
| ; [database] | ||||
| ; ; Either "mysql", "postgres" or "sqlite3", it's your choice | ||||
| ; type = postgres | ||||
| ; host = 127.0.0.1:5432 | ||||
| ; name = grafana | ||||
| ; user = grafana | ||||
| ; password = grafana | ||||
| ; ; For "postgres" only, either "disable", "require" or "verify-full" | ||||
| ; ssl_mode = disable | ||||
| ; ; For "sqlite3" only | ||||
| ; path = data/grafana.db | ||||
| ; | ||||
| [log] | ||||
| root_path = | ||||
| ; Either "console", "file", "conn", "smtp" or "database", default is "console" | ||||
| ; Use comma to separate multiple modes, e.g. "console, file" | ||||
| mode = console | ||||
| ; Buffer length of channel, keep it as it is if you don't know what it is. | ||||
| buffer_len = 10000 | ||||
| ; Either "Trace", "Debug", "Info", "Warn", "Error", "Critical", default is "Trace" | ||||
| level = Trace | ||||
| 
 | ||||
| ; For "console" mode only | ||||
| [log.console] | ||||
| level = | ||||
| 
 | ||||
| ; For "file" mode only | ||||
| [log.file] | ||||
| level = | ||||
| ; This enables automated log rotate(switch of following options), default is true | ||||
| log_rotate = true | ||||
| ; Max line number of single file, default is 1000000 | ||||
| max_lines = 1000000 | ||||
| ; Max size shift of single file, default is 28 means 1 << 28, 256MB | ||||
| max_lines_shift = 28 | ||||
| ; Segment log daily, default is true | ||||
| daily_rotate = true | ||||
| ; Expired days of log file(delete after max days), default is 7 | ||||
| max_days = 7 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										2
									
								
								grafana
								
								
								
								
							
							
								
								
								
								
								
								
							
						
						
									
										2
									
								
								grafana
								
								
								
								
							|  | @ -1 +1 @@ | |||
| Subproject commit 5feed2344ab8a5eb65ffeda9ccae8b768e9b8764 | ||||
| Subproject commit 9be53f0a79753d22205a5db6ac42aa1e455a58c3 | ||||
|  | @ -6,6 +6,7 @@ import ( | |||
| 	"github.com/torkelo/grafana-pro/pkg/bus" | ||||
| 	"github.com/torkelo/grafana-pro/pkg/middleware" | ||||
| 	m "github.com/torkelo/grafana-pro/pkg/models" | ||||
| 	"github.com/torkelo/grafana-pro/pkg/setting" | ||||
| ) | ||||
| 
 | ||||
| func getFrontendSettings(c *middleware.Context) (map[string]interface{}, error) { | ||||
|  | @ -28,7 +29,7 @@ func getFrontendSettings(c *middleware.Context) (map[string]interface{}, error) | |||
| 		url := ds.Url | ||||
| 
 | ||||
| 		if ds.Access == m.DS_ACCESS_PROXY { | ||||
| 			url = "/api/datasources/proxy/" + strconv.FormatInt(ds.Id, 10) | ||||
| 			url = setting.AppSubUrl + "/api/datasources/proxy/" + strconv.FormatInt(ds.Id, 10) | ||||
| 		} | ||||
| 
 | ||||
| 		var dsMap = map[string]interface{}{ | ||||
|  | @ -56,12 +57,12 @@ func getFrontendSettings(c *middleware.Context) (map[string]interface{}, error) | |||
| 	// add grafana backend data source
 | ||||
| 	datasources["grafana"] = map[string]interface{}{ | ||||
| 		"type":      "grafana", | ||||
| 		"url":       "", | ||||
| 		"grafanaDB": true, | ||||
| 	} | ||||
| 
 | ||||
| 	jsonObj := map[string]interface{}{ | ||||
| 		"datasources": datasources, | ||||
| 		"appSubUrl":   setting.AppSubUrl, | ||||
| 	} | ||||
| 
 | ||||
| 	return jsonObj, nil | ||||
|  |  | |||
|  | @ -80,39 +80,49 @@ func getWorkDir() string { | |||
| 	return p | ||||
| } | ||||
| 
 | ||||
| func findConfigFile() string { | ||||
| func findConfigFiles() []string { | ||||
| 	WorkDir = getWorkDir() | ||||
| 	ConfRootPath = path.Join(WorkDir, "conf") | ||||
| 	filenames := make([]string, 0) | ||||
| 
 | ||||
| 	configFile := path.Join(ConfRootPath, "grafana.ini") | ||||
| 	//log.Info("Looking for config file: %v", configFile)
 | ||||
| 	if com.IsFile(configFile) { | ||||
| 		return configFile | ||||
| 	} | ||||
| 	configFile = path.Join(ConfRootPath, "grafana.dev.ini") | ||||
| 	//log.Info("Looking for config file: %v", configFile)
 | ||||
| 	if com.IsFile(configFile) { | ||||
| 		return configFile | ||||
| 	} | ||||
| 	configFile = path.Join(ConfRootPath, "grafana.example.ini") | ||||
| 	//log.Info("Looking for config file: %v", configFile)
 | ||||
| 	if com.IsFile(configFile) { | ||||
| 		return configFile | ||||
| 		filenames = append(filenames, configFile) | ||||
| 	} | ||||
| 
 | ||||
| 	configFile = path.Join(ConfRootPath, "grafana.dev.ini") | ||||
| 	if com.IsFile(configFile) { | ||||
| 		filenames = append(filenames, configFile) | ||||
| 	} | ||||
| 
 | ||||
| 	configFile = path.Join(ConfRootPath, "grafana.custom.ini") | ||||
| 	if com.IsFile(configFile) { | ||||
| 		filenames = append(filenames, configFile) | ||||
| 	} | ||||
| 
 | ||||
| 	if len(filenames) == 0 { | ||||
| 		log.Fatal(3, "Could not find any config file") | ||||
| 	return "" | ||||
| 	} | ||||
| 
 | ||||
| 	return filenames | ||||
| } | ||||
| 
 | ||||
| func NewConfigContext() { | ||||
| 	configFile := findConfigFile() | ||||
| 	configFiles := findConfigFiles() | ||||
| 
 | ||||
| 	log.Info("Loading config file: %v", configFile) | ||||
| 	log.Info("Loading config files: %v", configFiles) | ||||
| 	var err error | ||||
| 
 | ||||
| 	Cfg, err = goconfig.LoadConfigFile(configFile) | ||||
| 	Cfg, err = goconfig.LoadConfigFile(configFiles[0]) | ||||
| 	if err != nil { | ||||
| 		log.Fatal(4, "Fail to parse %v, error: %v", configFile, err) | ||||
| 		log.Fatal(4, "Fail to parse config file, error: %v", err) | ||||
| 	} | ||||
| 
 | ||||
| 	if len(configFiles) > 1 { | ||||
| 		err = Cfg.AppendFiles(configFiles[1:]...) | ||||
| 		if err != nil { | ||||
| 			log.Fatal(4, "Fail to parse config file, error: %v", err) | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	AppName = Cfg.MustValue("", "app_name", "Grafana") | ||||
|  | @ -128,7 +138,6 @@ func NewConfigContext() { | |||
| 	} | ||||
| 
 | ||||
| 	AppSubUrl = strings.TrimSuffix(url.Path, "/") | ||||
| 	log.Info("AppSubUrl: %v", AppSubUrl) | ||||
| 
 | ||||
| 	Protocol = HTTP | ||||
| 	if Cfg.MustValue("server", "protocol") == "https" { | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue