From 817aab82b6b3ab8fe7d29f34f1ab162c60703eec Mon Sep 17 00:00:00 2001 From: Jeltz Date: Tue, 13 Aug 2024 01:27:16 +0200 Subject: [PATCH] discourse: add mail config and somme plugins Signed-off-by: Jeltz --- profiles/discourse.nix | 49 ++++++++++++++++++++++++---- secrets/discourse-admin.age | Bin 0 -> 1763 bytes secrets/discourse-mail-password.age | 32 ++++++++++++++++++ secrets/secrets.nix | 1 + 4 files changed, 76 insertions(+), 6 deletions(-) create mode 100644 secrets/discourse-admin.age create mode 100644 secrets/discourse-mail-password.age diff --git a/profiles/discourse.nix b/profiles/discourse.nix index 2bf016d..c2d02cd 100644 --- a/profiles/discourse.nix +++ b/profiles/discourse.nix @@ -1,8 +1,27 @@ -{ config, lib, pkgs, ... }: { - age.secrets.discourse-key-base = { - file = ../secrets/discourse-key-base.age; - owner = "discourse"; - group = "discourse"; +{ config, lib, pkgs, ... }: +let + discourse-shared-edits = pkgs.discourse.mkDiscoursePlugin { + name = "discourse-shared-edits"; + src = pkgs.fetchFromGitHub { + owner = "discourse"; + repo = "discourse-shared-edits"; + rev = "586d7c18d331e6430f696c2b5b57363a1ee07736"; + sha256 = "sha256-1CrUQvVL7utrzYv4onh48JUYp6GaDSzo+HdxhwpMqxU="; + }; + }; +in +{ + age.secrets = { + discourse-key-base = { + file = ../secrets/discourse-key-base.age; + owner = "discourse"; + group = "discourse"; + }; + discourse-mail-password = { + file = ../secrets/discourse-mail-password.age; + owner = "discourse"; + group = "discourse"; + }; }; services.postgresql.package = pkgs.postgresql_13; @@ -11,8 +30,26 @@ enable = true; hostname = "forum.federez.net"; secretKeyBaseFile = config.age.secrets.discourse-key-base.path; - # TODO(jeltz): mail + mail = { + outgoing = { + serverAddress = "dodecagon.federez.net"; + port = 465; + domain = "federez.net"; + username = "discourse"; + authentication = "plain"; + forceTLS = true; + passwordFile = config.age.secrets.discourse-mail-password.path; + }; + notificationEmailAddress = "forum@federez.net"; + }; admin.skipCreate = true; + plugins = with config.services.discourse.package.plugins; [ + discourse-calendar + discourse-math + discourse-shared-edits + discourse-solved + discourse-voting + ]; }; networking.firewall.allowedTCPPorts = [ 80 443 ]; diff --git a/secrets/discourse-admin.age b/secrets/discourse-admin.age new file mode 100644 index 0000000000000000000000000000000000000000..7438cd594247363db6a1ab416805de02cebd8d44 GIT binary patch literal 1763 zcmZ9Mxyt+s8OFsjoxSK+2@*cDO*RlAnPevWp2>oUnaRHI+XX0gmZv!vU@KbKSO_9m z2ws2|HiBXyf(UZJ&*I;l8+d>4JkRfqvgAE!U*plwMc00(8#8D{fcNjcO;i4!#3+s< z^jpU<=D5ARGAa!-=yW$;Zh2?x;Z32HKBu_w!Kun5U!B=s_B}03pbzbEh&Eg!(2w&B z4o)f47&gC`x;GN4%y@RcUxpyat539Xir%WxyDBCCv*6Q8wb1rybqZe>112_s79Y?l zxk~w@X0^TF8#~(*YInLjtsU&#Opn&QK{tI6BH>Vgc_U%0mTC7ON9)b|RZPCzV&v z8*U0OBqa=HC}`g}WzN_wr!!_XcqPRaD)NE+B||qQVo^=EU(%ACQ>qrwViDzW72v@s zvtwg=rw#jt?>uzc_&j5jT;O*DT_PL-PB-E4AyUGdArO0626xR8c%Hm&_6R&s*9ol-fdlAdqOoJeX5$HYpl=i1?p>;D~<{N?d0xp^& zHEq&#CBP!S#{MO?a#09KrXmgNpvvw#h`+9tc`}1|pFsp3^ zuZM%89Ahr|Sg^(gsAY&QV{T6)yaz*YDF>Y{!rhja>+|Rd3g~+!9%U|vuBFndafx2b zmo_Q|`dBQ>;OCOh^@YDItt){u9MGziBH*sg`!rT$a!f!K#Qdx~+w@o<Ae_^8$?Fr&Q$N+_$h)-{0M+D@#V1tYWvlBT)fyYzdBAaM zOEVizIEt9%yt09}KP4+!3j>o7PQ{&ug0>+gF94UowMQm4)(z~~L-fibHOuuDw@4}1 zhBq!RRI^x?ect_le4j--`cFE%< zKE+);RQ%{BO^r_bNT&;>*>di$?c5~=aQE(|=y0hiwXQ0E=-gBAf*klM6roqDg-o4Q z&Yh-rw@M{-iVSybX!fU0?^<{j8=&hgJgfEjsZ~6~DO3ts5kZihIVhp%PXvvgkfBlN z-nB{P8& znVRx`nA?s1!#R_@jM~8|20#*Ybeo~;XZ`UIX-|nrEf1bn1#Mwuvs$OW7DlKo?BGA`_>-fh z=%*jn4BbjO(-j^3}v~FG(RnAbi!MQZ)E7ZE48eW8OGC6$wgDn>k4z^`5N;g}Ht$vqTx0FG(O6 zw4K}!Ve=Q@gRZ}PWVp->OBnijOLU(us)k{R+8d-f1*4Lzy7e3`!2A3ATbJx!->Y;- zwY=wQtRF%P%6$AFPTCrpIq&f>yri8;g$(%3SB-z#pELjZ&o_|g-@pB<--mzr(Lb2K z{xSODH@~L-t ssh-ed25519 oDAQrw +aORlGGz/jqX0t4opGM5vMTgBKtAdL/z1KxfA4C43To +MNbp/PaSnpvyfZtmWWD6HYG3yHh2uWoXDY8V1Ft7+ac +-> ssh-rsa krWCLQ +2Px6I6WuRr10mMWlcUCAbnm6dyQa2hklmnwXtNPWXmKNPzHC6CGoye5dnOvkNKGN +5ekf2mK2ywzE2FQFVYOtY3Ss/60I4OTXmxNJ3qrCAU2z+f+53nAegguc3tB4Xvh8 +tQVQICaX1oVU/PD2SFX8QcTBORF2+Vc0Nd6fbuGl3dhSeESg7JLj5oaBCsthZD2J +U1ehTDS/+t6nogt1BdNZK10yFXRGk44jDMADMvvUPkIEW7mbvTFfMtXNhbemOn+X +oIXt8DNwzn3tF1IdOJ+vjtcU3gqYQYZVFKJV1DtQSA7i46Dl0J0+12+8/zKMX+yu +NKcaa/L1tz0lPX6ZeXhoOg +-> ssh-ed25519 /vwQcQ QoEbQ1IA4EKR97Fqa/NQN9RDUEubeZbvxMcd0ZFhwyU +OAFrGGXCxDFcsalinhG3JcXUj+RJawl6UnSgZkBwBrk +-> ssh-ed25519 0R97PA VkKhx5oVdrFjjSXwreIiGnH0nZEqY5Ls4OSpgpDn0jI +FC9SN+Woh6QBWV5r5TjtjFSp8mqw3LxgFJCQPjD8oss +-> ssh-rsa jL+Elw +UGQRNdtkdNbRVcoimpZsgBAGp95mtHwJ8V4CwlL82GqdIGM3LQDrCtPgFTC1C4Zx +lrgVaT/xi4WhRkkHCd0ZTzJ5i9NY9H/gnDaXKeKcTcQezH1yeMBLns92D2z7u0+1 +DyTzu8ZzZLvaej2b7gLU6u2BMC10AnBYP0LFuZlE3ndnr7ro9flKPb5A+IRbX339 +xkNlIOsTBdSfJJ27LKZVIOUS2Pxg1Kos9Wtbg1QsgeikdrA++QD0GhrRd+X4sFrf +Xfjq12XDakCfLmvi9QLJ2hy4X1glCO1lsBocDEaa2dGQMa2yVQi72z/92w83g98C +UO25VkpKwdGFBf8PfhKeEkdSQEJUNOe3mlTEvtpr5S3BM+//fSFHlaS1UMEeamC2 +OrcvTwdby9f4l0++9dEuPcgQYvMzbUndwFn2HI7a8fGSIF6iXeVdrl5zuR3Wgugr +ksMiQ6IyItrv/XlR5945dTxragWIwDeNJFE5EEYU3F7ryhT1FMKUWlt3lDazVuuj +PoLjUnXNhi7I+3XZ22e5P2BW7UmMbsPg3M9l+u+1U1vk/o28cZxrWV6VW4MB1Aiv +TXFXZSl123ag32PdKZ/dV7p4VC4hXEqyLA7qIrE9rFduEI5WQHqd1iL/pGxEOnuM +AOe/acgmB1hhVLCAwCCpERWyC1+Bn7UWRjrPKCLfqFc +-> ssh-ed25519 jIXfPA NaF9Sg7UkShfSzE59iFwKF4WMsc0xtAejl+20EQBNzc +4CJqeGTxwcG0ObXeWATVKQkqlyaKZEaHFfGBOc6Xpok +-> ssh-ed25519 um7xWA rlZ0xF57VNq1KHijaV9csD+Sq6cfp5DM9k1uuVOhLyY +7uYk1RIET7bkdXTHJdocqOiEtc6vqY4iOBB4cMJ7CyQ +--- FiH1HnZbKHvI9kclq8TrOFlQN6hvNd9M0mxdqjYM5gw + kj p [tϖU9dcڗNE#c|ۃ䋷`GWMy v$d \ No newline at end of file diff --git a/secrets/secrets.nix b/secrets/secrets.nix index ea4fc61..7dab0dc 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -28,4 +28,5 @@ in "keycloak-password-file.age".publicKeys = [ lagon ] ++ keycloak-admins; "ldap-bind-password.age".publicKeys = servers ++ ldap-bind-admins; "discourse-key-base.age".publicKeys = [ pendragon ] ++ discourse-admins; + "discourse-mail-password.age".publicKeys = [ pendragon ] ++ discourse-admins; }