code.gitea.io/gitea@v1.22.3/templates/install.tmpl (about)

     1  {{template "base/head" .}}
     2  <div role="main" aria-label="{{.Title}}" class="page-content install">
     3  	<div class="ui grid install-config-container">
     4  		<div class="sixteen wide center aligned centered column">
     5  			<h3 class="ui top attached header">
     6  				{{ctx.Locale.Tr "install.title"}}
     7  			</h3>
     8  			<div class="ui attached segment">
     9  				{{template "base/alert" .}}
    10  
    11  				<p>{{ctx.Locale.Tr "install.docker_helper" "https://docs.gitea.com/installation/install-with-docker"}}</p>
    12  
    13  				<form class="ui form" action="{{AppSubUrl}}/" method="post">
    14  					<!-- Database Settings -->
    15  					<h4 class="ui dividing header">{{ctx.Locale.Tr "install.db_title"}}</h4>
    16  					<p>{{ctx.Locale.Tr "install.require_db_desc"}}</p>
    17  					<div class="inline required field {{if .Err_DbType}}error{{end}}">
    18  						<label>{{ctx.Locale.Tr "install.db_type"}}</label>
    19  						<div class="ui selection database type dropdown">
    20  							<input type="hidden" id="db_type" name="db_type" value="{{.CurDbType}}">
    21  							<div class="text">{{.CurDbType}}</div>
    22  							{{svg "octicon-triangle-down" 14 "dropdown icon"}}
    23  							<div class="menu">
    24  								{{range .DbTypeNames}}
    25  									<div class="item" data-value="{{.type}}">{{.name}}</div>
    26  								{{end}}
    27  							</div>
    28  						</div>
    29  					</div>
    30  
    31  					<div class="tw-mt-4 tw-hidden" data-db-setting-for="common-host">
    32  						<div class="inline required field {{if .Err_DbSetting}}error{{end}}">
    33  							<label for="db_host">{{ctx.Locale.Tr "install.host"}}</label>
    34  							<input id="db_host" name="db_host" value="{{.db_host}}">
    35  						</div>
    36  						<div class="inline required field {{if .Err_DbSetting}}error{{end}}">
    37  							<label for="db_user">{{ctx.Locale.Tr "install.user"}}</label>
    38  							<input id="db_user" name="db_user" value="{{.db_user}}">
    39  						</div>
    40  						<div class="inline required field {{if .Err_DbSetting}}error{{end}}">
    41  							<label for="db_passwd">{{ctx.Locale.Tr "install.password"}}</label>
    42  							<input id="db_passwd" name="db_passwd" type="password" value="{{.db_passwd}}">
    43  						</div>
    44  						<div class="inline required field {{if .Err_DbSetting}}error{{end}}">
    45  							<label for="db_name">{{ctx.Locale.Tr "install.db_name"}}</label>
    46  							<input id="db_name" name="db_name" value="{{.db_name}}">
    47  						</div>
    48  					</div>
    49  
    50  					<div class="tw-mt-4 tw-hidden" data-db-setting-for="postgres">
    51  						<div class="inline required field">
    52  							<label>{{ctx.Locale.Tr "install.ssl_mode"}}</label>
    53  							<div class="ui selection database type dropdown">
    54  								<input type="hidden" name="ssl_mode" value="{{if .ssl_mode}}{{.ssl_mode}}{{else}}disable{{end}}">
    55  								<div class="default text">disable</div>
    56  								{{svg "octicon-triangle-down" 14 "dropdown icon"}}
    57  								<div class="menu">
    58  									<div class="item" data-value="disable">Disable</div>
    59  									<div class="item" data-value="require">Require</div>
    60  									<div class="item" data-value="verify-full">Verify Full</div>
    61  								</div>
    62  							</div>
    63  						</div>
    64  						<div class="inline field {{if .Err_DbSetting}}error{{end}}">
    65  							<label for="db_schema">{{ctx.Locale.Tr "install.db_schema"}}</label>
    66  							<input id="db_schema" name="db_schema" value="{{.db_schema}}">
    67  							<span class="help">{{ctx.Locale.Tr "install.db_schema_helper"}}</span>
    68  						</div>
    69  					</div>
    70  
    71  					<div class="tw-mt-4 tw-hidden" data-db-setting-for="sqlite3">
    72  						<div class="inline required field {{if or .Err_DbPath .Err_DbSetting}}error{{end}}">
    73  							<label for="db_path">{{ctx.Locale.Tr "install.path"}}</label>
    74  							<input id="db_path" name="db_path" value="{{.db_path}}">
    75  							<span class="help">{{ctx.Locale.Tr "install.sqlite_helper"}}</span>
    76  						</div>
    77  					</div>
    78  
    79  					{{if .Err_DbInstalledBefore}}
    80  					<div>
    81  						<p class="reinstall-message">{{ctx.Locale.Tr "install.reinstall_confirm_message"}}</p>
    82  						<div class="reinstall-confirm">
    83  							<div class="ui checkbox">
    84  								<label>{{ctx.Locale.Tr "install.reinstall_confirm_check_1"}}</label>
    85  								<input name="reinstall_confirm_first" type="checkbox">
    86  							</div>
    87  						</div>
    88  						<div class="reinstall-confirm">
    89  							<div class="ui checkbox">
    90  								<label>{{ctx.Locale.Tr "install.reinstall_confirm_check_2"}}</label>
    91  								<input name="reinstall_confirm_second" type="checkbox">
    92  							</div>
    93  						</div>
    94  						<div class="reinstall-confirm">
    95  							<div class="ui checkbox">
    96  								<label>{{ctx.Locale.Tr "install.reinstall_confirm_check_3"}}</label>
    97  								<input name="reinstall_confirm_third" type="checkbox">
    98  							</div>
    99  						</div>
   100  					</div>
   101  					{{end}}
   102  
   103  					<!-- General Settings -->
   104  					<h4 class="ui dividing header">{{ctx.Locale.Tr "install.general_title"}}</h4>
   105  					<div class="inline required field {{if .Err_AppName}}error{{end}}">
   106  						<label for="app_name">{{ctx.Locale.Tr "install.app_name"}}</label>
   107  						<input id="app_name" name="app_name" value="{{.app_name}}" required>
   108  						<span class="help">{{ctx.Locale.Tr "install.app_name_helper"}}</span>
   109  					</div>
   110  					<div class="inline required field {{if .Err_RepoRootPath}}error{{end}}">
   111  						<label for="repo_root_path">{{ctx.Locale.Tr "install.repo_path"}}</label>
   112  						<input id="repo_root_path" name="repo_root_path" value="{{.repo_root_path}}" required>
   113  						<span class="help">{{ctx.Locale.Tr "install.repo_path_helper"}}</span>
   114  					</div>
   115  					<div class="inline field {{if .Err_LFSRootPath}}error{{end}}">
   116  						<label for="lfs_root_path">{{ctx.Locale.Tr "install.lfs_path"}}</label>
   117  						<input id="lfs_root_path" name="lfs_root_path" value="{{.lfs_root_path}}">
   118  						<span class="help">{{ctx.Locale.Tr "install.lfs_path_helper"}}</span>
   119  					</div>
   120  					<div class="inline required field {{if .Err_RunUser}}error{{end}}">
   121  						<label for="run_user">{{ctx.Locale.Tr "install.run_user"}}</label>
   122  						<input id="run_user" name="run_user" value="{{.run_user}}" readonly>
   123  						<span class="help">{{ctx.Locale.Tr "install.run_user_helper"}}</span>
   124  					</div>
   125  					<div class="inline required field">
   126  						<label for="domain">{{ctx.Locale.Tr "install.domain"}}</label>
   127  						<input id="domain" name="domain" value="{{.domain}}" placeholder="demo.gitea.com" required>
   128  						<span class="help">{{ctx.Locale.Tr "install.domain_helper"}}</span>
   129  					</div>
   130  					<div class="inline field">
   131  						<label for="ssh_port">{{ctx.Locale.Tr "install.ssh_port"}}</label>
   132  						<input id="ssh_port" name="ssh_port" value="{{.ssh_port}}">
   133  						<span class="help">{{ctx.Locale.Tr "install.ssh_port_helper"}}</span>
   134  					</div>
   135  					<div class="inline required field">
   136  						<label for="http_port">{{ctx.Locale.Tr "install.http_port"}}</label>
   137  						<input id="http_port" name="http_port" value="{{.http_port}}" required>
   138  						<span class="help">{{ctx.Locale.Tr "install.http_port_helper"}}</span>
   139  					</div>
   140  					<div class="inline required field">
   141  						<label for="app_url">{{ctx.Locale.Tr "install.app_url"}}</label>
   142  						<input id="app_url" name="app_url" value="{{.app_url}}" placeholder="https://demo.gitea.com" required>
   143  						<span class="help">{{ctx.Locale.Tr "install.app_url_helper"}}</span>
   144  					</div>
   145  					<div class="inline required field">
   146  						<label for="log_root_path">{{ctx.Locale.Tr "install.log_root_path"}}</label>
   147  						<input id="log_root_path" name="log_root_path" value="{{.log_root_path}}" placeholder="log" required>
   148  						<span class="help">{{ctx.Locale.Tr "install.log_root_path_helper"}}</span>
   149  					</div>
   150  					<div class="inline field">
   151  						<div class="ui checkbox">
   152  							<label>{{ctx.Locale.Tr "install.enable_update_checker"}}</label>
   153  							<input name="enable_update_checker" type="checkbox">
   154  						</div>
   155  						<span class="help">{{ctx.Locale.Tr "install.enable_update_checker_helper"}}</span>
   156  					</div>
   157  
   158  					<!-- Optional Settings -->
   159  					<h4 class="ui dividing header">{{ctx.Locale.Tr "install.optional_title"}}</h4>
   160  					<div>
   161  						<!-- Email -->
   162  						<details class="optional field">
   163  							<summary class="right-content tw-py-2{{if .Err_SMTP}} text red{{end}}">
   164  								{{ctx.Locale.Tr "install.email_title"}}
   165  							</summary>
   166  							<div class="inline field">
   167  								<label for="smtp_addr">{{ctx.Locale.Tr "install.smtp_addr"}}</label>
   168  								<input id="smtp_addr" name="smtp_addr" value="{{.smtp_addr}}">
   169  							</div>
   170  							<div class="inline field">
   171  								<label for="smtp_port">{{ctx.Locale.Tr "install.smtp_port"}}</label>
   172  								<input id="smtp_port" name="smtp_port" value="{{.smtp_port}}">
   173  							</div>
   174  							<div class="inline field {{if .Err_SMTPFrom}}error{{end}}">
   175  								<label for="smtp_from">{{ctx.Locale.Tr "install.smtp_from"}}</label>
   176  								<input id="smtp_from" name="smtp_from" value="{{.smtp_from}}">
   177  								<span class="help">{{ctx.Locale.TrString "install.smtp_from_helper"}}{{/* it contains lt/gt chars*/}}</span>
   178  							</div>
   179  							<div class="inline field {{if .Err_SMTPUser}}error{{end}}">
   180  								<label for="smtp_user">{{ctx.Locale.Tr "install.mailer_user"}}</label>
   181  								<input id="smtp_user" name="smtp_user" value="{{.smtp_user}}">
   182  							</div>
   183  							<div class="inline field">
   184  								<label for="smtp_passwd">{{ctx.Locale.Tr "install.mailer_password"}}</label>
   185  								<input id="smtp_passwd" name="smtp_passwd" type="password" value="{{.smtp_passwd}}">
   186  							</div>
   187  							<div class="inline field">
   188  								<div class="ui checkbox">
   189  									<label>{{ctx.Locale.Tr "install.register_confirm"}}</label>
   190  									<input name="register_confirm" type="checkbox" {{if .register_confirm}}checked{{end}}>
   191  								</div>
   192  							</div>
   193  							<div class="inline field">
   194  								<div class="ui checkbox">
   195  									<label>{{ctx.Locale.Tr "install.mail_notify"}}</label>
   196  									<input name="mail_notify" type="checkbox" {{if .mail_notify}}checked{{end}}>
   197  								</div>
   198  							</div>
   199  						</details>
   200  
   201  						<!-- Server and other services -->
   202  						<details class="optional field">
   203  							<summary class="right-content tw-py-2{{if .Err_Services}} text red{{end}}">
   204  								{{ctx.Locale.Tr "install.server_service_title"}}
   205  							</summary>
   206  							<div class="inline field">
   207  								<div class="ui checkbox" id="offline-mode">
   208  									<label data-tooltip-content="{{ctx.Locale.Tr "install.offline_mode_popup"}}">{{ctx.Locale.Tr "install.offline_mode"}}</label>
   209  									<input name="offline_mode" type="checkbox" {{if .offline_mode}}checked{{end}}>
   210  								</div>
   211  							</div>
   212  							<div class="inline field">
   213  								<div class="ui checkbox" id="disable-gravatar">
   214  									<label data-tooltip-content="{{ctx.Locale.Tr "install.disable_gravatar_popup"}}">{{ctx.Locale.Tr "install.disable_gravatar"}}</label>
   215  									<input name="disable_gravatar" type="checkbox" {{if .disable_gravatar}}checked{{end}}>
   216  								</div>
   217  							</div>
   218  							<div class="inline field">
   219  								<div class="ui checkbox" id="federated-avatar-lookup">
   220  									<label data-tooltip-content="{{ctx.Locale.Tr "install.federated_avatar_lookup_popup"}}">{{ctx.Locale.Tr "install.federated_avatar_lookup"}}</label>
   221  									<input name="enable_federated_avatar" type="checkbox" {{if .enable_federated_avatar}}checked{{end}}>
   222  								</div>
   223  							</div>
   224  							<div class="inline field">
   225  								<div class="ui checkbox" id="enable-openid-signin">
   226  									<label data-tooltip-content="{{ctx.Locale.Tr "install.openid_signin_popup"}}">{{ctx.Locale.Tr "install.openid_signin"}}</label>
   227  									<input name="enable_open_id_sign_in" type="checkbox" {{if .enable_open_id_sign_in}}checked{{end}}>
   228  								</div>
   229  							</div>
   230  							<div class="inline field">
   231  								<div class="ui checkbox" id="disable-registration">
   232  									<label data-tooltip-content="{{ctx.Locale.Tr "install.disable_registration_popup"}}">{{ctx.Locale.Tr "install.disable_registration"}}</label>
   233  									<input name="disable_registration" type="checkbox" {{if .disable_registration}}checked{{end}}>
   234  								</div>
   235  							</div>
   236  							<div class="inline field">
   237  								<div class="ui checkbox" id="allow-only-external-registration">
   238  									<label data-tooltip-content="{{ctx.Locale.Tr "install.allow_only_external_registration_popup"}}">{{ctx.Locale.Tr "install.allow_only_external_registration_popup"}}</label>
   239  									<input name="allow_only_external_registration" type="checkbox" {{if .allow_only_external_registration}}checked{{end}}>
   240  								</div>
   241  							</div>
   242  							<div class="inline field">
   243  								<div class="ui checkbox" id="enable-openid-signup">
   244  									<label data-tooltip-content="{{ctx.Locale.Tr "install.openid_signup_popup"}}">{{ctx.Locale.Tr "install.openid_signup"}}</label>
   245  									<input name="enable_open_id_sign_up" type="checkbox" {{if .enable_open_id_sign_up}}checked{{end}}>
   246  								</div>
   247  							</div>
   248  							<div class="inline field">
   249  								<div class="ui checkbox" id="enable-captcha">
   250  									<label data-tooltip-content="{{ctx.Locale.Tr "install.enable_captcha_popup"}}">{{ctx.Locale.Tr "install.enable_captcha"}}</label>
   251  									<input name="enable_captcha" type="checkbox" {{if .enable_captcha}}checked{{end}}>
   252  								</div>
   253  							</div>
   254  							<div class="inline field">
   255  								<div class="ui checkbox">
   256  									<label data-tooltip-content="{{ctx.Locale.Tr "install.require_sign_in_view_popup"}}">{{ctx.Locale.Tr "install.require_sign_in_view"}}</label>
   257  									<input name="require_sign_in_view" type="checkbox" {{if .require_sign_in_view}}checked{{end}}>
   258  								</div>
   259  							</div>
   260  							<div class="inline field">
   261  								<div class="ui checkbox">
   262  									<label data-tooltip-content="{{ctx.Locale.Tr "install.default_keep_email_private_popup"}}">{{ctx.Locale.Tr "install.default_keep_email_private"}}</label>
   263  									<input name="default_keep_email_private" type="checkbox" {{if .default_keep_email_private}}checked{{end}}>
   264  								</div>
   265  							</div>
   266  							<div class="inline field">
   267  								<div class="ui checkbox">
   268  									<label data-tooltip-content="{{ctx.Locale.Tr "install.default_allow_create_organization_popup"}}">{{ctx.Locale.Tr "install.default_allow_create_organization"}}</label>
   269  									<input name="default_allow_create_organization" type="checkbox" {{if .default_allow_create_organization}}checked{{end}}>
   270  								</div>
   271  							</div>
   272  							<div class="inline field">
   273  								<div class="ui checkbox">
   274  									<label data-tooltip-content="{{ctx.Locale.Tr "install.default_enable_timetracking_popup"}}">{{ctx.Locale.Tr "install.default_enable_timetracking"}}</label>
   275  									<input name="default_enable_timetracking" type="checkbox" {{if .default_enable_timetracking}}checked{{end}}>
   276  								</div>
   277  							</div>
   278  							<div class="inline field">
   279  								<label for="no_reply_address">{{ctx.Locale.Tr "install.no_reply_address"}}</label>
   280  								<input id="_no_reply_address" name="no_reply_address" value="{{.no_reply_address}}">
   281  								<span class="help">{{ctx.Locale.Tr "install.no_reply_address_helper"}}</span>
   282  							</div>
   283  							<div class="inline field">
   284  								<label for="password_algorithm">{{ctx.Locale.Tr "install.password_algorithm"}}</label>
   285  								<div class="ui selection dropdown">
   286  									<input id="password_algorithm" type="hidden" name="password_algorithm" value="{{.password_algorithm}}">
   287  									<div class="text">{{.password_algorithm}}</div>
   288  									{{svg "octicon-triangle-down" 14 "dropdown icon"}}
   289  									<div class="menu">
   290  										{{range .PasswordHashAlgorithms}}
   291  											<div class="item" data-value="{{.}}">{{.}}</div>
   292  										{{end}}
   293  									</div>
   294  								</div>
   295  								<span class="help">{{ctx.Locale.Tr "install.password_algorithm_helper"}}</span>
   296  							</div>
   297  						</details>
   298  
   299  						<!-- Admin -->
   300  						<details class="optional field">
   301  							<summary class="right-content tw-py-2{{if .Err_Admin}} text red{{end}}">
   302  								{{ctx.Locale.Tr "install.admin_title"}}
   303  							</summary>
   304  							<p class="center">{{ctx.Locale.Tr "install.admin_setting_desc"}}</p>
   305  							<div class="inline field {{if .Err_AdminName}}error{{end}}">
   306  								<label for="admin_name">{{ctx.Locale.Tr "install.admin_name"}}</label>
   307  								<input id="admin_name" name="admin_name" value="{{.admin_name}}">
   308  							</div>
   309  							<div class="inline field {{if .Err_AdminEmail}}error{{end}}">
   310  								<label for="admin_email">{{ctx.Locale.Tr "install.admin_email"}}</label>
   311  								<input id="admin_email" name="admin_email" type="email" value="{{.admin_email}}">
   312  							</div>
   313  							<div class="inline field {{if .Err_AdminPasswd}}error{{end}}">
   314  								<label for="admin_passwd">{{ctx.Locale.Tr "install.admin_password"}}</label>
   315  								<input id="admin_passwd" name="admin_passwd" type="password" autocomplete="new-password" value="{{.admin_passwd}}">
   316  							</div>
   317  							<div class="inline field {{if .Err_AdminPasswd}}error{{end}}">
   318  								<label for="admin_confirm_passwd">{{ctx.Locale.Tr "install.confirm_password"}}</label>
   319  								<input id="admin_confirm_passwd" name="admin_confirm_passwd" autocomplete="new-password" type="password" value="{{.admin_confirm_passwd}}">
   320  							</div>
   321  						</details>
   322  					</div>
   323  
   324  					<div class="divider"></div>
   325  
   326  					{{if .EnvConfigKeys}}
   327  					<!-- Environment Config -->
   328  					<h4 class="ui dividing header">{{ctx.Locale.Tr "install.env_config_keys"}}</h4>
   329  					<div class="inline field">
   330  						<div class="right-content">
   331  							{{ctx.Locale.Tr "install.env_config_keys_prompt"}}
   332  						</div>
   333  						<div class="right-content tw-mt-2">
   334  							{{range .EnvConfigKeys}}<span class="ui label">{{.}}</span>{{end}}
   335  						</div>
   336  					</div>
   337  					{{end}}
   338  
   339  					<div class="inline field">
   340  						<div class="right-content">
   341  							These configuration options will be written into: {{.CustomConfFile}}
   342  						</div>
   343  						<div class="tw-mt-4 tw-mb-2 tw-text-center">
   344  							<button class="ui primary button">{{ctx.Locale.Tr "install.install_btn_confirm"}}</button>
   345  						</div>
   346  					</div>
   347  				</form>
   348  			</div>
   349  		</div>
   350  	</div>
   351  </div>
   352  <img class="tw-hidden" src="{{AssetUrlPrefix}}/img/loading.png">
   353  {{template "base/footer" .}}