photoprism/internal/config/server.go

115 lines
3 KiB
Go
Raw Normal View History

package config
import (
"path/filepath"
"github.com/photoprism/photoprism/pkg/fs"
)
// DetachServer returns true if server should detach from console (daemon mode).
func (c *Config) DetachServer() bool {
return c.params.DetachServer
}
// HttpServerHost returns the built-in HTTP server host name or IP address (empty for all interfaces).
func (c *Config) HttpServerHost() string {
if c.params.HttpServerHost == "" {
return "0.0.0.0"
}
return c.params.HttpServerHost
}
// HttpServerPort returns the built-in HTTP server port.
func (c *Config) HttpServerPort() int {
if c.params.HttpServerPort == 0 {
return 2342
}
return c.params.HttpServerPort
}
// HttpServerMode returns the server mode.
func (c *Config) HttpServerMode() string {
if c.params.HttpServerMode == "" {
if c.Debug() {
return "debug"
}
return "release"
}
return c.params.HttpServerMode
}
// HttpServerPassword returns the password for the user interface (optional).
func (c *Config) HttpServerPassword() string {
return c.params.HttpServerPassword
}
// HttpTemplatesPath returns the server templates path.
func (c *Config) HttpTemplatesPath() string {
return filepath.Join(c.ResourcesPath(), "templates")
}
// HttpTemplateExists returns true if a template with the given name exists (e.g. index.tmpl).
func (c *Config) HttpTemplateExists(name string) bool {
return fs.FileExists(filepath.Join(c.HttpTemplatesPath(), name))
}
// HttpDefaultTemplate returns the name of the default template (e.g. index.tmpl).
func (c *Config) HttpDefaultTemplate() string {
if c.HttpTemplateExists(c.Settings().Templates.Default) {
return c.Settings().Templates.Default
}
return "index.tmpl"
}
// HttpFaviconsPath returns the favicons path.
func (c *Config) HttpFaviconsPath() string {
return filepath.Join(c.HttpStaticPath(), "favicons")
}
// HttpStaticPath returns the static server assets path (//server/static/*).
func (c *Config) HttpStaticPath() string {
return filepath.Join(c.ResourcesPath(), "static")
}
// HttpStaticBuildPath returns the static build path (//server/static/build/*).
func (c *Config) HttpStaticBuildPath() string {
return filepath.Join(c.HttpStaticPath(), "build")
}
// TidbServerHost returns the host for the built-in TiDB server. (empty for all interfaces).
func (c *Config) TidbServerHost() string {
if c.params.TidbServerHost == "" {
return "127.0.0.1"
}
return c.params.TidbServerHost
}
// TidbServerPort returns the port for the built-in TiDB server.
func (c *Config) TidbServerPort() uint {
if c.params.TidbServerPort == 0 {
return 2343
}
return c.params.TidbServerPort
}
// TidbServerPassword returns the password for the built-in TiDB server.
func (c *Config) TidbServerPassword() string {
return c.params.TidbServerPassword
}
// TidbServerPath returns the database storage path for the built-in TiDB server.
func (c *Config) TidbServerPath() string {
if c.params.TidbServerPath == "" {
return filepath.Join(c.ResourcesPath(), "/database")
}
return fs.Abs(c.params.TidbServerPath)
}