forgejo: update whole module, add new data dir

This commit is contained in:
Charlie Root 2025-03-04 21:01:50 +01:00
commit 04dd69dc7d
Signed by: faukah
SSH key fingerprint: SHA256:jpYIt4Vkz1NBTQcks/N9OPTfTFxE6KF2W/rV7hrfrIw

View file

@ -6,16 +6,22 @@
}: let }: let
inherit (lib.modules) mkIf; inherit (lib.modules) mkIf;
inherit (config.services.forgejo) customDir user group; inherit (config.services.forgejo) customDir user group;
cfg = config.modules.system.services; cfg = config.modules.system.services.forgejo;
port = 3000; port = 3000;
domain = "copeberg.org"; domain = "copeberg.org";
img = ./img; img = ./img;
acmeRoot = "/var/lib/acme/challenges-forgejo"; acmeRoot = "/var/lib/acme/challenges-forgejo";
dataDir = "/srv/data/forgejo";
in { in {
options.modules.system.services.forgejo.enable = lib.mkEnableOption "forgejo"; options.modules.system.services.forgejo.enable = lib.mkEnableOption "forgejo";
config = mkIf cfg.enable { config = mkIf cfg.enable {
modules.system.services = {
database.postgresql.enable = true;
};
networking.firewall.allowedTCPPorts = [ networking.firewall.allowedTCPPorts = [
443 443
80 80
@ -32,7 +38,7 @@ in {
client_max_body_size 512M; client_max_body_size 512M;
''; '';
locations."/" = { locations."/" = {
recommendedProxysettings = true; recommendedProxySettings = true;
proxyPass = "http://localhost:${toString port}"; proxyPass = "http://localhost:${toString port}";
}; };
}; };
@ -52,12 +58,15 @@ in {
}; };
}; };
}; };
services.forgejo = { services.forgejo = {
enable = true; enable = true;
package = pkgs.forgejo; package = pkgs.forgejo;
stateDir = dataDir;
user = "git"; user = "git";
database = { database = {
name = "git";
user = "git"; user = "git";
type = "postgres"; type = "postgres";
}; };