Documentation
¶
Overview ¶
Package config holds and assists in the configuration of a writefreely instance.
Index ¶
- Constants
- func DefaultHTTPClient() *http.Client
- func OrDefaultString(input, defaultValue string) string
- func Save(uc *Config, fname string) error
- type AppCfg
- type Config
- type DatabaseCfg
- type EmailCfg
- type GenericOauthCfg
- type GiteaOauthCfg
- type GitlabOauthCfg
- type ServerCfg
- type SetupData
- type SlackOauthCfg
- type UserCreation
- type UserType
- type WriteAsOauthCfg
Constants ¶
View Source
const ( // FileName is the default configuration file name FileName = "config.ini" UserNormal UserType = "user" UserAdmin = "admin" )
Variables ¶
This section is empty.
Functions ¶
func DefaultHTTPClient ¶ added in v0.13.0
DefaultHTTPClient returns a sane default HTTP client.
func OrDefaultString ¶ added in v0.13.0
OrDefaultString returns input or a default value if input is empty.
Types ¶
type AppCfg ¶
type AppCfg struct {
SiteName string `ini:"site_name"`
SiteDesc string `ini:"site_description"`
Host string `ini:"host"`
// Site appearance
Theme string `ini:"theme"`
Editor string `ini:"editor"`
JSDisabled bool `ini:"disable_js"`
WebFonts bool `ini:"webfonts"`
Landing string `ini:"landing"`
WFModesty bool `ini:"wf_modesty"`
// Site functionality
Chorus bool `ini:"chorus"`
Forest bool `ini:"forest"` // The admin cares about the forest, not the trees. Hide unnecessary technical info.
DisableDrafts bool `ini:"disable_drafts"`
// Users
SingleUser bool `ini:"single_user"`
OpenRegistration bool `ini:"open_registration"`
OpenDeletion bool `ini:"open_deletion"`
MinUsernameLen int `ini:"min_username_len"`
MaxBlogs int `ini:"max_blogs"`
// Options for public instances
// Federation
Federation bool `ini:"federation"`
PublicStats bool `ini:"public_stats"`
Monetization bool `ini:"monetization"`
NotesOnly bool `ini:"notes_only"`
// Access
Private bool `ini:"private"`
// Additional functions
LocalTimeline bool `ini:"local_timeline"`
UserInvites string `ini:"user_invites"`
// Defaults
DefaultVisibility string `ini:"default_visibility"`
// Check for Updates
UpdateChecks bool `ini:"update_checks"`
// Disable password authentication if use only Oauth
DisablePasswordAuth bool `ini:"disable_password_auth"`
}
AppCfg holds values that affect how the application functions
func (AppCfg) CanCreateBlogs ¶
func (AppCfg) FriendlyHost ¶
FriendlyHost returns the app's Host sans any schema
func (*AppCfg) LandingPath ¶ added in v0.13.0
func (AppCfg) SignupPath ¶ added in v0.13.0
type Config ¶
type Config struct {
Server ServerCfg `ini:"server"`
Database DatabaseCfg `ini:"database"`
App AppCfg `ini:"app"`
Email EmailCfg `ini:"email"`
SlackOauth SlackOauthCfg `ini:"oauth.slack"`
WriteAsOauth WriteAsOauthCfg `ini:"oauth.writeas"`
GitlabOauth GitlabOauthCfg `ini:"oauth.gitlab"`
GiteaOauth GiteaOauthCfg `ini:"oauth.gitea"`
GenericOauth GenericOauthCfg `ini:"oauth.generic"`
}
Config holds the complete configuration for running a writefreely instance
func (*Config) IsSecureStandalone ¶ added in v0.4.0
IsSecureStandalone returns whether or not the application is running as a standalone server with TLS enabled.
type DatabaseCfg ¶
type DatabaseCfg struct {
Type string `ini:"type"`
FileName string `ini:"filename"`
User string `ini:"username"`
Password string `ini:"password"`
Database string `ini:"database"`
Host string `ini:"host"`
Port int `ini:"port"`
TLS bool `ini:"tls"`
}
DatabaseCfg holds values that determine how the application connects to a datastore
type EmailCfg ¶ added in v0.15.0
type EmailCfg struct {
// SMTP configuration values
Host string `ini:"smtp_host"`
Port int `ini:"smtp_port"`
Username string `ini:"smtp_username"`
Password string `ini:"smtp_password"`
EnableStartTLS bool `ini:"smtp_enable_start_tls"`
// Mailgun configuration values
Domain string `ini:"domain"`
MailgunPrivate string `ini:"mailgun_private"`
MailgunEurope bool `ini:"mailgun_europe"`
}
type GenericOauthCfg ¶ added in v0.13.0
type GenericOauthCfg struct {
ClientID string `ini:"client_id"`
ClientSecret string `ini:"client_secret"`
Host string `ini:"host"`
DisplayName string `ini:"display_name"`
CallbackProxy string `ini:"callback_proxy"`
CallbackProxyAPI string `ini:"callback_proxy_api"`
TokenEndpoint string `ini:"token_endpoint"`
InspectEndpoint string `ini:"inspect_endpoint"`
AuthEndpoint string `ini:"auth_endpoint"`
Scope string `ini:"scope"`
AllowDisconnect bool `ini:"allow_disconnect"`
MapUserID string `ini:"map_user_id"`
MapUsername string `ini:"map_username"`
MapDisplayName string `ini:"map_display_name"`
MapEmail string `ini:"map_email"`
}
type GiteaOauthCfg ¶ added in v0.13.0
type GitlabOauthCfg ¶ added in v0.13.0
type ServerCfg ¶
type ServerCfg struct {
HiddenHost string `ini:"hidden_host"`
Port int `ini:"port"`
Bind string `ini:"bind"`
TLSCertPath string `ini:"tls_cert_path"`
TLSKeyPath string `ini:"tls_key_path"`
Autocert bool `ini:"autocert"`
TemplatesParentDir string `ini:"templates_parent_dir"`
StaticParentDir string `ini:"static_parent_dir"`
PagesParentDir string `ini:"pages_parent_dir"`
KeysParentDir string `ini:"keys_parent_dir"`
HashSeed string `ini:"hash_seed"`
GopherPort int `ini:"gopher_port"`
Dev bool `ini:"-"`
}
ServerCfg holds values that affect how the HTTP server runs
type SetupData ¶
type SetupData struct {
User *UserCreation
Config *Config
}
type SlackOauthCfg ¶ added in v0.13.0
type UserCreation ¶
type WriteAsOauthCfg ¶ added in v0.13.0
type WriteAsOauthCfg struct {
ClientID string `ini:"client_id"`
ClientSecret string `ini:"client_secret"`
AuthLocation string `ini:"auth_location"`
TokenLocation string `ini:"token_location"`
InspectLocation string `ini:"inspect_location"`
CallbackProxy string `ini:"callback_proxy"`
CallbackProxyAPI string `ini:"callback_proxy_api"`
}
Click to show internal directories.
Click to hide internal directories.