Fixed ENV support

This commit is contained in:
Magnus Åhall 2025-08-06 10:56:56 +02:00
parent dc8a638814
commit 94512dff5e
3 changed files with 46 additions and 9 deletions

18
Dockerfile Normal file
View file

@ -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"]

1
db.go
View file

@ -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
}

36
main.go
View file

@ -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()
}