diff --git a/cmd/gotosocial/main.go b/cmd/gotosocial/main.go index 96798035e..0919d5fc4 100644 --- a/cmd/gotosocial/main.go +++ b/cmd/gotosocial/main.go @@ -58,6 +58,18 @@ func main() { Value: "", EnvVars: []string{envNames.ConfigPath}, }, + &cli.StringFlag{ + Name: flagNames.Host, + Usage: "Hostname to use for the server (eg., example.org, gotosocial.whatever.com)", + Value: "localhost", + EnvVars: []string{envNames.Host}, + }, + &cli.StringFlag{ + Name: flagNames.Protocol, + Usage: "Protocol to use for the REST api of the server (only use http for debugging and tests!)", + Value: "https", + EnvVars: []string{envNames.Protocol}, + }, // DATABASE FLAGS &cli.StringFlag{ diff --git a/example/config.yaml b/example/config.yaml index b65149d9a..58766a23a 100644 --- a/example/config.yaml +++ b/example/config.yaml @@ -28,6 +28,17 @@ logLevel: "info" # Default: "gotosocial" applicationName: "gotosocial" +# String. Hostname/domain to use for the server. Defaults to localhost for local testing, +# but you should *definitely* change this when running for real, or your server won't work at all. +# Examples: ["example.org","some.server.com"] +# Default: "localhost" +host: "localhost" + +# String. Protocol to use for the server. Only change to http for local testing! +# Options: ["http","https"] +# Default: "https" +protocol: "https" + # Config pertaining to the Gotosocial database connection db: # String. Database type. diff --git a/internal/config/config.go b/internal/config/config.go index ce194cd52..dca325cbf 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -29,6 +29,8 @@ import ( type Config struct { LogLevel string `yaml:"logLevel"` ApplicationName string `yaml:"applicationName"` + Host string `yaml:"host"` + Protocol string `yaml:"protocol"` DBConfig *DBConfig `yaml:"db"` TemplateConfig *TemplateConfig `yaml:"template"` } @@ -97,6 +99,14 @@ func (c *Config) ParseCLIFlags(f KeyedFlags) { c.ApplicationName = f.String(fn.ApplicationName) } + if c.Host == "" || f.IsSet(fn.Host) { + c.Host = f.String(fn.Host) + } + + if c.Protocol == "" || f.IsSet(fn.Protocol) { + c.Protocol = f.String(fn.Protocol) + } + // db flags if c.DBConfig.Type == "" || f.IsSet(fn.DbType) { c.DBConfig.Type = f.String(fn.DbType) @@ -142,6 +152,8 @@ type Flags struct { LogLevel string ApplicationName string ConfigPath string + Host string + Protocol string DbType string DbAddress string DbPort string @@ -158,6 +170,8 @@ func GetFlagNames() Flags { LogLevel: "log-level", ApplicationName: "application-name", ConfigPath: "config-path", + Host: "host", + Protocol: "protocol", DbType: "db-type", DbAddress: "db-address", DbPort: "db-port", @@ -175,6 +189,8 @@ func GetEnvNames() Flags { LogLevel: "GTS_LOG_LEVEL", ApplicationName: "GTS_APPLICATION_NAME", ConfigPath: "GTS_CONFIG_PATH", + Host: "GTS_HOST", + Protocol: "GTS_PROTOCOL", DbType: "GTS_DB_TYPE", DbAddress: "GTS_DB_ADDRESS", DbPort: "GTS_DB_PORT",