Support POSTGRES_URL environment variable for the Transcoder service

Signed-off-by: Fred Heinecke <fred.heinecke@yahoo.com>
This commit is contained in:
Fred Heinecke 2025-04-24 05:29:55 +00:00 committed by solidDoWant
parent f2caf1a975
commit 1c8cbab989
No known key found for this signature in database
GPG Key ID: 8FB1B42C043D666B
2 changed files with 19 additions and 12 deletions

View File

@ -21,6 +21,8 @@ GOCODER_VAAPI_RENDERER="/dev/dri/renderD128"
GOCODER_QSV_RENDERER="/dev/dri/renderD128"
# Database things
# Setting this ignores the below connection variables and overrides any default values
# POSTGRES_URL=postgres://user:password@host:port/dbname?sslmode=disable
POSTGRES_USER=
POSTGRES_PASSWORD=
POSTGRES_DB=

View File

@ -23,20 +23,25 @@ type MetadataService struct {
}
func NewMetadataService() (*MetadataService, error) {
con := fmt.Sprintf(
"postgresql://%v:%v@%v:%v/%v?application_name=gocoder&sslmode=%s",
url.QueryEscape(os.Getenv("POSTGRES_USER")),
url.QueryEscape(os.Getenv("POSTGRES_PASSWORD")),
url.QueryEscape(os.Getenv("POSTGRES_SERVER")),
url.QueryEscape(os.Getenv("POSTGRES_PORT")),
url.QueryEscape(os.Getenv("POSTGRES_DB")),
url.QueryEscape(GetEnvOr("POSTGRES_SSLMODE", "disable")),
)
schema := GetEnvOr("POSTGRES_SCHEMA", "gocoder")
if schema != "disabled" {
con = fmt.Sprintf("%s&search_path=%s", con, url.QueryEscape(schema))
connectionString := os.Getenv("POSTGRES_URL")
if connectionString == "" {
connectionString = fmt.Sprintf(
"postgresql://%v:%v@%v:%v/%v?application_name=gocoder&sslmode=%s",
url.QueryEscape(os.Getenv("POSTGRES_USER")),
url.QueryEscape(os.Getenv("POSTGRES_PASSWORD")),
url.QueryEscape(os.Getenv("POSTGRES_SERVER")),
url.QueryEscape(os.Getenv("POSTGRES_PORT")),
url.QueryEscape(os.Getenv("POSTGRES_DB")),
url.QueryEscape(GetEnvOr("POSTGRES_SSLMODE", "disable")),
)
if schema != "disabled" {
connectionString = fmt.Sprintf("%s&search_path=%s", connectionString, url.QueryEscape(schema))
}
}
db, err := sql.Open("postgres", con)
db, err := sql.Open("postgres", connectionString)
if err != nil {
fmt.Printf("Could not connect to database, check your env variables!")
return nil, err