From 94512dff5ee7039756baa285739cd0a3411c3907 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Magnus=20=C3=85hall?= Date: Wed, 6 Aug 2025 10:56:56 +0200 Subject: [PATCH] Fixed ENV support --- Dockerfile | 18 ++++++++++++++++++ db.go | 1 - main.go | 36 ++++++++++++++++++++++++++++-------- 3 files changed, 46 insertions(+), 9 deletions(-) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..2e79155 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,18 @@ +FROM alpine:latest + +COPY nodebb_invite_link /usr/local/bin/ + +VOLUME /var/lib/nodebb_invite_link +EXPOSE 9876 + +ENV DOMAIN "" +ENV "INVITE_LISTEN" 9876 +ENV "INVITE_SEQ" "/var/lib/nodebb_invite_link/sequence" + +ENV "INVITE_DBHOST" "postgres" +ENV "INVITE_DBPORT" 5432 +ENV "INVITE_DBNAME" "nodebb" +ENV "INVITE_DBUSERNAME" "nodebb" +ENV "INVITE_DBPASSWORD" "nodebb" + +CMD ["/usr/local/bin/nodebb_invite_link"] diff --git a/db.go b/db.go index cd4576f..7a67f96 100644 --- a/db.go +++ b/db.go @@ -22,7 +22,6 @@ func initDB(host string, port int, dbName, username, password string) (err error password, dbName, ) - if db, err = sqlx.Connect("postgres", dbConn); err != nil { return } diff --git a/main.go b/main.go index f161df2..918df28 100644 --- a/main.go +++ b/main.go @@ -30,15 +30,35 @@ var ( ) func init() { + var err error + + port := 5432 + if os.Getenv("INVITE_DBPORT") != "" { + port, err = strconv.Atoi(os.Getenv("INVITE_DBPORT")) + if err != nil { + fmt.Println(err) + os.Exit(1) + } + } + + listen := 9876 + if os.Getenv("INVITE_LISTEN") != "" { + listen, err = strconv.Atoi(os.Getenv("INVITE_LISTEN")) + if err != nil { + fmt.Println(err) + os.Exit(1) + } + } + flag.BoolVar(&flagVersion, "version", false, "Display version and exit") - flag.StringVar(&flagHost, "host", "", "Database host") - flag.StringVar(&flagUsername, "username", "", "Database username") - flag.StringVar(&flagPassword, "password", "", "Database password") - flag.StringVar(&flagDatabase, "database", "", "Database name") - flag.IntVar(&flagPort, "port", 5432, "Database port") - flag.IntVar(&flagListenPort, "listen", 9876, "Web server listen port") - flag.StringVar(&flagSequenceFilename, "seq", "sequence", "Sequence filename") - flag.StringVar(&flagDomain, "domain", "", "Domain FQDN") + flag.StringVar(&flagHost, "host", os.Getenv("INVITE_DBHOST"), "Database host") + flag.StringVar(&flagUsername, "username", os.Getenv("INVITE_DBUSERNAME"), "Database username") + flag.StringVar(&flagPassword, "password", os.Getenv("INVITE_DBPASSWORD"), "Database password") + flag.StringVar(&flagDatabase, "database", os.Getenv("INVITE_DBNAME"), "Database name") + flag.IntVar(&flagPort, "port", port, "Database port") + flag.IntVar(&flagListenPort, "listen", listen, "Web server listen port") + flag.StringVar(&flagSequenceFilename, "seq", os.Getenv("INVITE_SEQ"), "Sequence filename") + flag.StringVar(&flagDomain, "domain", os.Getenv("INVITE_DOMAIN"), "Domain FQDN") flag.Parse() }