2025-02-22 08:32:20 +00:00
|
|
|
{
|
|
|
|
pkgs,
|
|
|
|
configVars,
|
2025-02-22 12:25:33 +00:00
|
|
|
lib,
|
2025-02-22 08:32:20 +00:00
|
|
|
...
|
|
|
|
}: let
|
|
|
|
forgejoDomain = configVars.domains.forgejo;
|
|
|
|
forgejoPort = configVars.networking.addresses.forgejo.port;
|
|
|
|
in {
|
|
|
|
|
|
|
|
imports = [./nginx/forgejo.nix];
|
|
|
|
|
|
|
|
environment.persistence."/persist" = {
|
|
|
|
hideMounts = true;
|
|
|
|
directories = [
|
|
|
|
"/var/lib/forgejo"
|
|
|
|
];
|
|
|
|
};
|
|
|
|
|
2025-02-22 12:25:33 +00:00
|
|
|
users.groups.git = {
|
|
|
|
gid = 1009;
|
|
|
|
};
|
|
|
|
|
|
|
|
users.users.git = {
|
|
|
|
isNormalUser = true;
|
|
|
|
home = "/var/lib/forgejo";
|
|
|
|
uid = 1009;
|
|
|
|
extraGroups = ["git"];
|
|
|
|
};
|
|
|
|
|
|
|
|
services.openssh = {
|
|
|
|
authorizedKeysFiles = lib.mkForce [ "/var/lib/forgejo/.ssh/authorized_keys" ];
|
|
|
|
};
|
|
|
|
|
2025-02-22 08:32:20 +00:00
|
|
|
services.forgejo = {
|
|
|
|
enable = true;
|
|
|
|
package = pkgs.forgejo;
|
|
|
|
database.type = "sqlite3";
|
|
|
|
lfs.enable = true;
|
2025-02-22 12:25:33 +00:00
|
|
|
user = "git";
|
|
|
|
group = "git";
|
2025-02-22 08:32:20 +00:00
|
|
|
settings = {
|
|
|
|
server = {
|
2025-02-22 12:25:33 +00:00
|
|
|
RUN_USER = "git";
|
2025-02-22 08:32:20 +00:00
|
|
|
DOMAIN = "git.${forgejoDomain}";
|
|
|
|
ROOT_URL = "https://git.${forgejoDomain}/";
|
|
|
|
HTTP_PORT = forgejoPort;
|
2025-02-22 12:25:33 +00:00
|
|
|
SSH_USER = "git";
|
2025-02-22 08:32:20 +00:00
|
|
|
};
|
|
|
|
service.DISABLE_REGISTRATION = false;
|
|
|
|
actions = {
|
|
|
|
ENABLED = true;
|
|
|
|
DEFAULT_ACTIONS_URL = "github";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|