Somehow this got lost yesterday after some weird jj issue.
4B7V7XF3UOGCB2475RAXX7LDLLJ3LRZJIU7KNINGU27FXFSDDXYQC pkgs,self,config,lib,...}:letinherit (config.networking) domain;inherit (lib) enabled mkForce;
config.flake.modules.nixos.forgejo ={pkgs,config,lib,...}:letinherit (config.networking) domain;inherit (config.myLib) merge;inherit (lib) mkForce;
fqdn = "git.${domain}";port = 8001;in{imports = [./nginx.nix];
fqdn = "git.${domain}";port = 8001;in{# combine AcceptEnv settings for SSH and Git protocolservices.openssh.settings.AcceptEnv = mkForce ["SHELLS""COLORTERM""GIT_PROTOCOL"];
age.secrets.forgejoAdminPassword = {rekeyFile = self + /secrets/plum-forgejo-password.age;owner = "forgejo";};
# backup configuration for sqlite database and datasystemd.services.forgejo-backup = {description = "Backup Forgejo data and database";after = [ "forgejo.service" ];
# combine AcceptEnv settings for SSH and Git protocolservices.openssh.settings.AcceptEnv = mkForce ["SHELLS""COLORTERM""GIT_PROTOCOL"];
script = ''mkdir -p /var/backup/forgejocp -r /var/lib/forgejo /var/backup/forgejo/$(date +%Y%m%d_%H%M%S)
# backup configuration for sqlite database and datasystemd.services.forgejo-backup = {description = "Backup Forgejo data and database";after = [ "forgejo.service" ];
# keep only last 7 backupsls -1t /var/backup/forgejo/ | tail -n +8 | xargs -r rm -rf'';
systemd.timers.forgejo-backup = {description = "Run Forgejo backup daily";wantedBy = [ "timers.target" ];
services.forgejo = {enable = true;package = pkgs.forgejo; # The service version is ~11 so better to specify and get the latest.lfs.enable = true;
HTTP_ADDR = "::1";HTTP_PORT = port;SSH_DOMAIN = fqdn;SSH_PORT = 22;START_SSH_SERVER = false;DISABLE_ROUTER_LOG = true;};
DISABLE_ROUTER_LOG = true;};
services.nginx.virtualHosts.${fqdn} = lib.merge config.services.nginx.sslTemplate {extraConfig = ''${config.services.nginx.goatCounterTemplate}'';locations."/".proxyPass = "http://[::1]:${toString port}";};
services.nginx.virtualHosts.${fqdn} = merge config.services.nginx.sslTemplate {extraConfig = ''${config.services.nginx.goatCounterTemplate}'';locations."/".proxyPass = "http://[::1]:${toString port}";};};