From fc8178ed80388097d1e3ec16bb0e2e260479593b Mon Sep 17 00:00:00 2001 From: Jurn Wubben Date: Fri, 29 Aug 2025 11:05:27 +0200 Subject: [PATCH 1/6] Recreated options --- hosts/lapserv/default.nix | 34 ++++- hosts/minimal/default.nix | 2 +- secrets/bread-dcbot.age | Bin 1124 -> 0 bytes secrets/dcbot.age | 16 --- secrets/default.nix | 30 ++--- secrets/derek-bot.age | Bin 0 -> 1124 bytes secrets/jsw-bot.age | Bin 0 -> 1425 bytes secrets/secrets.nix | 4 +- system/server/caddy.nix | 16 +-- system/server/default.nix | 18 ++- system/server/{derekBot.nix => derek-bot.nix} | 34 ++--- system/server/forgejo.nix | 28 +++-- system/server/immich.nix | 28 +++-- system/server/index/default.nix | 22 ++-- system/server/{bot.nix => jsw-bot.nix} | 43 ++++--- system/server/lib/extractWebOptions.nix | 18 +++ system/server/lib/webOptions.nix | 16 +++ system/server/mail.nix | 18 ++- system/server/matrix.nix | 35 +++--- system/server/nextcloud.nix | 118 ++++++++++-------- system/server/temp.nix | 25 ++-- system/server/zitadel.nix | 25 ++-- 22 files changed, 325 insertions(+), 205 deletions(-) delete mode 100644 secrets/bread-dcbot.age delete mode 100644 secrets/dcbot.age create mode 100644 secrets/derek-bot.age create mode 100644 secrets/jsw-bot.age rename system/server/{derekBot.nix => derek-bot.nix} (73%) rename system/server/{bot.nix => jsw-bot.nix} (58%) create mode 100644 system/server/lib/extractWebOptions.nix create mode 100644 system/server/lib/webOptions.nix diff --git a/hosts/lapserv/default.nix b/hosts/lapserv/default.nix index 1cd0c0e..6e416f4 100644 --- a/hosts/lapserv/default.nix +++ b/hosts/lapserv/default.nix @@ -6,7 +6,39 @@ networking.interfaces.enp2s0.wakeOnLan.enable = true; niksos = { - server = true; + # server = true; + server = { + baseDomain = "jsw.tf"; + derek-bot.enable = true; + forgejo = { + enable = true; + subDomain = "git"; + }; + immich = { + enable = true; + subDomain = "photos"; + }; + jsw-bot = { + enable = true; + subDomain = "dc"; + }; + nextcloud = { + enable = true; + subDomain = "cloud"; + }; + stalwart = { + enable = true; + subDomain = "mail"; + }; + zitadel = { + enable = true; + subDomain = "z"; + }; + site = { + enable = true; + subDomain = ""; + }; + }; hardware.graphics = { nvidia = false; #FIXME: Compile error intel = true; diff --git a/hosts/minimal/default.nix b/hosts/minimal/default.nix index ee6495e..a782795 100644 --- a/hosts/minimal/default.nix +++ b/hosts/minimal/default.nix @@ -34,7 +34,7 @@ }; }; neovim = false; - server = false; + # server = false; }; #NOTE: Old info diff --git a/secrets/bread-dcbot.age b/secrets/bread-dcbot.age deleted file mode 100644 index e65c88bd9b882ef55c2e2bf2f372502f7b60c6d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1124 zcmYdHPt{G$OD?J`D9Oyv)5|YP*Do{V(zR14F3!+RO))YxHMCT453Gs|cU165P05W+ z%8fMkukdorPx8;m_73%R_fO1sHp(ceGIaJWtI8?MO(`xZ59BgQ57rL~3o8u^H7<0w zh)D7*i7JlD3-u_r3^hr~3C#_xGzm1z3(QbA|of`!mI#K zm-Ou12=5AWAEOlgz-0fx2yJ5v!*s6D$UKiygRmSYSAAp8qL6SWeedL8@1UTdB)_yk z<4AoEZ-2Mq2#?6z;Cyu3!kq(riX0UZ6Qd%HiqnFVJuR|xOcP5(iVX{jBHfBIlPeM{ z3L}#Oa?M?w^0GZMoLspK@}fNRGqqE*j0{VQb5cVC$|C~&QbJwJl1vNIgZ#by11xjW z+$!81i(S!eGuN-mj4W3OOV22dC=WF7v~=;ZFsaCQ@lTA%OmcDzh%huWj&iaLu5b)X z3pGqC%y8xMF*ee639od{HVq6-w={{!OLg^eDG2gPbTxO(a!HT!sqm^Oi>OTT$n{0H zEiACo%pg!9)xs#yL))c5J2^BlsWQ+}J3BAPB(2gj-_6WOKeWQYs94`6qtd&q%Bh^I zq}GMf9ClT(nX-9gF zi)m+xMZ38K>&LGYeB@DdoZ(9Re7otgLB6-PzrXd1?VnpyG}9)ghP;Y-`~!>yg^-ux)JbVKmOKd2mRKcutIgtgzC_0 zTh&Duk8OCIB6r=@WM{X82zyAFDA&8n`#W2?KM4Qt*T44uXeDx7}OC;}gae zXm-=$o{nAnVX@$M+upqS{p8M#Z*fwG?{s~SNtu7xah9{fKNs^Ixrg%$+Z)+-2mY*g ql@UD8baEO0dX;|?dZBiarziRaq}<+r;FqQ7l)OJjZLQ1OC4B%RsHp+~ diff --git a/secrets/dcbot.age b/secrets/dcbot.age deleted file mode 100644 index 823685d..0000000 --- a/secrets/dcbot.age +++ /dev/null @@ -1,16 +0,0 @@ -age-encryption.org/v1 --> ssh-ed25519 GQzYWA a0CqbXhMIeFmKsMSnQzPWJcdi0hH8caayThGHtKNdjc -ZfRN0ukqXH8L1E1pWBU+tw0LmPxsb6/4FoeERCKEYCk --> ssh-ed25519 MfR7VA WO0CmKh4CQY1ZLtgDbGIhxfbC8C/C9Vw4p4UGkZTzSs -0oQbzzz8A6WJRbFqEPR6WStMRRGtFy2eEXIJ1WCqvIg --> ssh-ed25519 +cvRTg ZYBJwTDV8zwZIpqY7sZIszS3saww0OV4RwVREVNxWHg -PW9gzG2odI4G2I5zz+Gr2vaouPB6796RWDJzYZNFREQ --> ssh-ed25519 WCPLrA p8I1d6YXg5pN6Ljeq/wsY5jj4rPaSvD+/au+vEUsgh4 -U0aiqeildEqF8SNh0L4hGIq3rQxY4HcSnDvluwldDpQ --> ssh-ed25519 7/ziYw 7DGE8Zr0qMGh3P5lUSRYT+AdgRges037cLjHbbPPnTc -daC7dau5IHSZr/HmjszbWrQNsVJOQILqNS/Yn1YE/zM --> ssh-ed25519 VQy60Q cAuS4VLmDC9iCZ+7e+/5WVIxrvBa7ZChCz2pPSSY/TY -ut6SAJSZMm9/YElx7SShyMufrBYAlb/IyQp0g4ADMa4 ---- DQrDZ/cXaadnKTDN8MrGuTokHttdMbOzs2IPYTIOPw4 -9 EJG($'_z3!;\k珐IE3%!zO*., `+',*ml%g?0'-<MwYj]SRaթV(ky6@`j9j~[_Dzd^"\7lO# cW=a~K],0![G~4!Xś|(C4)g^-5DnlIm C,-94bI: 1UxeM㒡X(ʼ5m[BXH f_J{ufOTD^*Y3-e-OBt .Qaሲ{m $W7L>r•'>b6D;w*.uYX`A**2$TtԌM_1NƋd -@cJst,ЅhaJpj:sG@P/L4>XR{fJB>z&;|vΚJSA,7E{MEwP:GcYR 糳 z@XՍ*j%MMĵB`HzSKUWy+xGDȓm~֛>%]R;98VLc (RXRrl!eSAʧG3jhw,2b1 \ No newline at end of file diff --git a/secrets/default.nix b/secrets/default.nix index 1681eb2..f8b1a50 100644 --- a/secrets/default.nix +++ b/secrets/default.nix @@ -14,35 +14,35 @@ in { password.file = ./password.age; # NOTE: server things - dcbot = mkIf server { - file = ./dcbot.age; - owner = serviceUser "dcbot"; # + jsw-bot = mkIf server.jsw-bot.enable { + file = ./jsw-bot.age; + owner = serviceUser "jsw-bot"; # }; - bread-dcbot = mkIf server { - file = ./bread-dcbot.age; - owner = "bread-dcbot"; + derek-bot = mkIf server.derek-bot.enable { + file = ./derek-bot.age; + owner = "derek-bot"; }; - matrix-registration = mkIf server { - file = ./matrix-registration.age; - owner = abstrServiceUser "matrix-continuwuity"; - }; - mail-admin = mkIf server { + # matrix-registration = mkIf server.matrix.enable { + # file = ./matrix-registration.age; + # owner = abstrServiceUser "matrix-continuwuity"; + # }; + mail-admin = mkIf server.stalwart.enable { # owner = serviceUser "stalwart-mail"; #FIXME: revert when stopped using docker for stalwart. file = ./mail-admin.age; }; - zitadel-key = mkIf server { + zitadel-key = mkIf server.zitadel.enable { file = ./zitadel-key.age; owner = abstrServiceUser "zitadel"; }; - forgejo-mailpass = mkIf server { + forgejo-mailpass = mkIf server.forgejo.enable { file = ./forgejo-mailpass.age; owner = abstrServiceUser "forgejo"; }; - immich-oidc = mkIf server { + immich-oidc = mkIf server.immich.enable { file = ./immich-oidc.age; owner = abstrServiceUser "immich"; }; - nextcloud-admin-pass = mkIf server { + nextcloud-admin-pass = mkIf server.nextcloud.enable { file = ./nextcloud-admin-pass.age; owner = "nextcloud"; #NOTE: not a clear 'nextcloud.service' or 'services.nextcloud.user'. }; diff --git a/secrets/derek-bot.age b/secrets/derek-bot.age new file mode 100644 index 0000000000000000000000000000000000000000..f45ac469bf36dc83ed10f2a869114b6d3da43dfb GIT binary patch literal 1124 zcmYdHPt{G$OD?J`D9Oyv)5|YP*Do{V(zR14F3!+RO))YxHMCT453Gs|cT`BV^hz}h z@^{P0E>A8E3{G|{O|8hR^2pS-DAsoKO9>5($}`Q?HZ}7Mx8Mp7$Sw5M4oJ(*@N`eI ztgOiNaZj%>3dzkc^fz&{NHoYwPY<#z(stB0GC{Y^H!a9K%uylODaqZS%%#x4%f~R( zAkD2J*elo9z$82(EW{|zCOxq=`Dl5z11;aM&Y$ zWk;BmxOwMkSLFL=T5yF1rl+_>dRF9_S>&0T6h!1lWOx}wxVWV_I~Nx^2ly0+xMq1} zy80U=MWWkgu3wcIS*{SC?3a|76crxj=$LA0nVlBl6p>V9UR9J`;uV}1U}9lx78MZU z?qQZ%Wx^GbA5fN@n^&9_m6%?cR#aqKrtjx!=^2>jVMv&HRiTGbfn~m7abQr8c~Q1|Iaj&9 zPkKs7kwuu0pDXhf}(# zrG9BuwqZ!Nuep0pMR-M3ws)9IX_{%4Q-o8Fc6w-4KyFk>AlK%oXE{qe%Uhp&9OIvt z-W=AtLUZ%0bp~onzW$#j&oo=|T=_3o0q^A!3G23d_?cKXr9bFXej=+V{fz53Ygxtg z|1amJaCc3%`tJL7;;!zl=m~pg@$YjESzmE(kFurBZx6Fx0a=M3hvHRY)}(Bjchn`; zQc`-RUU^W~3EfTF*S&w|8+eNZUu|P7(N@*Ba{M?u>apmKdc|M2qjEpD3)NrR5k)_X+x>*_eEO{KoHy1wMY`^GdsKfFvH_gSE+g~hCtmJ9Ya8iGB@m|-FA6qSh zGCWk(R;#5KekgiA`(8(OqPO z*k%arIjONdOihQ;;=;|9SFO)0ta0L6zh$%6&!Fhd%PhV*wg$^LndVw6>+#ML3y2I^ z9QKddNQ3FPV~yR!l-;f84c=SKp0g}8D(do7Z>hVSOcNf7v>wxAtGaA+Rf%2O;qskd neGFSm&o9)e@a6Mcsv7da#K41o~4>R literal 0 HcmV?d00001 diff --git a/secrets/jsw-bot.age b/secrets/jsw-bot.age new file mode 100644 index 0000000000000000000000000000000000000000..3e8c6a9e9ad3a0ef67e30611c4a5f9e57c4077f3 GIT binary patch literal 1425 zcmYdHPt{G$OD?J`D9Oyv)5|YP*Do{V(zR14F3!+RO))YxHMCT453Gs|cT`9T^-oPn zs`3d>H1G;@&rB(`2=eoA(RMUSE_8EpEzb-#GS1D=H%)cQa^&*2G?c}nckaUHz5>vnAh_nFxP@^(8m!#A@Hxo~f z63+_#_ed!=HuFWd zEiACo%pg!9+t@3$)X%cm(lETF$}>DXsidmRBE&L0A|x!YBC04Q)zHN}y}~d;JJXY^ z$lu-7B+W3>Da*^v(b7F9!`RV0Bs|KyJTE&c)!DJMD7&hxBqG(q$EBQ0S65ddGt1I1 zF~T4yD5WSb$vHX1x3r)zs?0k)x5UjPE3Mq9JgYc0v^cr2(9DfqlP$92>u)`7SS_|{rnIRj_sMigwNSS2 ziD9y5Hb?$%m?vQJuyx-yxBZUdJ=v$0PJG~Cbur|}sqkO=5A?8*0HEBOQ}Bk^y-@jxEER+G{~EqbUdX>ri9Pu{f>%VR(ZyAc58+NmPH6% zZ7Q0hB>yyO!|oLyCw$+>l~#9Y{w?lJHy=nWbeg?x@z1`+Q)Dvpm)c)&TIi?hI>Fia zbNgK%x#Xm6mkRE`oHSWltJXVA@AQnCV&>GDDQ`{7)4NwTMcnbfo>2B<_8SeZ^QpW$ z`44;VoZRs*$7Q}d(uU&O^v|DAQsak2iR9b39> zw|#t<;l&zIcI*GUl%2MZqPw1JyiIN2d@XfTmD{74><g!xaXW;cvgPV9(oKzp5Q#SN}9(=!^ZedDl7qz5tcg*8598&6{)XF95(5L{k6& literal 0 HcmV?d00001 diff --git a/secrets/secrets.nix b/secrets/secrets.nix index 1c98513..66e90da 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -14,8 +14,8 @@ let keys = users ++ devices; in { "password.age".publicKeys = keys; - "dcbot.age".publicKeys = keys; - "bread-dcbot.age".publicKeys = keys; + "jsw-bot.age".publicKeys = keys; + "derek-bot.age".publicKeys = keys; "matrix-registration.age".publicKeys = keys; "mail-admin.age".publicKeys = keys; "zitadel-key.age".publicKeys = keys; diff --git a/system/server/caddy.nix b/system/server/caddy.nix index 389cbed..47d34f1 100644 --- a/system/server/caddy.nix +++ b/system/server/caddy.nix @@ -3,13 +3,15 @@ lib, ... }: let - cfg = config.niksos.server; + inherit (config.services.caddy) enable; + inherit (lib) mkIf; in { - services.caddy = { - enable = cfg; - email = "jurnwubben@gmail.com"; - enableReload = false; - }; + config = mkIf enable { + services.caddy = { + email = "jurnwubben@gmail.com"; + enableReload = false; + }; - networking.firewall.allowedTCPPorts = lib.mkIf cfg [80 443]; + networking.firewall.allowedTCPPorts = [80 443]; + }; } diff --git a/system/server/default.nix b/system/server/default.nix index c232262..920d92c 100644 --- a/system/server/default.nix +++ b/system/server/default.nix @@ -1,16 +1,24 @@ -{lib, ...}: { +{lib, ...}: let + inherit (lib) mkOption types; +in { imports = [ # ./matrix.nix - ./bot.nix + # ./temp.nix + ./jsw-bot.nix ./caddy.nix - ./derekBot.nix + ./derek-bot.nix ./forgejo.nix ./immich.nix ./index ./mail.nix ./nextcloud.nix - ./temp.nix ./zitadel.nix ]; - options.niksos.server = lib.mkEnableOption "server servcies (such as caddy)."; #TODO: per service option. + options.niksos.server = { + baseDomain = mkOption { + type = types.lines; + description = "Set's the apex domain for the webservices. Do not include 'https' or a slash at the end. Just 'example.com'."; + example = "example.com"; + }; + }; } diff --git a/system/server/derekBot.nix b/system/server/derek-bot.nix similarity index 73% rename from system/server/derekBot.nix rename to system/server/derek-bot.nix index c71da3d..23d5d9d 100644 --- a/system/server/derekBot.nix +++ b/system/server/derek-bot.nix @@ -4,26 +4,26 @@ lib, ... }: let - cfg = config.niksos.server; - userGroup = "bread-dcbot"; + name = "derek-bot"; + cfg = config.niksos.server.${name}.enable; + + userGroup = name; gitRepo = "https://github.com/The-Breadening/Breadener"; - bash = lib.getExe pkgs.bash; + inherit (lib) getExe mkEnableOption mkIf; + bash = getExe pkgs.bash; + varLib = "/var/lib/"; - mainDir = - varLib - + ( - if !cfg - then "" - else userGroup - ) - + "/"; - programDir = mainDir + "program"; - denoDir = mainDir + "deno"; - tokenDir = mainDir + "Breadener-token"; + mainDir = "${varLib}${userGroup}"; + programDir = "${mainDir}/program"; + denoDir = "${mainDir}/deno"; + tokenDir = "${mainDir}/Breadener-token"; + path = builtins.concatStringsSep ":" (map (x: "${x}/bin/") [pkgs.coreutils pkgs.deno pkgs.git]); in { - config = lib.mkIf config.niksos.server { + options.niksos.server.${name}.enable = mkEnableOption name; + + config = mkIf cfg { systemd.services.${userGroup} = { enable = true; after = ["network.target"]; @@ -39,7 +39,7 @@ in { export PATH=${path} cd "${mainDir}" - chown -R ${userGroup}:${userGroup} ${mainDir}* || echo + chown -R ${userGroup}:${userGroup} ${mainDir}/* || echo rm -rf "${tokenDir}" || echo mkdir -p "${denoDir}" "${tokenDir}" @@ -48,7 +48,7 @@ in { if [ ! -d "${programDir}" ]; then git clone "${gitRepo}" "${programDir}" fi - chmod -R 750 ${mainDir}* || echo + chmod -R 750 ${mainDir}/* || echo cd "${programDir}" diff --git a/system/server/forgejo.nix b/system/server/forgejo.nix index 3b9da1e..423849b 100644 --- a/system/server/forgejo.nix +++ b/system/server/forgejo.nix @@ -3,17 +3,24 @@ lib, ... }: let - DOMAIN = "git.jsw.tf"; + name = "forgejo"; + cfg = import ./lib/extractWebOptions.nix {inherit config name;}; + + DOMAIN = cfg.domain; in { + options = import ./lib/webOptions.nix {inherit config lib name;}; config = - lib.mkIf config.niksos.server + lib.mkIf cfg.enable { - services.caddy.virtualHosts.${DOMAIN}.extraConfig = '' - request_body { - max_size 512M - } - reverse_proxy unix/${config.services.forgejo.settings.server.HTTP_ADDR} - ''; + services.caddy = { + enable = true; + virtualHosts.${DOMAIN}.extraConfig = '' + request_body { + max_size 512M + } + reverse_proxy unix/${config.services.forgejo.settings.server.HTTP_ADDR} + ''; + }; services.forgejo = { enable = true; @@ -52,12 +59,13 @@ in { DEFAULT_ACTIONS_URL = "github"; }; mailer = { + #FIXME: Only enable if stalwart is enabled by default. ENABLED = true; SUBJECT_PREFIX = "JSWGit"; PROTOCOL = "smtps"; - SMTP_ADDR = "mail.jsw.tf"; #FIXME: replace with config... to stalwart setting once using stalwart nixos module. + SMTP_ADDR = "mail.${cfg.baseDomain}"; #FIXME: replace with config... to stalwart setting once using stalwart nixos module. SMTP_PORT = 465; - FROM = "git@jsw.tf"; + FROM = "git@${cfg.baseDomain}"; USER = "git"; PASSWD_URI = "file:${config.age.secrets.forgejo-mailpass.path}"; }; diff --git a/system/server/immich.nix b/system/server/immich.nix index 3554292..772b26f 100644 --- a/system/server/immich.nix +++ b/system/server/immich.nix @@ -4,23 +4,29 @@ pkgs, ... }: let + name = "immich"; inherit (lib) mkIf mkForce mkDefault; - cfg = config.niksos.server; + cfg = import ./lib/extractWebOptions.nix {inherit config name;}; + oidcSubstitute = "*@#OPENIDCLIENTSECRET#@*"; config-dir = "/run/immich-conf"; - url = "photos.jsw.tf"; - httpsUrl = "https://" + url; + httpsUrl = "https://" + cfg.domain; in { - config = - mkIf cfg - { - users.users.${config.services.immich.user}.extraGroups = ["video" "render"]; - services.caddy.virtualHosts.${url}.extraConfig = '' - reverse_proxy localhost:9002 - ''; + options = import ./lib/webOptions.nix {inherit config lib name;}; - services.immich = mkIf cfg { + config = + mkIf cfg.enable + { + services.caddy = { + enable = true; + virtualHosts.${cfg.domain}.extraConfig = '' + reverse_proxy localhost:9002 + ''; + }; + + users.users.${config.services.immich.user}.extraGroups = ["video" "render"]; + services.immich = { enable = true; port = 9002; diff --git a/system/server/index/default.nix b/system/server/index/default.nix index 2cfd6f7..44a2634 100644 --- a/system/server/index/default.nix +++ b/system/server/index/default.nix @@ -2,13 +2,19 @@ config, lib, ... -}: { - services.caddy.virtualHosts."jsw.tf" = lib.mkIf config.niksos.server { - extraConfig = '' - header Content-Type text/html - respond < Date: Mon, 15 Sep 2025 20:16:31 +0200 Subject: [PATCH 2/6] Updated flake; small fixes to account for update; added unity for laptop --- flake.lock | 114 ++++++++++++++--------------- home/programs/neovim.nix | 7 +- home/programs/nixcord.nix | 2 +- home/programs/other.nix | 1 - home/wayland/hyprland/binds.nix | 17 ++++- home/wayland/hyprland/settings.nix | 7 +- hosts/laptop/default.nix | 27 ++++++- switch.sh | 2 +- system/hardware/fingerprint.nix | 6 +- system/hardware/power.nix | 2 +- system/nix/default.nix | 4 +- 11 files changed, 111 insertions(+), 78 deletions(-) diff --git a/flake.lock b/flake.lock index 33dbc22..145cbfc 100644 --- a/flake.lock +++ b/flake.lock @@ -28,11 +28,11 @@ "fromYaml": "fromYaml" }, "locked": { - "lastModified": 1746562888, - "narHash": "sha256-YgNJQyB5dQiwavdDFBMNKk1wyS77AtdgDk/VtU6wEaI=", + "lastModified": 1755819240, + "narHash": "sha256-qcMhnL7aGAuFuutH4rq9fvAhCpJWVHLcHVZLtPctPlo=", "owner": "SenchoPens", "repo": "base16.nix", - "rev": "806a1777a5db2a1ef9d5d6f493ef2381047f2b89", + "rev": "75ed5e5e3fce37df22e49125181fa37899c3ccd6", "type": "github" }, "original": { @@ -131,11 +131,11 @@ "firefox-gnome-theme": { "flake": false, "locked": { - "lastModified": 1748383148, - "narHash": "sha256-pGvD/RGuuPf/4oogsfeRaeMm6ipUIznI2QSILKjKzeA=", + "lastModified": 1756083905, + "narHash": "sha256-UqYGTBgI5ypGh0Kf6zZjom/vABg7HQocB4gmxzl12uo=", "owner": "rafaelmardojai", "repo": "firefox-gnome-theme", - "rev": "4eb2714fbed2b80e234312611a947d6cb7d70caf", + "rev": "b655eaf16d4cbec9c3472f62eee285d4b419a808", "type": "github" }, "original": { @@ -195,11 +195,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1754487366, - "narHash": "sha256-pHYj8gUBapuUzKV/kN/tR3Zvqc7o6gdFB9XKXIp1SQ8=", + "lastModified": 1756770412, + "narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "af66ad14b28a127c5c0f3bbb298218fc63528a18", + "rev": "4524271976b625a4a605beefd893f270620fd751", "type": "github" }, "original": { @@ -234,11 +234,11 @@ ] }, "locked": { - "lastModified": 1753121425, - "narHash": "sha256-TVcTNvOeWWk1DXljFxVRp+E0tzG1LhrVjOGGoMHuXio=", + "lastModified": 1756770412, + "narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "644e0fc48951a860279da645ba77fe4a6e814c5e", + "rev": "4524271976b625a4a605beefd893f270620fd751", "type": "github" }, "original": { @@ -255,11 +255,11 @@ ] }, "locked": { - "lastModified": 1751413152, - "narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=", + "lastModified": 1756770412, + "narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "77826244401ea9de6e3bac47c2db46005e1f30b5", + "rev": "4524271976b625a4a605beefd893f270620fd751", "type": "github" }, "original": { @@ -329,11 +329,11 @@ ] }, "locked": { - "lastModified": 1754416808, - "narHash": "sha256-c6yg0EQ9xVESx6HGDOCMcyRSjaTpNJP10ef+6fRcofA=", + "lastModified": 1757588530, + "narHash": "sha256-tJ7A8mID3ct69n9WCvZ3PzIIl3rXTdptn/lZmqSS95U=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "9c52372878df6911f9afc1e2a1391f55e4dfc864", + "rev": "b084b2c2b6bc23e83bbfe583b03664eb0b18c411", "type": "github" }, "original": { @@ -407,11 +407,11 @@ ] }, "locked": { - "lastModified": 1754593726, - "narHash": "sha256-bo6aSfDS/GGfM/6LXCKLH/246fDSKjFnBsaRMNE+Wmc=", + "lastModified": 1757920978, + "narHash": "sha256-Mv16aegXLulgyDunijP6SPFJNm8lSXb2w3Q0X+vZ9TY=", "owner": "nix-community", "repo": "home-manager", - "rev": "5de16c704b0fc8f519b2c19ed3f683a9e68f3884", + "rev": "11cc5449c50e0e5b785be3dfcb88245232633eb8", "type": "github" }, "original": { @@ -444,11 +444,11 @@ }, "mnw": { "locked": { - "lastModified": 1748710831, - "narHash": "sha256-eZu2yH3Y2eA9DD3naKWy/sTxYS5rPK2hO7vj8tvUCSU=", + "lastModified": 1756659871, + "narHash": "sha256-v6Rh4aQ6RKjM2N02kK9Usn0Ix7+OY66vNpeklc1MnGE=", "owner": "Gerg-L", "repo": "mnw", - "rev": "cff958a4e050f8d917a6ff3a5624bc4681c6187d", + "rev": "ed6cc3e48557ba18266e598a5ebb6602499ada16", "type": "github" }, "original": { @@ -500,11 +500,11 @@ ] }, "locked": { - "lastModified": 1754800038, - "narHash": "sha256-UbLO8/0pVBXLJuyRizYOJigtzQAj8Z2bTnbKSec/wN0=", + "lastModified": 1757822619, + "narHash": "sha256-3HIpe3P2h1AUPYcAH9cjuX0tZOqJpX01c0iDwoUYNZ8=", "owner": "nix-community", "repo": "nix-index-database", - "rev": "b65f8d80656f9fcbd1fecc4b7f0730f468333142", + "rev": "050a5feb5d1bb5b6e5fc04a7d3d816923a87c9ea", "type": "github" }, "original": { @@ -520,11 +520,11 @@ "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1754583575, - "narHash": "sha256-GLCNsMGuQQLq3B3+C+jEybyQCtV0xJytGjibNU3tg70=", + "lastModified": 1757726013, + "narHash": "sha256-7RPKqqlc5xawEbASZh18b6HX9FogiVTPIw0KdMEjpn8=", "owner": "kaylorben", "repo": "nixcord", - "rev": "e049d77a74b3360791800a1d50cbe9518d96b764", + "rev": "2133f2ab5af34dab65f5aa17f1f343777bc71070", "type": "github" }, "original": { @@ -551,11 +551,11 @@ }, "nixpkgs-lib": { "locked": { - "lastModified": 1753579242, - "narHash": "sha256-zvaMGVn14/Zz8hnp4VWT9xVnhc8vuL3TStRqwk22biA=", + "lastModified": 1754788789, + "narHash": "sha256-x2rJ+Ovzq0sCMpgfgGaaqgBSwY+LST+WbZ6TytnT9Rk=", "owner": "nix-community", "repo": "nixpkgs.lib", - "rev": "0f36c44e01a6129be94e3ade315a5883f0228a6e", + "rev": "a73b9c743612e4244d865a2fdee11865283c04e6", "type": "github" }, "original": { @@ -629,11 +629,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1754498491, - "narHash": "sha256-erbiH2agUTD0Z30xcVSFcDHzkRvkRXOQ3lb887bcVrs=", + "lastModified": 1757745802, + "narHash": "sha256-hLEO2TPj55KcUFUU1vgtHE9UEIOjRcH/4QbmfHNF820=", "owner": "nixos", "repo": "nixpkgs", - "rev": "c2ae88e026f9525daf89587f3cbee584b92b6134", + "rev": "c23193b943c6c689d70ee98ce3128239ed9e32d1", "type": "github" }, "original": { @@ -674,11 +674,11 @@ }, "nixpkgs_7": { "locked": { - "lastModified": 1751792365, - "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=", + "lastModified": 1756819007, + "narHash": "sha256-12V64nKG/O/guxSYnr5/nq1EfqwJCdD2+cIGmhz3nrE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb", + "rev": "aaff8c16d7fc04991cac6245bee1baa31f72b1e1", "type": "github" }, "original": { @@ -700,11 +700,11 @@ ] }, "locked": { - "lastModified": 1751906969, - "narHash": "sha256-BSQAOdPnzdpOuCdAGSJmefSDlqmStFNScEnrWzSqKPw=", + "lastModified": 1756961635, + "narHash": "sha256-hETvQcILTg5kChjYNns1fD5ELdsYB/VVgVmBtqKQj9A=", "owner": "nix-community", "repo": "NUR", - "rev": "ddb679f4131e819efe3bbc6457ba19d7ad116f25", + "rev": "6ca27b2654ac55e3f6e0ca434c1b4589ae22b370", "type": "github" }, "original": { @@ -724,11 +724,11 @@ "systems": "systems_3" }, "locked": { - "lastModified": 1754552918, - "narHash": "sha256-vbT+nGdMLNAeYZ1S5WBBLJTVWosGne2VRt46rqPfB2A=", + "lastModified": 1757773905, + "narHash": "sha256-lM1K3cJsPQyiSGI3rE/F7u02fA/JYBsinMN49IQCY1s=", "owner": "notashelf", "repo": "nvf", - "rev": "d61de135ce174f4e04b4e509de02e1afe040a834", + "rev": "7e74ee604a7c18dda21e6a809720ad37ab5bae43", "type": "github" }, "original": { @@ -793,11 +793,11 @@ "tinted-zed": "tinted-zed" }, "locked": { - "lastModified": 1754597531, - "narHash": "sha256-OpC9/PBIuL2WEJUkcuD/wVxI8r+3o6f5RylSIefjHo4=", + "lastModified": 1757360005, + "narHash": "sha256-VwzdFEQCpYMU9mc7BSQGQe5wA1MuTYPJnRc9TQCTMcM=", "owner": "nix-community", "repo": "stylix", - "rev": "63bb34a66ad7d1af2e95ee20dd675896b2074c32", + "rev": "834a743c11d66ea18e8c54872fbcc72ce48bc57f", "type": "github" }, "original": { @@ -917,11 +917,11 @@ "tinted-schemes": { "flake": false, "locked": { - "lastModified": 1750770351, - "narHash": "sha256-LI+BnRoFNRa2ffbe3dcuIRYAUcGklBx0+EcFxlHj0SY=", + "lastModified": 1754779259, + "narHash": "sha256-8KG2lXGaXLUE0F/JVwLQe7kOVm21IDfNEo0gfga5P4M=", "owner": "tinted-theming", "repo": "schemes", - "rev": "5a775c6ffd6e6125947b393872cde95867d85a2a", + "rev": "097d751b9e3c8b97ce158e7d141e5a292545b502", "type": "github" }, "original": { @@ -933,11 +933,11 @@ "tinted-tmux": { "flake": false, "locked": { - "lastModified": 1751159871, - "narHash": "sha256-UOHBN1fgHIEzvPmdNMHaDvdRMgLmEJh2hNmDrp3d3LE=", + "lastModified": 1754788770, + "narHash": "sha256-LAu5nBr7pM/jD9jwFc6/kyFY4h7Us4bZz7dvVvehuwo=", "owner": "tinted-theming", "repo": "tinted-tmux", - "rev": "bded5e24407cec9d01bd47a317d15b9223a1546c", + "rev": "fb2175accef8935f6955503ec9dd3c973eec385c", "type": "github" }, "original": { @@ -949,11 +949,11 @@ "tinted-zed": { "flake": false, "locked": { - "lastModified": 1751158968, - "narHash": "sha256-ksOyv7D3SRRtebpXxgpG4TK8gZSKFc4TIZpR+C98jX8=", + "lastModified": 1755613540, + "narHash": "sha256-zBFrrTxHLDMDX/OYxkCwGGbAhPXLi8FrnLhYLsSOKeY=", "owner": "tinted-theming", "repo": "base16-zed", - "rev": "86a470d94204f7652b906ab0d378e4231a5b3384", + "rev": "937bada16cd3200bdbd3a2f5776fc3b686d5cba0", "type": "github" }, "original": { diff --git a/home/programs/neovim.nix b/home/programs/neovim.nix index 317fa0c..c2f6e30 100644 --- a/home/programs/neovim.nix +++ b/home/programs/neovim.nix @@ -53,13 +53,17 @@ ts = { enable = true; - lsp.server = "ts_ls"; + lsp.server = "denols"; extensions.ts-error-translator.enable = true; }; clang = { enable = true; lsp.enable = true; }; + typst = { + enable = true; + format.type = "typstyle"; + }; bash.enable = true; css.enable = true; @@ -67,7 +71,6 @@ markdown.enable = true; nix.enable = true; svelte.enable = true; - typst.enable = true; rust.enable = true; python.enable = true; }; diff --git a/home/programs/nixcord.nix b/home/programs/nixcord.nix index 9a72e27..96aa1f4 100644 --- a/home/programs/nixcord.nix +++ b/home/programs/nixcord.nix @@ -23,7 +23,7 @@ "callTimer" "clearURLs" "copyFileContents" - "emoteCloner" + # "emoteCloner" "fakeNitro" "fixYoutubeEmbeds" "friendsSince" diff --git a/home/programs/other.nix b/home/programs/other.nix index 49c037e..c02cefa 100644 --- a/home/programs/other.nix +++ b/home/programs/other.nix @@ -13,7 +13,6 @@ pkgs.gimp pkgs.inkscape pkgs.thunderbird - pkgs.stremio ] ++ lib.optional osConfig.niksos.hardware.portable.enable self.packages.${pkgs.system}.visicut; } diff --git a/home/wayland/hyprland/binds.nix b/home/wayland/hyprland/binds.nix index 203049e..efb728f 100644 --- a/home/wayland/hyprland/binds.nix +++ b/home/wayland/hyprland/binds.nix @@ -64,6 +64,9 @@ ] ) 10); + + volumeUp = "${wpctl} set-volume -l '1.0' @DEFAULT_AUDIO_SINK@ 6%+"; + volumeDown = "${wpctl} set-volume -l '1.0' @DEFAULT_AUDIO_SINK@ 6%-"; in { wayland.windowManager.hyprland.settings = { "$m" = "ALT"; @@ -138,10 +141,20 @@ in { bindle = [ # volume - ", XF86AudioRaiseVolume, exec, ${wpctl} set-volume -l '1.0' @DEFAULT_AUDIO_SINK@ 6%+" - ", XF86AudioLowerVolume, exec, ${wpctl} set-volume -l '1.0' @DEFAULT_AUDIO_SINK@ 6%-" + ", XF86AudioRaiseVolume, exec, ${volumeUp}" + ", XF86AudioLowerVolume, exec, ${volumeDown}" ",XF86MonBrightnessUp, exec, ${brightnessctl} s 10%+" ",XF86MonBrightnessDown, exec, ${brightnessctl} s 10%-" ]; + + gesture = [ + "3, down, close" + "3, up, fullscreen" + "3, horizontal, workspace" + "4, left, dispatcher, exec, ${playerctl} previous" + "4, right, dispatcher, exec, ${playerctl} next" + "4, up, dispatcher, exec, ${volumeUp}" + "4, down, dispatcher, exec, ${volumeDown}" + ]; }; } diff --git a/home/wayland/hyprland/settings.nix b/home/wayland/hyprland/settings.nix index f8f5930..4aad142 100644 --- a/home/wayland/hyprland/settings.nix +++ b/home/wayland/hyprland/settings.nix @@ -74,12 +74,6 @@ }; }; - gestures = { - workspace_swipe = true; - workspace_swipe_forever = true; - workspace_swipe_direction_lock = false; - }; - dwindle = { pseudotile = true; preserve_split = true; @@ -97,6 +91,7 @@ "float, class:foot-somcli" "size >30% >30%, class:foot-somcli" ]; + #NOTE: Also check home/wayland/hyprland/binds + system/hardware/fingerprint }; } diff --git a/hosts/laptop/default.nix b/hosts/laptop/default.nix index 3a7927b..3a8d7b4 100644 --- a/hosts/laptop/default.nix +++ b/hosts/laptop/default.nix @@ -1,13 +1,16 @@ { + pkgs, + lib, + ... +}: { imports = [ ./hardware-configuration.nix - # ./virt.nix + ./virt.nix ]; # programs.appimage.enable = true; # programs.evolution.enable = true; # TODO: move to appropiate place. - # ! HII niksos = { hardware = { joycond = false; #NOTE: enable when game night lol @@ -39,6 +42,26 @@ }; home-manager.users.jsw.wayland.windowManager.hyprland.settings.monitor = ["eDP-1,2880x1920@120,0x0,1.5,vrr,1"]; + #FIXME: unity + nixpkgs.config.permittedInsecurePackages = ["libxml2-2.13.8"]; + environment = { + etc.vscode.source = lib.getExe pkgs.vscodium; + systemPackages = let + unityhub = pkgs.unityhub.overrideAttrs (prevAttrs: { + nativeBuildInputs = (prevAttrs.nativeBuildInputs or []) ++ [pkgs.makeBinaryWrapper]; + + postInstall = + (prevAttrs.postInstall or "") + + '' + wrapProgram $out/bin/unityhub --set GDK_SCALE 2 --set GDK_DPI_SCALE 0.5 + ''; + }); + in [ + unityhub + ]; + }; + #ENDFIXME + services.udev.extraRules = '' # Ethernet expansion card support ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="0bda", ATTR{idProduct}=="8156", ATTR{power/autosuspend}="20" diff --git a/switch.sh b/switch.sh index 713ffef..a9c481d 100755 --- a/switch.sh +++ b/switch.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash NH_FLAKE=$(mktemp -d) -git clone . "$NH_FLAKE" #TODO: replace . with valid bash for script dir. +cp -r . "$NH_FLAKE" #TODO: replace . with valid bash for script dir. cd "$NH_FLAKE" || exit git lfs install diff --git a/system/hardware/fingerprint.nix b/system/hardware/fingerprint.nix index a506268..d6e388b 100644 --- a/system/hardware/fingerprint.nix +++ b/system/hardware/fingerprint.nix @@ -13,10 +13,10 @@ in { config = mkIf hardware.fingerprint { services = { fprintd.enable = true; - logind.extraConfig = mkIf hypr '' + logind.settings.Login = mkIf hypr { # don’t shutdown when power button is short-pressed - HandlePowerKey=ignore - ''; + HandlePowerKey = "ignore"; + }; }; home-manager.users.jsw.wayland.windowManager.hyprland.settings = mkIf hypr { diff --git a/system/hardware/power.nix b/system/hardware/power.nix index 7521e27..03c486d 100644 --- a/system/hardware/power.nix +++ b/system/hardware/power.nix @@ -9,7 +9,7 @@ in { config = lib.mkIf cfg.enable { services = { - logind = { + logind.settings.Login = { powerKey = "suspend-then-hibernate"; powerKeyLongPress = "poweroff"; }; diff --git a/system/nix/default.nix b/system/nix/default.nix index f55a962..a11da8e 100644 --- a/system/nix/default.nix +++ b/system/nix/default.nix @@ -20,7 +20,7 @@ nix = let flakeInputs = lib.filterAttrs (_: v: lib.isType "flake" v) inputs; in { - package = pkgs.lix; + # package = pkgs.lix; # pin the registry to avoid downloading and evaling a new nixpkgs version every time registry = lib.mapAttrs (_: v: {flake = v;}) flakeInputs; @@ -31,7 +31,7 @@ settings = { auto-optimise-store = true; builders-use-substitutes = true; - experimental-features = ["nix-command" "flakes" "repl-flake"]; + experimental-features = ["nix-command" "flakes"]; flake-registry = "/etc/nix/registry.json"; # for direnv GC roots From 080db81f5a6adebbd85d5d835c84bb208dd510dd Mon Sep 17 00:00:00 2001 From: Jurn Wubben Date: Mon, 15 Sep 2025 20:27:23 +0200 Subject: [PATCH 3/6] Abstracted mkif enable for server options in secrets --- secrets/default.nix | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/secrets/default.nix b/secrets/default.nix index f8b1a50..c1cafa6 100644 --- a/secrets/default.nix +++ b/secrets/default.nix @@ -3,9 +3,9 @@ lib, ... }: let - inherit (lib) mkIf; inherit (config.niksos) server; + isEnabled = x: lib.mkIf server.${x}.enable; serviceUser = x: config.systemd.services.${x}.serviceConfig.User; abstrServiceUser = x: config.services.${x}.user; abstrServiceGroup = x: config.services.${x}.group; @@ -14,35 +14,35 @@ in { password.file = ./password.age; # NOTE: server things - jsw-bot = mkIf server.jsw-bot.enable { + jsw-bot = isEnabled "jsw-bot" { file = ./jsw-bot.age; owner = serviceUser "jsw-bot"; # }; - derek-bot = mkIf server.derek-bot.enable { + derek-bot = isEnabled "derek-bot" { file = ./derek-bot.age; owner = "derek-bot"; }; - # matrix-registration = mkIf server.matrix.enable { + # matrix-registration = isEnabled "matrix" { # file = ./matrix-registration.age; # owner = abstrServiceUser "matrix-continuwuity"; # }; - mail-admin = mkIf server.stalwart.enable { + mail-admin = isEnabled "stalwart" { # owner = serviceUser "stalwart-mail"; #FIXME: revert when stopped using docker for stalwart. file = ./mail-admin.age; }; - zitadel-key = mkIf server.zitadel.enable { + zitadel-key = isEnabled "zitadel" { file = ./zitadel-key.age; owner = abstrServiceUser "zitadel"; }; - forgejo-mailpass = mkIf server.forgejo.enable { + forgejo-mailpass = isEnabled "forgejo" { file = ./forgejo-mailpass.age; owner = abstrServiceUser "forgejo"; }; - immich-oidc = mkIf server.immich.enable { + immich-oidc = isEnabled "immich" { file = ./immich-oidc.age; owner = abstrServiceUser "immich"; }; - nextcloud-admin-pass = mkIf server.nextcloud.enable { + nextcloud-admin-pass = isEnabled "nextcloud" { file = ./nextcloud-admin-pass.age; owner = "nextcloud"; #NOTE: not a clear 'nextcloud.service' or 'services.nextcloud.user'. }; From fd140b740e9a1d52297995134365c85de05588db Mon Sep 17 00:00:00 2001 From: Jurn Wubben Date: Mon, 15 Sep 2025 20:33:11 +0200 Subject: [PATCH 4/6] Updated derekbot for new changes --- system/server/derek-bot.nix | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/system/server/derek-bot.nix b/system/server/derek-bot.nix index 23d5d9d..ec9df16 100644 --- a/system/server/derek-bot.nix +++ b/system/server/derek-bot.nix @@ -55,6 +55,11 @@ in { git fetch git reset --hard origin/HEAD + cat > .env < Date: Mon, 15 Sep 2025 20:36:39 +0200 Subject: [PATCH 5/6] Logind option changes now also applied to lapserv host files. --- hosts/lapserv/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hosts/lapserv/default.nix b/hosts/lapserv/default.nix index 6e416f4..4f334ec 100644 --- a/hosts/lapserv/default.nix +++ b/hosts/lapserv/default.nix @@ -59,5 +59,5 @@ AllowHybridSleep=no AllowSuspendThenHibernate=no ''; - services.logind.lidSwitchExternalPower = "ignore"; # INFO: Above apparantly wasn't enough. logind is flooding my logs. + services.logind.settings.Login.lidSwitchExternalPower = "ignore"; # INFO: Above apparantly wasn't enough. logind is flooding my logs. } From b90fdb0b8f1aeaaa9d8922b84566a99ecc8aad1a Mon Sep 17 00:00:00 2001 From: Jurn Wubben Date: Wed, 17 Sep 2025 09:00:12 +0000 Subject: [PATCH 6/6] Made pr worky --- hosts/lapserv/hardware-configuration.nix | 53 +++++++++++++---------- secrets/jsw-bot.age | Bin 1425 -> 1427 bytes system/server/jsw-bot.nix | 8 ++-- system/server/lib/extractWebOptions.nix | 6 +-- 4 files changed, 36 insertions(+), 31 deletions(-) diff --git a/hosts/lapserv/hardware-configuration.nix b/hosts/lapserv/hardware-configuration.nix index 5d3b114..282444c 100644 --- a/hosts/lapserv/hardware-configuration.nix +++ b/hosts/lapserv/hardware-configuration.nix @@ -1,39 +1,44 @@ # Do not modify this file! It was generated by ‘nixos-generate-config’ # and may be overwritten by future invocations. Please make changes # to /etc/nixos/configuration.nix instead. +{ config, lib, pkgs, modulesPath, ... }: + { - config, - lib, - pkgs, - modulesPath, - ... -}: { - imports = [ - (modulesPath + "/installer/scan/not-detected.nix") - ]; + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; - boot = { - initrd.availableKernelModules = ["xhci_pci" "ahci" "sd_mod"]; - initrd.kernelModules = []; - kernelModules = ["kvm-intel"]; - extraModulePackages = []; - }; + boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; - fileSystems = { - "/" = { - device = "/dev/disk/by-uuid/33b7e681-d92a-40db-a172-b797591a1e2e"; + # fileSystems."/" = + # { device = "/dev/disk/by-uuid/33b7e681-d92a-40db-a172-b797591a1e2e"; + # fsType = "ext4"; + # }; + # + # fileSystems."/boot" = + # { device = "/dev/disk/by-uuid/0BEA-7525"; + # fsType = "vfat"; + # options = [ "fmask=0022" "dmask=0022" ]; + # }; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/2ce4b2b1-0083-43b2-bd8d-0e8cd21b1ef6"; fsType = "ext4"; }; - "/boot" = { - device = "/dev/disk/by-uuid/0BEA-7525"; + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/AE71-FD70"; fsType = "vfat"; - options = ["fmask=0022" "dmask=0022"]; + options = [ "fmask=0022" "dmask=0022" ]; }; - }; - swapDevices = []; - networking.useDHCP = lib.mkDefault true; + swapDevices = + [ { device = "/dev/disk/by-uuid/f5af06e8-e285-4565-abc3-fdd0ddde4736"; } + ]; + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; } diff --git a/secrets/jsw-bot.age b/secrets/jsw-bot.age index 3e8c6a9e9ad3a0ef67e30611c4a5f9e57c4077f3..425482db78d0cd39ac23485018e42d0de87da0fb 100644 GIT binary patch delta 1343 zcmbQpJ(+ugPJMZ3pucI5nPGaOPo`0Ed6G%GcT%!N2H;vVPi}Tf zl(At!pi5Rcm#=e%zOhM8R(?T*Xi?yd%vIYt&qW*+7##qNd%enm+k1(n*y1%|o75t*Tr;~B-n%ffT--gi z6VuH-%q>f`%R?hf%9BDo(ur12&nWbaxQf)xajC2h4Ds#t(fv~_zGlM{dT+0ycCV2|k`nz&bh$YDEv2od#s@btE-i^Z@Kyf0W!IgIrY*=9T4rpN0Jtg8%MOJ8=2>`|Pyb;`^01|5{$X zcxk!o*~!{#r}qE9mR5W3$Z4O8KepX#TJ6B_&yM|!aBWZZr)pJBbH7#Gap*H%+KH(z3?5)O7Wc{l6v^Tk+Z+S*GW4 zV?%xT+Vl-;#k!YD3ATGz`u>)TH;p}+*VE0Ux5(kf4b}zO<R`-(lAXWo7|xw+mxb3tOC zV~t;!LUHXi)$Yn&Z delta 1341 zcmbQtJ&}8YPJK$Ke`-onl}~u0fmfJ&W=g3=ke`Q(wxdyUp_`Lyd1kPYac+jbX{u9} zBbUFWxns7uTcue>VNpm{aA8=0TY;BFMU|;zriGD#dxd^+L{WKUMYfT1B$uw8LUD11 zZfc5=si~o*f^S-od6=U@x`mHvdQeJ=iBnlonQxZ9v71v#WmJi?lTVg*p-+01OI3uM zo3m-Ae|}gbSAkh@Wrm4kRIqEfmxX?mb4Wu}3XLn=%?q+EL$qBdpJf!U&-BhP%Qp58sjN(@%&m+v3QZ~v z^{k30Pjd5cb+7OU^zyYxPc+QVvUIoLs)(ovF)~dp_jL{k3(C*42+_{ac5_aRstnK6 zH?)i@Otx?>_V-9BHa7D`kAbkjN;88%g=}N5)KWjoVoSsDk}A*e@TB^ZsxpfZ%kYSh zu)K<>qLfra7xVNA!wBt6Pp%?=cUO}%!%U|vFE>X^_nZu4NAr;IDDU#T?5I>{$I_zg zsw#bgJ zzxB9bwb-he(x#%^C(|X>LfO72hRL4U9QnUto`A{2)_vRD_B)FAWS?3(@qvTY#gHGT z!hh*Y^i=*Syt30p^O2`?`qK#R$1M4C`tt8D{kJu6mw@B*pKCVm(Ma((#lk znG!yq_d6+ke*{vB8SQa64wW+9nj*|S-s13VUe4OxoA6Hu4rTMqGH{E<7vCwJu zy2U^H7Eh7M%wKAM!D*qNs_O)2oKMzZ|P=$7|NC+8?oFfn1i+_o&o4)7W}~ z=4aF=@ErEp@OrnjT#vp^9#>IMQu5{(nv&%@HaQ6uUPj@Hmd{;9*bW@m+=&Ye3np|L;(lpVKbH6;srRSmP~u0v}hN`YGNksco&A zpZc45>!Kx3Z+>5R&Sdh}FYzvGqlz>7SLj&1&$x0h@2LK+r`x6`|EhL~UH#LDp)dB= V=3VFb`vO!}TkkLZG;hwizW_fgF984m diff --git a/system/server/jsw-bot.nix b/system/server/jsw-bot.nix index 3e6f25c..3ca37a4 100644 --- a/system/server/jsw-bot.nix +++ b/system/server/jsw-bot.nix @@ -13,7 +13,7 @@ bash = getExe pkgs.bash; - mainDir = "/var/lib/dcbot/"; + mainDir = "/var/lib/${name}/"; programDir = mainDir + "program"; dataDir = mainDir + "data"; denoDir = mainDir + "deno"; @@ -71,12 +71,12 @@ in { }; }; - users.groups."dcbot" = { + users.groups.${name} = { members = optional nextcloud.enable "nextcloud"; #TODO: if config.niksos.server.nextcloud #NOTE: for nextcloud mounted folder }; - users.users."dcbot" = { - group = "dcbot"; + users.users.${name} = { + group = name; isSystemUser = true; }; }; diff --git a/system/server/lib/extractWebOptions.nix b/system/server/lib/extractWebOptions.nix index 3d2245c..805fea1 100644 --- a/system/server/lib/extractWebOptions.nix +++ b/system/server/lib/extractWebOptions.nix @@ -11,8 +11,8 @@ then "" else "${cfg.subDomain}."; in + cfg // { - domain = "${subDomain}.${baseDomain}"; - inherit baseDomain; + domain = "${subDomain}${baseDomain}"; + inherit baseDomain subDomain; } - // cfg