diff --git a/config.json.sample b/config.json.sample index f38ab93..a77a167 100644 --- a/config.json.sample +++ b/config.json.sample @@ -1,13 +1,15 @@ { "WebUrl": "https://domain.com", + "Address": "", "Port": 8080, "ApiPrefix": "", "KeyFile": "", "CertFile": "", + "DatabaseAddress": "", "Database": "openaccounting", "User": "openaccounting", "Password": "openaccounting", "SendgridKey": "", "SendgridEmail": "noreply@domain.com", "SendgridSender": "Sender" -} \ No newline at end of file +} diff --git a/core/model/types/config.go b/core/model/types/config.go index 92b1ef0..65e5842 100644 --- a/core/model/types/config.go +++ b/core/model/types/config.go @@ -1,15 +1,17 @@ package types type Config struct { - WebUrl string - Port int - ApiPrefix string - KeyFile string - CertFile string - Database string - User string - Password string - SendgridKey string - SendgridEmail string - SendgridSender string + WebUrl string + Address string + Port int + ApiPrefix string + KeyFile string + CertFile string + DatabaseAddress string + Database string + User string + Password string + SendgridKey string + SendgridEmail string + SendgridSender string } diff --git a/core/server.go b/core/server.go index 817bac9..71457bc 100644 --- a/core/server.go +++ b/core/server.go @@ -2,17 +2,18 @@ package main import ( "encoding/json" + "fmt" + "log" + "net/http" + "os" + "strconv" + "github.com/openaccounting/oa-server/core/api" "github.com/openaccounting/oa-server/core/auth" "github.com/openaccounting/oa-server/core/model" "github.com/openaccounting/oa-server/core/model/db" "github.com/openaccounting/oa-server/core/model/types" "github.com/openaccounting/oa-server/core/util" - "log" - "net/http" - "os" - "strconv" - //"fmt" ) func main() { @@ -21,19 +22,22 @@ func main() { file, err := os.Open("./config.json") if err != nil { - log.Fatal(err) + log.Fatal(fmt.Errorf("failed to open ./config.json with: %s", err.Error())) } decoder := json.NewDecoder(file) err = decoder.Decode(&config) if err != nil { - log.Fatal(err) + log.Fatal(fmt.Errorf("failed to decode ./config.json with: %s", err.Error())) } - connectionString := config.User + ":" + config.Password + "@/" + config.Database + connectionString := config.User + ":" + config.Password + "@" + config.DatabaseAddress + "/" + config.Database db, err := db.NewDB(connectionString) + if err != nil { + log.Fatal(fmt.Errorf("failed to connect to database with: %s", err.Error())) + } bc := &util.StandardBcrypt{} @@ -41,10 +45,14 @@ func main() { auth.NewAuthService(db, bc) app, err := api.Init(config.ApiPrefix) - if err != nil { - log.Fatal(err) + log.Fatal(fmt.Errorf("failed to create api instance with: %s", err.Error())) } - log.Fatal(http.ListenAndServeTLS(":"+strconv.Itoa(config.Port), config.CertFile, config.KeyFile, app.MakeHandler())) + if config.CertFile == "" || config.KeyFile == "" { + err = http.ListenAndServe(config.Address+":"+strconv.Itoa(config.Port), app.MakeHandler()) + } else { + err = http.ListenAndServeTLS(config.Address+":"+strconv.Itoa(config.Port), config.CertFile, config.KeyFile, app.MakeHandler()) + } + log.Fatal(fmt.Errorf("failed to start server with: %s", err.Error())) }