NixOS/modules/servers/homepage.nix

54 lines
1.5 KiB
Nix

{ lib, config, proxyReverse, ... }:
let port = 8082;
in {
options.my.servers.homepage.enable = lib.mkEnableOption "enable";
config = lib.mkIf config.my.servers.homepage.enable {
sops.secrets.homepage.sopsFile = ../../secrets/env.yaml;
services = {
homepage-dashboard = {
enable = true;
listenPort = port;
environmentFile = config.sops.secrets.homepage.path;
settings = {
background =
"https://images.unsplash.com/photo-1502790671504-542ad42d5189?auto=format&fit=crop&w=2560&q=80";
};
widgets = [
{
resources = {
cpu = true;
cputemp = true;
units = "metric";
disk = "/";
memory = true;
};
}
{
search = {
provider = [ "brave" "bing" "google" ];
target = "_blank";
showSearchSuggestions = true;
};
}
];
services = [{
"Multimedia" = [{
Audiobookshelf = lib.mkIf config.my.servers.audiobookshelf.enable {
href = config.my.servers.audiobookshelf.url;
widget = {
type = "audiobookshelf";
url = config.my.servers.audiobookshelf.local;
key = "{{HOMEPAGE_VAR_AUDIOBOOKSHELF}}";
};
};
}];
}];
};
nginx = {
enable = true;
virtualHosts."home.${config.my.domain}" = proxyReverse port // { };
};
};
};
}