Documentation ¶
Index ¶
- Variables
- func AppPath() string
- func Asset(name string) ([]byte, error)
- func AssetDir(name string) ([]string, error)
- func CheckRunUser(runUser string) (string, bool)
- func CustomDir() string
- func HomeDir() string
- func Init(customConf string) error
- func InitLogging(hookMode bool)
- func IsProdMode() bool
- func IsWindowsRuntime() bool
- func MustAsset(name string) []byte
- func MustInit(customConf string)
- func SetMockServer(t *testing.T, opts ServerOpts)
- func WorkDir() string
- type DatabaseOpts
- type LFSOpts
- type ServerOpts
Constants ¶
This section is empty.
Variables ¶
var ( BuildTime string BuildCommit string )
Build time and commit information.
⚠️ WARNING: should only be set by "-ldflags".
var ( // Application settings App struct { // ⚠️ WARNING: Should only be set by the main package (i.e. "gogs.go"). Version string `ini:"-"` BrandName string RunUser string RunMode string // Deprecated: Use BrandName instead, will be removed in 0.13. AppName string } // SSH settings SSH struct { Disabled bool `ini:"DISABLE_SSH"` Domain string `ini:"SSH_DOMAIN"` Port int `ini:"SSH_PORT"` RootPath string `ini:"SSH_ROOT_PATH"` KeygenPath string `ini:"SSH_KEYGEN_PATH"` KeyTestPath string `ini:"SSH_KEY_TEST_PATH"` MinimumKeySizeCheck bool MinimumKeySizes map[string]int `ini:"-"` // Load from [ssh.minimum_key_sizes] RewriteAuthorizedKeysAtStart bool StartBuiltinServer bool `ini:"START_SSH_SERVER"` ListenHost string `ini:"SSH_LISTEN_HOST"` ListenPort int `ini:"SSH_LISTEN_PORT"` ServerCiphers []string `ini:"SSH_SERVER_CIPHERS"` } // Repository settings Repository struct { Root string ScriptType string ANSICharset string `ini:"ANSI_CHARSET"` ForcePrivate bool MaxCreationLimit int PreferredLicenses []string DisableHTTPGit bool `ini:"DISABLE_HTTP_GIT"` EnableLocalPathMigration bool EnableRawFileRenderMode bool CommitsFetchConcurrency int // Repository editor settings Editor struct { LineWrapExtensions []string PreviewableFileModes []string } `ini:"repository.editor"` // Repository upload settings Upload struct { Enabled bool TempPath string AllowedTypes []string `delim:"|"` FileMaxSize int64 MaxFiles int } `ini:"repository.upload"` } // Security settings Security struct { InstallLock bool SecretKey string LoginRememberDays int CookieRememberName string CookieUsername string CookieSecure bool EnableLoginStatusCookie bool LoginStatusCookieName string // Deprecated: Use Auth.ReverseProxyAuthenticationHeader instead, will be removed in 0.13. ReverseProxyAuthenticationUser string } // Email settings Email struct { Enabled bool SubjectPrefix string Host string From string User string Password string DisableHELO bool `ini:"DISABLE_HELO"` HELOHostname string `ini:"HELO_HOSTNAME"` SkipVerify bool UseCertificate bool CertFile string KeyFile string UsePlainText bool AddPlainTextAlt bool // Derived from other static values FromEmail string `ini:"-"` // Parsed email address of From without person's name. // Deprecated: Use Password instead, will be removed in 0.13. Passwd string } // Authentication settings Auth struct { ActivateCodeLives int ResetPasswordCodeLives int RequireEmailConfirmation bool RequireSigninView bool DisableRegistration bool EnableRegistrationCaptcha bool EnableReverseProxyAuthentication bool EnableReverseProxyAutoRegistration bool ReverseProxyAuthenticationHeader string // Deprecated: Use ActivateCodeLives instead, will be removed in 0.13. ActiveCodeLiveMinutes int // Deprecated: Use ResetPasswordCodeLives instead, will be removed in 0.13. ResetPasswdCodeLiveMinutes int // Deprecated: Use RequireEmailConfirmation instead, will be removed in 0.13. RegisterEmailConfirm bool // Deprecated: Use EnableRegistrationCaptcha instead, will be removed in 0.13. EnableCaptcha bool // Deprecated: Use User.EnableEmailNotification instead, will be removed in 0.13. EnableNotifyMail bool } // User settings User struct { EnableEmailNotification bool } // Session settings Session struct { Provider string ProviderConfig string CookieName string CookieSecure bool GCInterval int64 `ini:"GC_INTERVAL"` MaxLifeTime int64 CSRFCookieName string `ini:"CSRF_COOKIE_NAME"` // Deprecated: Use GCInterval instead, will be removed in 0.13. GCIntervalTime int64 `ini:"GC_INTERVAL_TIME"` // Deprecated: Use MaxLifeTime instead, will be removed in 0.13. SessionLifeTime int64 } // Cache settings Cache struct { Adapter string Interval int Host string } // HTTP settings HTTP struct { AccessControlAllowOrigin string } // Attachment settings Attachment struct { Enabled bool Path string AllowedTypes []string `delim:"|"` MaxSize int64 MaxFiles int } // Release settings Release struct { Attachment struct { Enabled bool AllowedTypes []string `delim:"|"` MaxSize int64 MaxFiles int } `ini:"release.attachment"` } // Time settings Time struct { Format string // Derived from other static values FormatLayout string `ini:"-"` // Actual layout of the Format. } // Picture settings Picture struct { AvatarUploadPath string RepositoryAvatarUploadPath string GravatarSource string DisableGravatar bool EnableFederatedAvatar bool // Derived from other static values LibravatarService *libravatar.Libravatar `ini:"-"` // Initialized client for federated avatar. } // Mirror settings Mirror struct { DefaultInterval int } // Webhook settings Webhook struct { Types []string DeliverTimeout int SkipTLSVerify bool `ini:"SKIP_TLS_VERIFY"` PagingNum int } // Markdown settings Markdown struct { EnableHardLineBreak bool CustomURLSchemes []string `ini:"CUSTOM_URL_SCHEMES"` FileExtensions []string } // Smartypants settings Smartypants struct { Enabled bool Fractions bool Dashes bool LatexDashes bool AngledQuotes bool } // Admin settings Admin struct { DisableRegularOrgCreation bool } // Cron tasks Cron struct { UpdateMirror struct { Enabled bool RunAtStart bool Schedule string } `ini:"cron.update_mirrors"` RepoHealthCheck struct { Enabled bool RunAtStart bool Schedule string Timeout time.Duration Args []string `delim:" "` } `ini:"cron.repo_health_check"` CheckRepoStats struct { Enabled bool RunAtStart bool Schedule string } `ini:"cron.check_repo_stats"` RepoArchiveCleanup struct { Enabled bool RunAtStart bool Schedule string OlderThan time.Duration } `ini:"cron.repo_archive_cleanup"` } // Git settings Git struct { // ⚠️ WARNING: Should only be set by "internal/db/repo.go". Version string `ini:"-"` DisableDiffHighlight bool MaxDiffFiles int `ini:"MAX_GIT_DIFF_FILES"` MaxDiffLines int `ini:"MAX_GIT_DIFF_LINES"` MaxDiffLineChars int `ini:"MAX_GIT_DIFF_LINE_CHARACTERS"` GCArgs []string `ini:"GC_ARGS" delim:" "` Timeout struct { Migrate int Mirror int Clone int Pull int GC int `ini:"GC"` } `ini:"git.timeout"` } // API settings API struct { MaxResponseItems int } // UI settings UI struct { ExplorePagingNum int IssuePagingNum int FeedMaxCommitNum int ThemeColorMetaTag string MaxDisplayFileSize int64 Admin struct { UserPagingNum int RepoPagingNum int NoticePagingNum int OrgPagingNum int } `ini:"ui.admin"` User struct { RepoPagingNum int NewsFeedPagingNum int CommitsPagingNum int } `ini:"ui.user"` } // Prometheus settings Prometheus struct { Enabled bool EnableBasicAuth bool BasicAuthUsername string BasicAuthPassword string } // Other settings Other struct { ShowFooterBranding bool ShowFooterTemplateLoadTime bool } // Global setting HasRobotsTxt bool )
⚠️ WARNING: After changing the following section, do not forget to update template of "/admin/config" page as well.
var ( UseSQLite3 bool UseMySQL bool UsePostgreSQL bool UseMSSQL bool )
Indicates which database backend is currently being used.
var CustomConf string
CustomConf returns the absolute path of custom configuration file that is used.
var File *ini.File
File is the configuration object.
var HasMinWinSvc bool
HasMinWinSvc is whether the application is built with Windows Service support.
⚠️ WARNING: should only be set by "internal/conf/static_minwinsvc.go".
var HookMode bool
HookMode indicates whether program starts as Git server-side hook callback. All operations should be done synchronously to prevent program exits before finishing.
⚠️ WARNING: Should only be set by "internal/cmd/serv.go".
var I18n *i18nConf
I18n settings
var Log *logConf
Log settings
Functions ¶
func CheckRunUser ¶
CheckRunUser returns false if configured run user does not match actual user that runs the app. The first return value is the actual user name. This check is ignored under Windows since SSH remote login is not the main method to login on Windows.
func CustomDir ¶
func CustomDir() string
CustomDir returns the absolute path of the custom directory that contains local overrides. It reads the value of envrionment variable GOGS_CUSTOM. When not set, it uses the work directory returned by WorkDir fucntion.
func HomeDir ¶
func HomeDir() string
HomeDir returns the home directory by reading environment variables. It may return empty string when environment variables are not set.
func Init ¶
Init initializes configuration from conf assets and given custom configuration file. If `customConf` is empty, it falls back to default location, i.e. "<WORK DIR>/custom". It is safe to call this function multiple times with desired `customConf`, but it is not concurrent safe.
NOTE: The order of loading configuration sections matters as one may depend on another.
⚠️ WARNING: Do not print anything in this function other than warnings.
func InitLogging ¶
func InitLogging(hookMode bool)
InitLogging initializes the logging service of the application. When the "hookMode" is true, it only initializes the root path for log files without creating any logger. It will also not remove the primary logger in "hookMode" and is up to the caller to decide when to remove it.
func IsProdMode ¶
func IsProdMode() bool
IsProdMode returns true if the application is running in production mode.
func IsWindowsRuntime ¶
func IsWindowsRuntime() bool
IsWindowsRuntime returns true if the current runtime in Windows.
func MustInit ¶
func MustInit(customConf string)
MustInit panics if configuration initialization failed.
func SetMockServer ¶
func SetMockServer(t *testing.T, opts ServerOpts)
Types ¶
type DatabaseOpts ¶
type DatabaseOpts struct { Type string Host string Name string User string Password string SSLMode string `ini:"SSL_MODE"` Path string MaxOpenConns int MaxIdleConns int // Deprecated: Use Type instead, will be removed in 0.13. DbType string // Deprecated: Use Password instead, will be removed in 0.13. Passwd string }
var Database DatabaseOpts
Database settings
type ServerOpts ¶
type ServerOpts struct { ExternalURL string `ini:"EXTERNAL_URL"` Domain string Protocol string HTTPAddr string `ini:"HTTP_ADDR"` HTTPPort string `ini:"HTTP_PORT"` CertFile string KeyFile string TLSMinVersion string `ini:"TLS_MIN_VERSION"` UnixSocketPermission string LocalRootURL string `ini:"LOCAL_ROOT_URL"` OfflineMode bool DisableRouterLog bool EnableGzip bool AppDataPath string LoadAssetsFromDisk bool LandingURL string `ini:"LANDING_URL"` // Derived from other static values URL *url.URL `ini:"-"` // Parsed URL object of ExternalURL. Subpath string `ini:"-"` // Subpath found the ExternalURL. Should be empty when not found. SubpathDepth int `ini:"-"` // The number of slashes found in the Subpath. UnixSocketMode os.FileMode `ini:"-"` // Parsed file mode of UnixSocketPermission. // Deprecated: Use ExternalURL instead, will be removed in 0.13. RootURL string `ini:"ROOT_URL"` // Deprecated: Use LandingURL instead, will be removed in 0.13. LangdingPage string `ini:"LANDING_PAGE"` }
var Server ServerOpts
Server settings