From 8e1b76e663c924667bd6fa81e5d103acefc9fa94 Mon Sep 17 00:00:00 2001 From: Simon Bruder Date: Sun, 10 Dec 2023 15:36:11 +0100 Subject: [PATCH] renge/forgejo: Migrate from gitea --- machines/renge/configuration.nix | 2 +- machines/renge/secrets.yaml | 8 +++--- .../renge/services/{gitea.nix => forgejo.nix} | 25 ++++++++++-------- machines/vueko/secrets/mail-users.nix | Bin 9797 -> 9799 bytes 4 files changed, 19 insertions(+), 16 deletions(-) rename machines/renge/services/{gitea.nix => forgejo.nix} (70%) diff --git a/machines/renge/configuration.nix b/machines/renge/configuration.nix index 4631074..aa4eab0 100644 --- a/machines/renge/configuration.nix +++ b/machines/renge/configuration.nix @@ -9,7 +9,7 @@ ./services/buchborgen.nix ./services/coturn.nix ./services/element-web.nix - ./services/gitea.nix + ./services/forgejo.nix ./services/grafana.nix ./services/hedgedoc.nix ./services/invidious diff --git a/machines/renge/secrets.yaml b/machines/renge/secrets.yaml index 5ba4037..bca8450 100644 --- a/machines/renge/secrets.yaml +++ b/machines/renge/secrets.yaml @@ -1,4 +1,4 @@ -gitea-mail: ENC[AES256_GCM,data:593Ks8r3W6i7oTsTu7d9NUQpeX64l2bU9/fo6jYHkPU=,iv:NLPh2B85CWmr9n8mbB/XrprG8kfu9AR3v8PqjgEsIjQ=,tag:q2fPoOtuFrEmXIe7Rvfj2Q==,type:str] +forgejo-mail: ENC[AES256_GCM,data:ZKVLM8moaNrp+S01EQFmaA/kXTP1lVOZp6u/NlkKCs8=,iv:s0rQPvFc9WoSI0XvmNFHDk48TvoCyug6ghKSWbtn2AM=,tag:Ym7PurXLFshGhW79ZLthRA==,type:str] go-neb-overrides: ENC[AES256_GCM,data:nogN8wqu5U1BXIAZwgKpTFbOvt18lVu/slJiimz0eJXi2UODokkHhCePGmiqaf+O7YUF7TQBriAas0MtwsDpE8MJIM2Y6rI4padW82WUjbUfiYNkqX04w7PO0uLPqApSjKVg6EoVi9Bta/03qBKQovvOnY/nDfuk81rQ3BgNnsuQn7vuNMx0UlsrN+sOryufz5214decJuAbTreMEWE1+9KBPgu2bxtaPrE4Wns5pSDYK6EjmFabe4xufIBxO5F36KzVmUojx2ZBiybYJr+LAy6xhMFE/SLqOClYn4bo7B8yt5v6zamrVTsyliqgs7m8NkJ3v3IkfCXStXgf+niWodKOfpOjEXNEOmV7FeNQurBvGX7cNeRz6wIw/gly/v2VRVz0trZ+A1pFXfmUYyj/yjfQRB7YSt694rgzo3IoDzqEuz28X7hrqdxERSUwnwh8ZdAClnjz3C6gcPHky4iZeLmB59xq/7FZN3wrpBwjNR3VCVFQh4KE3beqKJYEbNquA+NX7JJ1rlmBciIsBtFg4T4ItHr5HsY=,iv:ivOY92kz7Ibtog1drbWYZmcimYJYdCwzxFh2bWSmQx4=,tag:aaz7Kjv2YQqvdm6WGWvuRg==,type:str] hcloud_exporter-environment: ENC[AES256_GCM,data:EtGDTr7bnQeHAx1TjzmMSGFaiuZM7AzGIyDiXhfd2V9mVF7ebuaWnMw3ioN4gbvXT5rrxkFr2xNj6IoVl/oPgjdWxg32zwT862zWMwvbLTRGMYDUUovF,iv:+u9vx4A4IoPLIbwzagm4R31aQ9bJzMWFOc4ui62dgcs=,tag:oh9bOyLGOCBgujZvMJNmQg==,type:str] invidious-extra-settings: ENC[AES256_GCM,data:EdQ6Kivp1FwGqcSm3lT/phJ5NfP1WiV8lugvhEaQFZU/Fa/e9LP70F0H1GB0wy68qCjr2gMPaeE+B96Nmsy6Twuyp+CqrHw2suMuUw5sKW1E+sbomw==,iv:87TB5i9fz+0TYtV2ElNmFohsxStxcnM3V/Kuv7pbcT0=,tag:5MQNWdknw5IiYsrJv3HoJA==,type:str] @@ -15,8 +15,8 @@ sops: azure_kv: [] hc_vault: [] age: [] - lastmodified: "2023-08-18T10:01:41Z" - mac: ENC[AES256_GCM,data:EDvu6s1YSg9nQ/3ANPGIeTKp5Q0KxWx0ui5NKd7XTmO7Uf7T5D7Nb1Zz2uLcLwgYMQbNPBd+H2AQrDTy7ULaG7pIkBqSF7xcWqXYAuOJMVaJfsVJbqFFEeV/7zuJX0p8W7iLZWJM+6FMJsmkOY8VSelIMx3jTLwmuw0Mr2hbisg=,iv:9X2Wd/eVOZJKpfLjYM8jjvyumXrew/U0AChiUVhJ8TI=,tag:hofRvvjajNSibrzdxze0Fw==,type:str] + lastmodified: "2023-12-10T14:03:24Z" + mac: ENC[AES256_GCM,data:OKFeBx9aNrqZL4zRxwMWB7VgHjtjATwtl5qb4XHhV3Zjr2DBJHOeGWcCBU9AhnHy92D1EmYYCEc1YUgYhTjj/eJTCqduZOJWvQpsbSxviZP1Fzan0typqlSvhtneDwjeZnFO4Dl7rNpmV50rkBtuVn281TEGIwqGhNl46Is+iys=,iv:YpxDzjWR6O72QZoGnO3qOCeXoI3i6C0DeEqKxtHiE14=,tag:bouLuX2JlDqIl2eTamsBdw==,type:str] pgp: - created_at: "2022-03-23T13:59:53Z" enc: | @@ -57,4 +57,4 @@ sops: -----END PGP MESSAGE----- fp: FD4E1FB15DD0F36A77790229826C04C0BE319FA2 unencrypted_suffix: _unencrypted - version: 3.7.3 + version: 3.8.1 diff --git a/machines/renge/services/gitea.nix b/machines/renge/services/forgejo.nix similarity index 70% rename from machines/renge/services/gitea.nix rename to machines/renge/services/forgejo.nix index 1bd8bfb..f143d78 100644 --- a/machines/renge/services/gitea.nix +++ b/machines/renge/services/forgejo.nix @@ -1,29 +1,32 @@ { config, lib, pkgs, ... }: let - cfg = config.services.gitea; + cfg = config.services.forgejo; in { - sops.secrets.gitea-mail = { + sops.secrets.forgejo-mail = { owner = cfg.user; sopsFile = ../secrets.yaml; }; - systemd.services.gitea.serviceConfig.SupplementaryGroups = lib.singleton "keys"; + systemd.services.forgejo.serviceConfig.SupplementaryGroups = lib.singleton "keys"; - services.gitea = { + services.forgejo = { enable = true; - appName = "sbrudergit"; lfs = { enable = true; }; database.type = "postgres"; - mailerPasswordFile = config.sops.secrets.gitea-mail.path; + mailerPasswordFile = config.sops.secrets.forgejo-mail.path; settings = { + DEFAULT = { + APP_NAME = "sbrudergit"; + }; mailer = { ENABLED = true; - HOST = "vueko.sbruder.de:587"; - FROM = "gitea@sbruder.de"; - USER = "gitea@sbruder.de"; + PROTOCOL = "smtps"; + SMTP_ADDR = "vueko.sbruder.de"; + FROM = "forgejo@sbruder.de"; + USER = "forgejo@sbruder.de"; }; avatar = { DISABLE_GRAVATAR = true; @@ -42,7 +45,7 @@ in BUILTIN_SSH_SERVER_USER = "git"; START_SSH_SERVER = true; SSH_PORT = 2022; - SSH_SERVER_HOST_KEYS = "ssh/gitea.ed25519,ssh/gitea.rsa"; + SSH_SERVER_HOST_KEYS = "ssh/forgejo.ed25519,ssh/forgejo.rsa"; }; service = { DEFAULT_ALLOW_CREATE_ORGANIZATION = false; @@ -68,7 +71,7 @@ in forceSSL = true; locations."/" = { - proxyPass = "http://unix:/run/gitea/gitea.sock"; + proxyPass = "http://unix:/run/forgejo/forgejo.sock"; }; extraConfig = '' diff --git a/machines/vueko/secrets/mail-users.nix b/machines/vueko/secrets/mail-users.nix index 28b8e8b49f4579679c9cc207ceba4265c3f33e9c..cdf92a9674be225957df4ca3001e468fc8f0fc25 100644 GIT binary patch literal 9799 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 literal 9797 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