forgejo: use package from unstable and the new default robots.txt

This commit is contained in:
SebastianStork 2025-08-02 21:29:59 +02:00
parent 222841a064
commit 9bed5391ab

View file

@ -1,15 +1,11 @@
{ {
config, config,
pkgs, pkgs-unstable,
lib, lib,
... ...
}: }:
let let
cfg = config.custom.services.forgejo; cfg = config.custom.services.forgejo;
originalCfg = config.services.forgejo;
user = config.users.users.forgejo.name;
inherit (config.users.users.forgejo) group;
in in
{ {
options.custom.services.forgejo = { options.custom.services.forgejo = {
@ -31,12 +27,13 @@ in
ports.list = [ cfg.port ]; ports.list = [ cfg.port ];
}; };
sops.secrets."forgejo/admin-password".owner = user; sops.secrets."forgejo/admin-password".owner = config.users.users.forgejo.name;
services.forgejo = { services.forgejo = {
enable = true; enable = true;
lfs.enable = true; package = pkgs-unstable.forgejo;
lfs.enable = true;
settings = { settings = {
server = { server = {
DOMAIN = cfg.domain; DOMAIN = cfg.domain;
@ -74,7 +71,7 @@ in
systemd = { systemd = {
services.forgejo.preStart = services.forgejo.preStart =
let let
userCmd = "${lib.getExe originalCfg.package} admin user"; userCmd = "${lib.getExe config.services.forgejo.package} admin user";
credentials = lib.concatStringsSep " " [ credentials = lib.concatStringsSep " " [
"--username SebastianStork" "--username SebastianStork"
"--password \"$PASSWORD\"" "--password \"$PASSWORD\""
@ -86,23 +83,11 @@ in
${userCmd} create ${credentials} --email "sebastian.stork@pm.me" --admin \ ${userCmd} create ${credentials} --email "sebastian.stork@pm.me" --admin \
|| ${userCmd} change-password ${credentials} --must-change-password=false || ${userCmd} change-password ${credentials} --must-change-password=false
''; '';
tmpfiles.rules =
let
disallow-all-robots = pkgs.writeText "disallow-all-robots.txt" ''
User-agent: *
Disallow: /
'';
in
[
"d ${originalCfg.customDir}/public 750 ${user} ${group} - -"
"L+ ${originalCfg.customDir}/public/robots.txt 750 - - - ${disallow-all-robots}"
];
}; };
custom.services.resticBackups.forgejo = lib.mkIf cfg.doBackups { custom.services.resticBackups.forgejo = lib.mkIf cfg.doBackups {
conflictingService = "forgejo.service"; conflictingService = "forgejo.service";
extraConfig.paths = [ originalCfg.stateDir ]; extraConfig.paths = [ config.services.forgejo.stateDir ];
}; };
}; };
} }