57 lines
1.6 KiB
Nix
57 lines
1.6 KiB
Nix
{
|
|
user ? throw "user argument is required",
|
|
home ? throw "home argument is required",
|
|
}:
|
|
{ config, pkgs, ... }:
|
|
let
|
|
hmConfig = config.home-manager.users.${user};
|
|
in
|
|
{
|
|
imports = [
|
|
(import ./authelia { inherit user home; })
|
|
(import ./gitea { inherit user home; })
|
|
(import ./grafana { inherit user home; })
|
|
(import ./media { inherit user home; })
|
|
(import ./nextcloud { inherit user home; })
|
|
(import ./ntfy { inherit user home; })
|
|
(import ./outline { inherit user home; })
|
|
(import ./prometheus { inherit user home; })
|
|
(import ./shlink { inherit user home; })
|
|
(import ./sish { inherit user home; })
|
|
(import ./traefik { inherit user home; })
|
|
(import ./transmission { inherit user home; })
|
|
(import ./vaultwarden { inherit user home; })
|
|
(import ./whoami { inherit user home; })
|
|
];
|
|
|
|
boot.kernel.sysctl = {
|
|
"net.ipv4.ip_unprivileged_port_start" = 0;
|
|
"vm.overcommit_memory" = 1;
|
|
};
|
|
|
|
home-manager.users.${user} = {
|
|
virtualisation.quadlet.autoUpdate.enable = true;
|
|
|
|
systemd.user.tmpfiles.rules = [
|
|
"d /mnt/storage/private/storm/containers/storage/volumes 700 storm storm"
|
|
];
|
|
|
|
sops = {
|
|
secrets."registry/docker.io".sopsFile = ../../../../../../../secrets/personal/secrets.yaml;
|
|
|
|
templates.containers-auth = {
|
|
content = builtins.readFile (
|
|
(pkgs.formats.json { }).generate "auth.json" {
|
|
auths = {
|
|
"docker.io" = {
|
|
auth = hmConfig.sops.placeholder."registry/docker.io";
|
|
};
|
|
};
|
|
}
|
|
);
|
|
path = "${home}/.config/containers/auth.json";
|
|
};
|
|
};
|
|
};
|
|
}
|