Adjust config for SSL support

This commit is contained in:
Jannis Mattheis
2018-02-18 15:14:39 +01:00
committed by Jannis Mattheis
parent 9d635b15a6
commit 7bbe7d374a
2 changed files with 30 additions and 4 deletions

View File

@@ -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).
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 {
Dialect string `default:"sqlite3"`
Connection string `default:"gotify.db"`

View File

@@ -9,10 +9,13 @@ import (
func TestConfigEnv(t *testing.T) {
os.Setenv("GOTIFY_DEFAULTUSER_NAME", "jmattheis")
os.Setenv("GOTIFY_SERVER_SSL_LETSENCRYPT_HOSTS", "- push.example.tld\n- push.other.tld")
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, []string{"push.example.tld", "push.other.tld"}, conf.Server.SSL.LetsEncrypt.Hosts)
os.Unsetenv("GOTIFY_DEFAULTUSER_NAME")
os.Unsetenv("GOTIFY_SERVER_SSL_LETSENCRYPT_HOSTS")
}
func TestConfigFile(t *testing.T) {
@@ -22,7 +25,13 @@ func TestConfigFile(t *testing.T) {
}()
assert.Nil(t, err)
_, err = file.WriteString(`
port: 1234
server:
port: 1234
ssl:
port: 3333
letsencrypt:
hosts:
- push.example.tld
database:
dialect: mysql
connection: user name
@@ -33,7 +42,9 @@ defaultuser:
file.Close()
assert.Nil(t, err)
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, "12345", conf.DefaultUser.Pass)
assert.Equal(t, "mysql", conf.Database.Dialect)