Simplify Heroku deployment

This commit is contained in:
Frédéric Guillot 2018-04-15 20:27:10 -07:00
parent 45dde0cf4a
commit 0429bbb19d
3 changed files with 28 additions and 0 deletions

View File

@ -20,6 +20,10 @@
# name = "github.com/x/y"
# version = "2.4.0"
[metadata.heroku]
root-package = "github.com/miniflux/miniflux"
go-version = "go1.10"
ensure = "false"
[[constraint]]
name = "github.com/PuerkitoBio/goquery"

View File

@ -67,5 +67,15 @@ func Parse() {
return
}
// Run migrations and start the deamon.
if cfg.RunMigrations() {
store.Migrate()
}
// Create admin user and start the deamon.
if cfg.CreateAdmin() {
createAdmin(store)
}
daemon.Run(cfg, store)
}

View File

@ -110,6 +110,10 @@ func (c *Config) DatabaseMaxConnections() int {
// ListenAddr returns the listen address for the HTTP server.
func (c *Config) ListenAddr() string {
if port := os.Getenv("PORT"); port != "" {
return ":" + port
}
return c.get("LISTEN_ADDR", defaultListenAddr)
}
@ -183,6 +187,16 @@ func (c *Config) HasHSTS() bool {
return c.get("DISABLE_HSTS", "") == ""
}
// RunMigrations returns true if the environment variable RUN_MIGRATIONS is not empty.
func (c *Config) RunMigrations() bool {
return c.get("RUN_MIGRATIONS", "") != ""
}
// CreateAdmin returns true if the environment variable CREATE_ADMIN is not empty.
func (c *Config) CreateAdmin() bool {
return c.get("CREATE_ADMIN", "") != ""
}
// NewConfig returns a new Config.
func NewConfig() *Config {
return &Config{IsHTTPS: os.Getenv("HTTPS") != ""}