config

package
v0.8.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 1, 2019 License: AGPL-3.0 Imports: 9 Imported by: 0

Documentation

Overview

Package config holds and assists in the configuration of a writefreely instance.

Index

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 Save

func Save(uc *Config, fname string) error

Save writes the given Config to the given file.

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"`
	JSDisabled bool   `ini:"disable_js"`
	WebFonts   bool   `ini:"webfonts"`

	// Users
	SingleUser       bool `ini:"single_user"`
	OpenRegistration bool `ini:"open_registration"`
	MinUsernameLen   int  `ini:"min_username_len"`
	MaxBlogs         int  `ini:"max_blogs"`

	// Federation
	Federation  bool `ini:"federation"`
	PublicStats bool `ini:"public_stats"`
	Private     bool `ini:"private"`

	// Additional functions
	LocalTimeline bool   `ini:"local_timeline"`
	UserInvites   string `ini:"user_invites"`
}

AppCfg holds values that affect how the application functions

func (AppCfg) CanCreateBlogs

func (ac AppCfg) CanCreateBlogs(currentlyUsed uint64) bool

func (AppCfg) FriendlyHost

func (ac AppCfg) FriendlyHost() string

FriendlyHost returns the app's Host sans any schema

type Config

type Config struct {
	Server   ServerCfg   `ini:"server"`
	Database DatabaseCfg `ini:"database"`
	App      AppCfg      `ini:"app"`
}

Config holds the complete configuration for running a writefreely instance

func Load

func Load(fname string) (*Config, error)

Load reads the given configuration file, then parses and returns it as a Config.

func New

func New() *Config

New creates a new Config with sane defaults

func (*Config) IsSecureStandalone added in v0.4.0

func (cfg *Config) IsSecureStandalone() bool

IsSecureStandalone returns whether or not the application is running as a standalone server with TLS enabled.

func (*Config) UseMySQL added in v0.6.0

func (cfg *Config) UseMySQL(fresh bool)

UseMySQL resets the Config's Database to use default values for a MySQL setup.

func (*Config) UseSQLite added in v0.6.0

func (cfg *Config) UseSQLite(fresh bool)

UseSQLite resets the Config's Database to use default values for a SQLite setup.

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"`
}

DatabaseCfg holds values that determine how the application connects to a datastore

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"`

	TemplatesParentDir string `ini:"templates_parent_dir"`
	StaticParentDir    string `ini:"static_parent_dir"`
	PagesParentDir     string `ini:"pages_parent_dir"`
	KeysParentDir      string `ini:"keys_parent_dir"`

	Dev bool `ini:"-"`
}

ServerCfg holds values that affect how the HTTP server runs

type SetupData

type SetupData struct {
	User   *UserCreation
	Config *Config
}

func Configure

func Configure(fname string) (*SetupData, error)

type UserCreation

type UserCreation struct {
	Username   string
	HashedPass []byte
}

type UserType added in v0.8.0

type UserType string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL