Adjust config for SSL support
This commit is contained in:
parent
9d635b15a6
commit
7bbe7d374a
|
|
@ -4,7 +4,22 @@ import "github.com/jinzhu/configor"
|
||||||
|
|
||||||
// Configuration is stuff that can be configured externally per env variables or config file (config.yml).
|
// Configuration is stuff that can be configured externally per env variables or config file (config.yml).
|
||||||
type Configuration struct {
|
type Configuration struct {
|
||||||
Port int `default:"8080"`
|
Server struct {
|
||||||
|
Port int `default:"80"`
|
||||||
|
SSL struct {
|
||||||
|
Enabled *bool `default:"false"`
|
||||||
|
RedirectToHTTPS *bool `default:"true"`
|
||||||
|
Port int `default:"443"`
|
||||||
|
CertFile string `default:""`
|
||||||
|
CertKey string `default:""`
|
||||||
|
LetsEncrypt struct {
|
||||||
|
Enabled *bool `default:"false"`
|
||||||
|
AcceptTOS *bool `default:"false"`
|
||||||
|
Cache string `default:"certs"`
|
||||||
|
Hosts []string
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Database struct {
|
Database struct {
|
||||||
Dialect string `default:"sqlite3"`
|
Dialect string `default:"sqlite3"`
|
||||||
Connection string `default:"gotify.db"`
|
Connection string `default:"gotify.db"`
|
||||||
|
|
|
||||||
|
|
@ -9,10 +9,13 @@ import (
|
||||||
|
|
||||||
func TestConfigEnv(t *testing.T) {
|
func TestConfigEnv(t *testing.T) {
|
||||||
os.Setenv("GOTIFY_DEFAULTUSER_NAME", "jmattheis")
|
os.Setenv("GOTIFY_DEFAULTUSER_NAME", "jmattheis")
|
||||||
|
os.Setenv("GOTIFY_SERVER_SSL_LETSENCRYPT_HOSTS", "- push.example.tld\n- push.other.tld")
|
||||||
conf := Get()
|
conf := Get()
|
||||||
assert.Equal(t, 8080, conf.Port, "should use defaults")
|
assert.Equal(t, 80, conf.Server.Port, "should use defaults")
|
||||||
assert.Equal(t, "jmattheis", conf.DefaultUser.Name, "should not use default but env var")
|
assert.Equal(t, "jmattheis", conf.DefaultUser.Name, "should not use default but env var")
|
||||||
|
assert.Equal(t, []string{"push.example.tld", "push.other.tld"}, conf.Server.SSL.LetsEncrypt.Hosts)
|
||||||
os.Unsetenv("GOTIFY_DEFAULTUSER_NAME")
|
os.Unsetenv("GOTIFY_DEFAULTUSER_NAME")
|
||||||
|
os.Unsetenv("GOTIFY_SERVER_SSL_LETSENCRYPT_HOSTS")
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestConfigFile(t *testing.T) {
|
func TestConfigFile(t *testing.T) {
|
||||||
|
|
@ -22,7 +25,13 @@ func TestConfigFile(t *testing.T) {
|
||||||
}()
|
}()
|
||||||
assert.Nil(t, err)
|
assert.Nil(t, err)
|
||||||
_, err = file.WriteString(`
|
_, err = file.WriteString(`
|
||||||
port: 1234
|
server:
|
||||||
|
port: 1234
|
||||||
|
ssl:
|
||||||
|
port: 3333
|
||||||
|
letsencrypt:
|
||||||
|
hosts:
|
||||||
|
- push.example.tld
|
||||||
database:
|
database:
|
||||||
dialect: mysql
|
dialect: mysql
|
||||||
connection: user name
|
connection: user name
|
||||||
|
|
@ -33,7 +42,9 @@ defaultuser:
|
||||||
file.Close()
|
file.Close()
|
||||||
assert.Nil(t, err)
|
assert.Nil(t, err)
|
||||||
conf := Get()
|
conf := Get()
|
||||||
assert.Equal(t, 1234, conf.Port)
|
assert.Equal(t, 1234, conf.Server.Port)
|
||||||
|
assert.Equal(t, 3333, conf.Server.SSL.Port)
|
||||||
|
assert.Equal(t, []string{"push.example.tld"}, conf.Server.SSL.LetsEncrypt.Hosts)
|
||||||
assert.Equal(t, "nicories", conf.DefaultUser.Name)
|
assert.Equal(t, "nicories", conf.DefaultUser.Name)
|
||||||
assert.Equal(t, "12345", conf.DefaultUser.Pass)
|
assert.Equal(t, "12345", conf.DefaultUser.Pass)
|
||||||
assert.Equal(t, "mysql", conf.Database.Dialect)
|
assert.Equal(t, "mysql", conf.Database.Dialect)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue