aboutsummaryrefslogtreecommitdiff
path: root/cmd/web/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/web/main.go')
-rw-r--r--cmd/web/main.go24
1 files changed, 23 insertions, 1 deletions
diff --git a/cmd/web/main.go b/cmd/web/main.go
index 619cc93..42b672a 100644
--- a/cmd/web/main.go
+++ b/cmd/web/main.go
@@ -1,6 +1,7 @@
package main
import (
+ "database/sql"
"fmt"
"log"
"net/http"
@@ -9,6 +10,8 @@ import (
"github.com/joho/godotenv"
+ _ "github.com/jackc/pgx/v5/stdlib"
+
"paterissa.net/mblog/cmd/web/handlers"
"paterissa.net/mblog/cmd/web/types"
)
@@ -28,6 +31,11 @@ func main() {
app.Env.Webmaster = os.Getenv("webmaster")
app.Env.Db.Name = os.Getenv("db_name")
+ app.Env.Db.Port, err = strconv.ParseUint(os.Getenv("db_port"), 10, 64)
+ if err != nil {
+ app.Env.Db.Port = 5432
+ }
+ app.Env.Db.Host = os.Getenv("db_host")
app.Env.Db.Username = os.Getenv("db_user")
app.Env.Db.Password = os.Getenv("db_pass")
app.Env.AppPort, err = strconv.ParseUint(os.Getenv("web_port"), 10, 64)
@@ -35,7 +43,21 @@ func main() {
app.Env.AppPort = 5005
}
- router := handlers.RegisterEndpoints(app)
+ connStr := fmt.Sprintf("host=%s port=%d user=%s password=%s dbname=%s sslmode=disable",
+ app.Env.Db.Host,
+ app.Env.Db.Port,
+ app.Env.Db.Username,
+ app.Env.Db.Password,
+ app.Env.Db.Name,
+ )
+ db, err := sql.Open("pgx", connStr)
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "Failed to open DB: %v\n", err)
+ os.Exit(1)
+ }
+ defer db.Close()
+
+ router := handlers.RegisterEndpoints(app, db)
srv := &http.Server{
Addr: fmt.Sprintf(":%d", app.Env.AppPort),
ErrorLog: app.Err,