From 98f26a62fc7712e9925ee04100477ec40ff9976e Mon Sep 17 00:00:00 2001 From: hunterlong Date: Mon, 28 Jan 2019 14:45:46 -0800 Subject: [PATCH] POSTGRES_SSL environment variable for ssl_mode --- cmd/cli.go | 1 + core/database.go | 8 +++++++- version.txt | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/cmd/cli.go b/cmd/cli.go index a0db23fa..0cabee45 100644 --- a/cmd/cli.go +++ b/cmd/cli.go @@ -226,6 +226,7 @@ func HelpEcho() { fmt.Println(" DB_PASS - Database password") fmt.Println(" DB_PORT - Database port (5432, 3306, ...)") fmt.Println(" DB_DATABASE - Database connection's database name") + fmt.Println(" POSTGRES_SSL - Enable Postgres SSL Mode 'ssl_mode=enabled' (true/false)") fmt.Println(" GO_ENV - Run Statping in testmode, will bypass HTTP authentication (if set as 'true')") fmt.Println(" NAME - Set a name for the Statping status page") fmt.Println(" DESCRIPTION - Set a description for the Statping status page") diff --git a/core/database.go b/core/database.go index 809c138f..84e471a8 100644 --- a/core/database.go +++ b/core/database.go @@ -26,6 +26,7 @@ import ( _ "github.com/jinzhu/gorm/dialects/postgres" _ "github.com/jinzhu/gorm/dialects/sqlite" "os" + "strconv" "time" ) @@ -238,6 +239,7 @@ func (db *DbConfig) InsertCore() (*Core, error) { // Connect will attempt to connect to the sqlite, postgres, or mysql database func (db *DbConfig) Connect(retry bool, location string) error { + postgresSSL, _ := strconv.ParseBool(os.Getenv("POSTGRES_SSL")) if DbSession != nil { return nil } @@ -255,7 +257,11 @@ func (db *DbConfig) Connect(retry bool, location string) error { host := fmt.Sprintf("%v:%v", Configs.DbHost, Configs.DbPort) conn = fmt.Sprintf("%v:%v@tcp(%v)/%v?charset=utf8&parseTime=True&loc=UTC", Configs.DbUser, Configs.DbPass, host, Configs.DbData) case "postgres": - conn = fmt.Sprintf("host=%v port=%v user=%v dbname=%v password=%v timezone=UTC sslmode=disable", Configs.DbHost, Configs.DbPort, Configs.DbUser, Configs.DbData, Configs.DbPass) + sslMode := "disabled" + if postgresSSL { + sslMode = "enabled" + } + conn = fmt.Sprintf("host=%v port=%v user=%v dbname=%v password=%v timezone=UTC sslmode=%t", Configs.DbHost, Configs.DbPort, Configs.DbUser, Configs.DbData, Configs.DbPass, sslMode) case "mssql": host := fmt.Sprintf("%v:%v", Configs.DbHost, Configs.DbPort) conn = fmt.Sprintf("sqlserver://%v:%v@%v?database=%v", Configs.DbUser, Configs.DbPass, host, Configs.DbData) diff --git a/version.txt b/version.txt index 654589e1..d4f8ba83 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -0.80.38 +0.80.39