mirror of
				https://github.com/juanfont/headscale.git
				synced 2025-10-28 10:51:44 +01:00 
			
		
		
		
	add env var to specify config location
This commit is contained in:
		
							parent
							
								
									84a5edf345
								
							
						
					
					
						commit
						81f91f03b4
					
				@ -25,6 +25,9 @@ func init() {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func initConfig() {
 | 
					func initConfig() {
 | 
				
			||||||
 | 
						if cfgFile == "" {
 | 
				
			||||||
 | 
							cfgFile = os.Getenv("HEADSCALE_CONFIG")
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	if cfgFile != "" {
 | 
						if cfgFile != "" {
 | 
				
			||||||
		err := headscale.LoadConfig(cfgFile, true)
 | 
							err := headscale.LoadConfig(cfgFile, true)
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
 | 
				
			|||||||
@ -1739,6 +1739,8 @@ func (s *IntegrationCLITestSuite) TestLoadConfigFromCommand() {
 | 
				
			|||||||
	assert.Nil(s.T(), err)
 | 
						assert.Nil(s.T(), err)
 | 
				
			||||||
	altConfig, err := os.ReadFile("integration_test/etc/alt-config.dump.gold.yaml")
 | 
						altConfig, err := os.ReadFile("integration_test/etc/alt-config.dump.gold.yaml")
 | 
				
			||||||
	assert.Nil(s.T(), err)
 | 
						assert.Nil(s.T(), err)
 | 
				
			||||||
 | 
						altEnvConfig, err := os.ReadFile("integration_test/etc/alt-env-config.dump.gold.yaml")
 | 
				
			||||||
 | 
						assert.Nil(s.T(), err)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	_, err = ExecuteCommand(
 | 
						_, err = ExecuteCommand(
 | 
				
			||||||
		&s.headscale,
 | 
							&s.headscale,
 | 
				
			||||||
@ -1771,4 +1773,40 @@ func (s *IntegrationCLITestSuite) TestLoadConfigFromCommand() {
 | 
				
			|||||||
	assert.Nil(s.T(), err)
 | 
						assert.Nil(s.T(), err)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	assert.YAMLEq(s.T(), string(altConfig), string(altDumpConfig))
 | 
						assert.YAMLEq(s.T(), string(altConfig), string(altDumpConfig))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						_, err = ExecuteCommand(
 | 
				
			||||||
 | 
							&s.headscale,
 | 
				
			||||||
 | 
							[]string{
 | 
				
			||||||
 | 
								"headscale",
 | 
				
			||||||
 | 
								"dumpConfig",
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							[]string{
 | 
				
			||||||
 | 
								"HEADSCALE_CONFIG=/etc/headscale/alt-env-config.yaml",
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						)
 | 
				
			||||||
 | 
						assert.Nil(s.T(), err)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						altEnvDumpConfig, err := os.ReadFile("integration_test/etc/config.dump.yaml")
 | 
				
			||||||
 | 
						assert.Nil(s.T(), err)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						assert.YAMLEq(s.T(), string(altEnvConfig), string(altEnvDumpConfig))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						_, err = ExecuteCommand(
 | 
				
			||||||
 | 
							&s.headscale,
 | 
				
			||||||
 | 
							[]string{
 | 
				
			||||||
 | 
								"headscale",
 | 
				
			||||||
 | 
								"-c",
 | 
				
			||||||
 | 
								"/etc/headscale/alt-config.yaml",
 | 
				
			||||||
 | 
								"dumpConfig",
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							[]string{
 | 
				
			||||||
 | 
								"HEADSCALE_CONFIG=/etc/headscale/alt-env-config.yaml",
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						)
 | 
				
			||||||
 | 
						assert.Nil(s.T(), err)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						altDumpConfig, err = os.ReadFile("integration_test/etc/config.dump.yaml")
 | 
				
			||||||
 | 
						assert.Nil(s.T(), err)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						assert.YAMLEq(s.T(), string(altConfig), string(altDumpConfig))
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										47
									
								
								integration_test/etc/alt-env-config.dump.gold.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								integration_test/etc/alt-env-config.dump.gold.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,47 @@
 | 
				
			|||||||
 | 
					acl_policy_path: ""
 | 
				
			||||||
 | 
					cli:
 | 
				
			||||||
 | 
					  insecure: false
 | 
				
			||||||
 | 
					  timeout: 5s
 | 
				
			||||||
 | 
					db_path: /tmp/integration_test_db.sqlite3
 | 
				
			||||||
 | 
					db_type: sqlite3
 | 
				
			||||||
 | 
					derp:
 | 
				
			||||||
 | 
					  auto_update_enabled: false
 | 
				
			||||||
 | 
					  server:
 | 
				
			||||||
 | 
					    enabled: false
 | 
				
			||||||
 | 
					    stun:
 | 
				
			||||||
 | 
					      enabled: true
 | 
				
			||||||
 | 
					  update_frequency: 1m
 | 
				
			||||||
 | 
					  urls:
 | 
				
			||||||
 | 
					    - https://controlplane.tailscale.com/derpmap/default
 | 
				
			||||||
 | 
					dns_config:
 | 
				
			||||||
 | 
					  base_domain: headscale.net
 | 
				
			||||||
 | 
					  domains: []
 | 
				
			||||||
 | 
					  magic_dns: true
 | 
				
			||||||
 | 
					  nameservers:
 | 
				
			||||||
 | 
					    - 1.1.1.1
 | 
				
			||||||
 | 
					ephemeral_node_inactivity_timeout: 30m
 | 
				
			||||||
 | 
					node_update_check_interval: 100s
 | 
				
			||||||
 | 
					grpc_allow_insecure: false
 | 
				
			||||||
 | 
					grpc_listen_addr: :50443
 | 
				
			||||||
 | 
					ip_prefixes:
 | 
				
			||||||
 | 
					  - fd7a:115c:a1e0::/48
 | 
				
			||||||
 | 
					  - 100.64.0.0/10
 | 
				
			||||||
 | 
					listen_addr: 0.0.0.0:18080
 | 
				
			||||||
 | 
					log_level: disabled
 | 
				
			||||||
 | 
					logtail:
 | 
				
			||||||
 | 
					  enabled: false
 | 
				
			||||||
 | 
					metrics_listen_addr: 127.0.0.1:19090
 | 
				
			||||||
 | 
					oidc:
 | 
				
			||||||
 | 
					  scope:
 | 
				
			||||||
 | 
					    - openid
 | 
				
			||||||
 | 
					    - profile
 | 
				
			||||||
 | 
					    - email
 | 
				
			||||||
 | 
					  strip_email_domain: true
 | 
				
			||||||
 | 
					private_key_path: private.key
 | 
				
			||||||
 | 
					server_url: http://headscale:18080
 | 
				
			||||||
 | 
					tls_client_auth_mode: relaxed
 | 
				
			||||||
 | 
					tls_letsencrypt_cache_dir: /var/www/.cache
 | 
				
			||||||
 | 
					tls_letsencrypt_challenge_type: HTTP-01
 | 
				
			||||||
 | 
					unix_socket: /var/run/headscale.sock
 | 
				
			||||||
 | 
					unix_socket_permission: "0o770"
 | 
				
			||||||
 | 
					randomize_client_port: false
 | 
				
			||||||
							
								
								
									
										25
									
								
								integration_test/etc/alt-env-config.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								integration_test/etc/alt-env-config.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,25 @@
 | 
				
			|||||||
 | 
					log_level: trace
 | 
				
			||||||
 | 
					acl_policy_path: ""
 | 
				
			||||||
 | 
					db_type: sqlite3
 | 
				
			||||||
 | 
					ephemeral_node_inactivity_timeout: 30m
 | 
				
			||||||
 | 
					node_update_check_interval: 100s
 | 
				
			||||||
 | 
					ip_prefixes:
 | 
				
			||||||
 | 
					  - fd7a:115c:a1e0::/48
 | 
				
			||||||
 | 
					  - 100.64.0.0/10
 | 
				
			||||||
 | 
					dns_config:
 | 
				
			||||||
 | 
					  base_domain: headscale.net
 | 
				
			||||||
 | 
					  magic_dns: true
 | 
				
			||||||
 | 
					  domains: []
 | 
				
			||||||
 | 
					  nameservers:
 | 
				
			||||||
 | 
					    - 1.1.1.1
 | 
				
			||||||
 | 
					db_path: /tmp/integration_test_db.sqlite3
 | 
				
			||||||
 | 
					private_key_path: private.key
 | 
				
			||||||
 | 
					listen_addr: 0.0.0.0:18080
 | 
				
			||||||
 | 
					metrics_listen_addr: 127.0.0.1:19090
 | 
				
			||||||
 | 
					server_url: http://headscale:18080
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					derp:
 | 
				
			||||||
 | 
					  urls:
 | 
				
			||||||
 | 
					    - https://controlplane.tailscale.com/derpmap/default
 | 
				
			||||||
 | 
					  auto_update_enabled: false
 | 
				
			||||||
 | 
					  update_frequency: 1m
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user