Update notice: a newer release shows in the web interface
Once a day the server asks Gitea or GitHub, as picked under Settings -> Updates, for the latest release. A newer one shows as a pill in the sidebar, a banner on the Dashboard and in the Updates card with its release notes and the commands to update this server. Drafts and pre-releases are ignored, nothing about the server is sent, and the check can be switched off. POST /updates/check checks now.
This commit is contained in:
@@ -27,15 +27,24 @@ type Config struct {
|
||||
APITokens []APIToken `json:"apiTokens"`
|
||||
// Admin is the single account of config version 1; applyDefaults moves
|
||||
// it into Users.
|
||||
Admin *Admin `json:"admin,omitempty"`
|
||||
Server Server `json:"server"`
|
||||
Peers []Peer `json:"peers"`
|
||||
Log LogConfig `json:"log"`
|
||||
Stats StatsConfig `json:"stats"`
|
||||
Decoy DecoyConfig `json:"decoy"`
|
||||
SignIn SignInConfig `json:"signin"`
|
||||
Admin *Admin `json:"admin,omitempty"`
|
||||
Server Server `json:"server"`
|
||||
Peers []Peer `json:"peers"`
|
||||
Log LogConfig `json:"log"`
|
||||
Stats StatsConfig `json:"stats"`
|
||||
Decoy DecoyConfig `json:"decoy"`
|
||||
SignIn SignInConfig `json:"signin"`
|
||||
Updates UpdatesConfig `json:"updates"`
|
||||
}
|
||||
|
||||
// UpdatesConfig sets the daily check for a newer release.
|
||||
type UpdatesConfig struct {
|
||||
Check *bool `json:"check,omitempty"` // default on
|
||||
Source string `json:"source"` // gitea | github, see updateSources
|
||||
}
|
||||
|
||||
func (c UpdatesConfig) checkEnabled() bool { return c.Check == nil || *c.Check }
|
||||
|
||||
// SignInConfig holds the rules for signing in to the web interface.
|
||||
type SignInConfig struct {
|
||||
// RequireMFA sends users without two-step sign-in to set it up before
|
||||
@@ -246,6 +255,9 @@ func (c *Config) applyDefaults() {
|
||||
if c.Decoy.Page == "" {
|
||||
c.Decoy.Page = "nginx"
|
||||
}
|
||||
if c.Updates.Source == "" {
|
||||
c.Updates.Source = "gitea"
|
||||
}
|
||||
if c.APITokens == nil {
|
||||
c.APITokens = []APIToken{}
|
||||
}
|
||||
@@ -382,6 +394,9 @@ func (c *Config) validate() error {
|
||||
if _, ok := decoyPages[c.Decoy.Page]; !ok {
|
||||
return fmt.Errorf("unknown decoy page %q", c.Decoy.Page)
|
||||
}
|
||||
if _, ok := updateSources[c.Updates.Source]; !ok {
|
||||
return fmt.Errorf("update source must be gitea or github")
|
||||
}
|
||||
switch c.Web.TLS.Mode {
|
||||
case "acme":
|
||||
if c.Web.TLS.Domain == "" {
|
||||
|
||||
Reference in New Issue
Block a user