nixos/gitea: add option to disable registration

Although this can be added to `extraOptions` I figured that it makes
sense to add an option to explicitly promote this feature in our
documentation since most of the self-hosted gitea instances won't be
intended for common use I guess.

Also added a notice that this should be added after the initial deploy
as you have to register yourself using that feature unless the install
wizard is used.
This commit is contained in:
Maximilian Bosch 2019-01-14 15:56:20 +01:00
parent 9651cc7a93
commit ad3a50e25b
No known key found for this signature in database
GPG key ID: 091DBF4D1FC46B8E
2 changed files with 17 additions and 0 deletions

View file

@ -46,6 +46,9 @@ let
ROOT_PATH = ${cfg.log.rootPath}
LEVEL = ${cfg.log.level}
[service]
DISABLE_REGISTRATION = ${boolToString cfg.disableRegistration}
${cfg.extraConfig}
'';
in
@ -248,6 +251,18 @@ in
description = "Upper level of template and static files path.";
};
disableRegistration = mkEnableOption "the registration lock" // {
description = ''
By default any user can create an account on this <literal>gitea</literal> instance.
This can be disabled by using this option.
<emphasis>Note:</emphasis> please keep in mind that this should be added after the initial
deploy unless <link linkend="opt-services.gitea.useWizard">services.gitea.useWizard</link>
is <literal>true</literal> as the first registered user will be the administrator if
no install wizard is used.
'';
};
extraConfig = mkOption {
type = types.str;
default = "";

View file

@ -64,6 +64,7 @@ with pkgs.lib;
machine =
{ config, pkgs, ... }:
{ services.gitea.enable = true;
services.gitea.disableRegistration = true;
};
testScript = ''
@ -72,6 +73,7 @@ with pkgs.lib;
$machine->waitForUnit('gitea.service');
$machine->waitForOpenPort('3000');
$machine->succeed("curl --fail http://localhost:3000/");
$machine->succeed("curl --fail http://localhost:3000/user/sign_up | grep 'Registration is disabled. Please contact your site administrator.'");
'';
};
}