From c2d2323fc8fdcafde705be782711e318d79f4492 Mon Sep 17 00:00:00 2001
From: Gusted <williamzijl7@hotmail.com>
Date: Tue, 1 Nov 2022 19:23:56 +0000
Subject: [PATCH] Configure update checker on installation page (#21655)

- I recently became aware that this was enabled by-default, I don't
necessary agree with that and this should rather be configured by the
user(this patch does that on the installation page) as it connects to a
homeserver, which I'd prefer to avoid on my instance.


![image](https://user-images.githubusercontent.com/25481501/199260613-a77a1b10-347a-4542-8982-9b9b24dad28c.png)
---
 options/locale/locale_en-US.ini | 2 ++
 routers/install/install.go      | 1 +
 services/forms/user_form.go     | 1 +
 templates/install.tmpl          | 7 +++++++
 4 files changed, 11 insertions(+)

diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini
index 1566dfc97d42..ac2b2ecc99d8 100644
--- a/options/locale/locale_en-US.ini
+++ b/options/locale/locale_en-US.ini
@@ -238,6 +238,8 @@ no_reply_address = Hidden Email Domain
 no_reply_address_helper = Domain name for users with a hidden email address. For example, the username 'joe' will be logged in Git as 'joe@noreply.example.org' if the hidden email domain is set to 'noreply.example.org'.
 password_algorithm = Password Hash Algorithm
 password_algorithm_helper = Set the password hashing algorithm. Algorithms have differing requirements and strength. `argon2` whilst having good characteristics uses a lot of memory and may be inappropriate for small systems.
+enable_update_checker = Enable Update Checker
+enable_update_checker_helper = Checks for new version releases periodically by connecting to gitea.io.
 
 [home]
 uname_holder = Username or Email Address
diff --git a/routers/install/install.go b/routers/install/install.go
index 962dee8c8609..6bac5b5ff7f4 100644
--- a/routers/install/install.go
+++ b/routers/install/install.go
@@ -457,6 +457,7 @@ func SubmitInstall(ctx *context.Context) {
 	cfg.Section("service").Key("DEFAULT_ALLOW_CREATE_ORGANIZATION").SetValue(fmt.Sprint(form.DefaultAllowCreateOrganization))
 	cfg.Section("service").Key("DEFAULT_ENABLE_TIMETRACKING").SetValue(fmt.Sprint(form.DefaultEnableTimetracking))
 	cfg.Section("service").Key("NO_REPLY_ADDRESS").SetValue(fmt.Sprint(form.NoReplyAddress))
+	cfg.Section("cron.update_checker").Key("ENABLED").SetValue(fmt.Sprint(form.EnableUpdateChecker))
 
 	cfg.Section("").Key("RUN_MODE").SetValue("prod")
 
diff --git a/services/forms/user_form.go b/services/forms/user_form.go
index 036c2ca3ec2c..95e4f9ed0e6c 100644
--- a/services/forms/user_form.go
+++ b/services/forms/user_form.go
@@ -60,6 +60,7 @@ type InstallForm struct {
 	DefaultKeepEmailPrivate        bool
 	DefaultAllowCreateOrganization bool
 	DefaultEnableTimetracking      bool
+	EnableUpdateChecker            bool
 	NoReplyAddress                 string
 
 	PasswordAlgorithm string
diff --git a/templates/install.tmpl b/templates/install.tmpl
index 36f58218d463..8d6918e6a29c 100644
--- a/templates/install.tmpl
+++ b/templates/install.tmpl
@@ -162,6 +162,13 @@
 						<input id="log_root_path" name="log_root_path" value="{{.log_root_path}}" placeholder="log" required>
 						<span class="help">{{.locale.Tr "install.log_root_path_helper"}}</span>
 					</div>
+					<div class="inline field">
+						<label for="enable_update_checker">{{.locale.Tr "install.enable_update_checker"}}</label>
+						<div class="ui checkbox">
+							<input name="enable_update_checker" type="checkbox">
+						</div>
+						<span class="help">{{.locale.Tr "install.enable_update_checker_helper"}}</span>
+					</div>
 
 
 					<!-- Optional Settings -->