diff --git a/config/config.go b/config/config.go index d5840b7..4739b2c 100644 --- a/config/config.go +++ b/config/config.go @@ -14,6 +14,7 @@ var configFilePath = "config.yaml" type ConfigOptions struct { Domain string `json:"domain" yaml:"domain"` + DatabaseUrl string `json:"database_url" yaml:"database_url"` CFEmail string `json:"cf_email" yaml:"cf_email"` CFKey string `json:"cf_key" yaml:"cf_key"` SourceFiles []string `json:"source-files" yaml:"source-files"` diff --git a/config/config.yaml b/config/config.yaml index 03ad74b..16ca9cd 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -1,6 +1,9 @@ # your domain domain: example.com +# database url +database_url: "" + # cloudflare api cf_email: "" cf_key: "" diff --git a/internal/database/db.go b/internal/database/db.go index 9cbaf11..3c5ad6c 100644 --- a/internal/database/db.go +++ b/internal/database/db.go @@ -4,6 +4,8 @@ import ( "fmt" "os" + "github.com/zu1k/proxypool/config" + "gorm.io/driver/postgres" "gorm.io/gorm" ) @@ -12,6 +14,9 @@ var DB *gorm.DB func connect() (err error) { dsn := "user=proxypool password=proxypool dbname=proxypool port=5432 sslmode=disable TimeZone=Asia/Shanghai" + if url := config.Config.DatabaseUrl; url != "" { + dsn = url + } if url := os.Getenv("DATABASE_URL"); url != "" { dsn = url }