Compare commits

..

6 Commits

Author SHA1 Message Date
oysteikt 18ab1ef982 temmie/userweb: set -i and -t in sendmail wrapper
Build topology graph / evals (push) Successful in 2m23s
Eval nix flake / evals (push) Successful in 4m40s
2026-05-25 18:49:57 +09:00
oysteikt 5023edeb13 temmie/userweb: install mod_perl with custom env
Build topology graph / evals (push) Successful in 2m23s
Eval nix flake / evals (push) Successful in 4m2s
2026-05-25 18:24:23 +09:00
oysteikt 0d8c26c548 temmie/userweb: send propagatedBuildInputs through perl env wrapper
Build topology graph / evals (push) Successful in 2m22s
Eval nix flake / evals (push) Successful in 4m40s
2026-05-25 17:05:02 +09:00
oysteikt bd244e7797 temmie/userweb: add www2 server alias
Build topology graph / evals (push) Successful in 3m56s
Eval nix flake / evals (push) Successful in 4m49s
2026-05-25 16:24:35 +09:00
oysteikt e9220bb31e temmie/userweb: use www-datas UID + GID for backwards compat
Build topology graph / evals (push) Successful in 2m21s
Eval nix flake / evals (push) Successful in 4m36s
2026-05-25 15:25:26 +09:00
oysteikt 6beb9c62c3 temmie/userweb: use bro to proxy sendmail requests out of sandbox
Build topology graph / evals (push) Successful in 2m42s
Eval nix flake / evals (push) Successful in 4m7s
2026-05-25 15:02:40 +09:00
2 changed files with 37 additions and 15 deletions
+36 -14
View File
@@ -39,7 +39,7 @@ let
extraConfig = phpOptions;
};
perlEnv = pkgs.perl.withPackages (ps: with ps; [
perlEnv = (pkgs.perl.withPackages (ps: with ps; [
pkgs.exiftool
pkgs.ikiwiki
pkgs.irssi
@@ -54,7 +54,14 @@ let
ImageMagick
JSON
TemplateToolkit
]);
])).overrideAttrs (prev: {
# NOTE: `pkgs.perl.propagatedBuildInputs` don't actually propagate through the
# wrapper derivation created by `withPackages`. This should compensate
# for that.
postBuild = prev.postBuild + ''
cp -r '${pkgs.perl}/nix-support' "$out"/nix-support
'';
});
# https://nixos.org/manual/nixpkgs/stable/#python.buildenv-function
pythonEnv = pkgs.python3.buildEnv.override {
@@ -169,17 +176,21 @@ in
extraModules = [
"systemd"
"userdir"
# TODO: I think the compilation steps of pkgs.apacheHttpdPackages.mod_perl might have some
# incorrect or restrictive assumptions upstream, either nixpkgs or source
# {
# name = "perl";
# path = let
# mod_perl = pkgs.apacheHttpdPackages.mod_perl.override {
# apacheHttpd = cfg.package.out;
# perl = perlEnv;
# };
# in "${mod_perl}/modules/mod_perl.so";
# }
{
name = "perl";
path = let
mod_perl = pkgs.symlinkJoin {
name = "userweb_modperl_with_custom_perl_env";
ignoreCollisions = true;
paths = [
(pkgs.apacheHttpdPackages.mod_perl.override {
apacheHttpd = cfg.package.out;
})
perlEnv
];
};
in "${mod_perl}/modules/mod_perl.so";
}
];
extraConfig = ''
@@ -188,11 +199,14 @@ in
ScriptLog ${cfg.logDir}/cgi.log
'';
# virtualHosts."userweb.pvv.ntnu.no" = {
virtualHosts."temmie.pvv.ntnu.no" = {
forceSSL = true;
enableACME = true;
serverAliases = [
"www2.pvv.ntnu.no"
];
extraConfig = ''
UserDir ${lib.concatMapStringsSep " " (l: "/home/pvv/${l}/*/web-docs") homeLetters}
UserDir disabled root
@@ -243,6 +257,14 @@ in
# ];
# };
# NOTE: 54 -> 33, this is the UID/GID we used for www-data on tom in the past.
# Any files accessed by or created by httpd will do so over NFS with this
# UID/GID pair as its credentials.
# This overlaps with the hardcoded `disnix` uid in nixpkgs, but we *probably*
# won't be using that for the foreseeable future.
users.users."wwwrun".uid = lib.mkForce 33;
users.groups."wwwrun".gid = lib.mkForce 33;
systemd.services.httpd = {
after = [ "pvv-homedirs.target" ];
requires = [ "pvv-homedirs.target" ];
+1 -1
View File
@@ -40,7 +40,7 @@
args=("-f$USERDIR_USER" "''${args[@]}")
fi
exec '${lib.getExe pkgs.system-sendmail}' "''${args[@]}"
exec '${lib.getExe pkgs.system-sendmail}' -t -i "''${args[@]}"
'';
};
in lib.getExe sendmailWrapper;