diff --git a/assets/forgejo/apple-touch-icon.png b/assets/forgejo/apple-touch-icon.png deleted file mode 100644 index 78da40f..0000000 Binary files a/assets/forgejo/apple-touch-icon.png and /dev/null differ diff --git a/assets/forgejo/avatar_default.png b/assets/forgejo/avatar_default.png deleted file mode 100644 index ce6f772..0000000 Binary files a/assets/forgejo/avatar_default.png and /dev/null differ diff --git a/assets/forgejo/favicon.png b/assets/forgejo/favicon.png deleted file mode 100644 index f6e48b9..0000000 Binary files a/assets/forgejo/favicon.png and /dev/null differ diff --git a/assets/forgejo/favicon.svg b/assets/forgejo/favicon.svg deleted file mode 100644 index 7cf10f5..0000000 --- a/assets/forgejo/favicon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/forgejo/logo.png b/assets/forgejo/logo.png deleted file mode 100644 index ca1d390..0000000 Binary files a/assets/forgejo/logo.png and /dev/null differ diff --git a/assets/forgejo/logo.svg b/assets/forgejo/logo.svg deleted file mode 100644 index 7cf10f5..0000000 --- a/assets/forgejo/logo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/flake.nix b/flake.nix index 821117f..c49e260 100644 --- a/flake.nix +++ b/flake.nix @@ -65,10 +65,6 @@ # racket "*.rkt" "**/rashrc" - - # custom assets - "*.png" - "*.svg" ]; settings.on-unmatched = "fatal"; }; diff --git a/hosts/kazuki/default.nix b/hosts/kazuki/default.nix index 8464cb5..df92f1c 100644 --- a/hosts/kazuki/default.nix +++ b/hosts/kazuki/default.nix @@ -15,6 +15,7 @@ ./storage.nix ./ntfy.nix ./zitadel.nix + ./forgejo.nix ./prometheus.nix ]; diff --git a/hosts/kazuki/forgejo.nix b/hosts/kazuki/forgejo.nix new file mode 100644 index 0000000..9f200e2 --- /dev/null +++ b/hosts/kazuki/forgejo.nix @@ -0,0 +1,62 @@ +{ config, ... }: +{ + age.secrets.rab-lol-cf = { + file = ../../secrets/rab-lol-cf.age; + owner = config.services.nginx.user; + }; + + services.forgejo = { + enable = true; + settings = { + server = { + DOMAIN = "git.rab.lol"; + ROOT_URL = "https://git.rab.lol/"; + }; + oauth2_client = { + REGISTER_EMAIL_CONFIRM = false; + ENABLE_AUTO_REGISTRATION = true; + ACCOUNT_LINKING = "auto"; + UPDATE_AVATAR = true; + }; + service = { + DISABLE_REGISTRATION = false; + ALLOW_ONLY_INTERNAL_REGISTRATION = false; + ALLOW_ONLY_EXTERNAL_REGISTRATION = true; + }; + federation.ENABLED = true; + }; + repositoryRoot = "/storage-box/forgejo/repos"; + lfs = { + enable = true; + contentDir = "/storage-box/forgejo/lfs"; + }; + }; + + services.nginx = { + enable = true; + recommendedProxySettings = true; + recommendedGzipSettings = true; + recommendedOptimisation = true; + recommendedTlsSettings = true; + virtualHosts."git.rab.lol" = { + forceSSL = true; + enableACME = true; + acmeRoot = null; + locations."/" = { + proxyPass = "http://127.0.0.1:3000"; + extraConfig = '' + proxy_set_header Connection $http_connection; + proxy_set_header Upgrade $http_upgrade; + ''; + }; + }; + }; + + users.users.nginx.extraGroups = [ "acme" ]; + security.acme.acceptTerms = true; + security.acme.certs."git.rab.lol" = { + dnsProvider = "cloudflare"; + credentialsFile = config.age.secrets.rab-lol-cf.path; + email = "nikodem@rabulinski.com"; + }; +} diff --git a/modules/system/containers.nix b/modules/system/containers.nix index 26e7e7e..a0942f9 100644 --- a/modules/system/containers.nix +++ b/modules/system/containers.nix @@ -85,12 +85,6 @@ let services.openssh.hostKeys = [ ]; system.stateVersion = lib.mkDefault config.system.stateVersion; - - networking.useHostResolvConf = false; - networking.nameservers = [ - "1.1.1.1" - "1.0.0.1" - ]; }; bindMounts = { @@ -101,11 +95,6 @@ let privateNetwork = lib.mkForce true; } ) config.settei.containers; - - networking.nat = lib.mkIf (config.settei.containers != { }) { - enable = true; - internalInterfaces = [ "ve-+" ]; - }; }; darwinConfig = lib.optionalAttrs (!isLinux) { diff --git a/services/default.nix b/services/default.nix index dfee582..1837462 100644 --- a/services/default.nix +++ b/services/default.nix @@ -2,6 +2,5 @@ imports = [ ./attic.nix ./forgejo-runner.nix - ./forgejo.nix ]; } diff --git a/services/forgejo.nix b/services/forgejo.nix deleted file mode 100644 index 4b9ea02..0000000 --- a/services/forgejo.nix +++ /dev/null @@ -1,98 +0,0 @@ -{ - services.forgejo = { - host = "kazuki"; - ports = [ 3000 ]; - config = - { config, pkgs, ... }: - { - age.secrets.rab-lol-cf = { - file = ../secrets/rab-lol-cf.age; - owner = config.services.nginx.user; - }; - - services.forgejo = { - enable = true; - package = pkgs.forgejo; - settings = { - server = { - DOMAIN = "git.rab.lol"; - ROOT_URL = "https://git.rab.lol/"; - }; - security = { - DISABLE_GIT_HOOKS = false; - }; - oauth2_client = { - REGISTER_EMAIL_CONFIRM = false; - ENABLE_AUTO_REGISTRATION = true; - ACCOUNT_LINKING = "auto"; - UPDATE_AVATAR = true; - }; - service = { - DISABLE_REGISTRATION = false; - ALLOW_ONLY_INTERNAL_REGISTRATION = false; - ALLOW_ONLY_EXTERNAL_REGISTRATION = true; - }; - session = { - SESSION_LIFE_TIME = 86400 * 30; - }; - federation.ENABLED = true; - }; - repositoryRoot = "/forgejo/repos"; - lfs = { - enable = true; - contentDir = "/forgejo/lfs"; - }; - }; - - systemd.tmpfiles.rules = - let - cfg = config.services.forgejo; - imgDir = pkgs.runCommand "forgejo-img-dir" { } '' - cp -R ${../assets/forgejo} "$out" - ''; - in - [ - "d '${cfg.customDir}/public' 0750 ${cfg.user} ${cfg.group} - -" - "d '${cfg.customDir}/public/assets' 0750 ${cfg.user} ${cfg.group} - -" - "L+ '${cfg.customDir}/public/assets/img' - - - - ${imgDir}" - ]; - - services.nginx = { - enable = true; - recommendedProxySettings = true; - recommendedGzipSettings = true; - recommendedOptimisation = true; - recommendedTlsSettings = true; - virtualHosts."git.rab.lol" = { - forceSSL = true; - enableACME = true; - acmeRoot = null; - locations."/" = { - proxyPass = "http://127.0.0.1:3000"; - extraConfig = '' - proxy_set_header Connection $http_connection; - proxy_set_header Upgrade $http_upgrade; - ''; - }; - }; - }; - - users.users.nginx.extraGroups = [ "acme" ]; - security.acme.acceptTerms = true; - security.acme.certs."git.rab.lol" = { - dnsProvider = "cloudflare"; - credentialsFile = config.age.secrets.rab-lol-cf.path; - email = "nikodem@rabulinski.com"; - }; - - fileSystems."/forgejo" = { - device = "/dev/disk/by-label/forgejo"; - fsType = "btrfs"; - options = [ - "compress=zstd" - "noatime" - ]; - }; - }; - }; -}