2022-01-23 23:35:00 +01:00
|
|
|
{ config, lib, pkgs, ... }:
|
|
|
|
|
|
|
|
let
|
|
|
|
homer = pkgs.stdenv.mkDerivation rec {
|
|
|
|
pname = "homer";
|
2022-05-29 18:19:33 +02:00
|
|
|
version = "22.02.2";
|
2022-01-23 23:35:00 +01:00
|
|
|
|
|
|
|
src = pkgs.fetchurl {
|
|
|
|
urls = [
|
|
|
|
"https://github.com/bastienwirtz/${pname}/releases/download/v${version}/${pname}.zip"
|
|
|
|
];
|
2022-05-29 18:19:33 +02:00
|
|
|
sha256 = "sha256-34kukIT3ZrT03jIqnBT6h8T92fsQggWbCjf2NhVbHhI=";
|
2022-01-23 23:35:00 +01:00
|
|
|
};
|
|
|
|
nativeBuildInputs = [ pkgs.unzip ];
|
|
|
|
|
|
|
|
dontInstall = true;
|
|
|
|
sourceRoot = ".";
|
|
|
|
unpackCmd = "${pkgs.unzip}/bin/unzip -d $out $curSrc";
|
|
|
|
};
|
|
|
|
|
|
|
|
homeConfig = {
|
|
|
|
title = "Dashboard";
|
|
|
|
header = false;
|
|
|
|
footer = false;
|
|
|
|
connectivityCheck = true;
|
|
|
|
colums = "auto";
|
|
|
|
services = config.lib.webapps.homerServices;
|
|
|
|
};
|
|
|
|
in
|
|
|
|
{
|
|
|
|
networking.firewall.allowedTCPPorts = [
|
|
|
|
80
|
|
|
|
443
|
|
|
|
];
|
|
|
|
services.nginx = {
|
|
|
|
enable = true;
|
|
|
|
#virtualHosts."dashboard.rocks" = {
|
|
|
|
virtualHosts."_" = {
|
|
|
|
default = true;
|
|
|
|
locations = {
|
|
|
|
"/" = {
|
|
|
|
root = homer;
|
|
|
|
};
|
|
|
|
"=/assets/config.yml" = {
|
|
|
|
alias = pkgs.writeText "homerConfig.yml" (builtins.toJSON homeConfig);
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
webapps = {
|
|
|
|
dashboardCategories = [
|
|
|
|
{ name = "Applications"; tag = "app"; }
|
|
|
|
{ name = "Media-Management"; tag = "manag"; }
|
|
|
|
{ name = "Infrastructure"; tag = "infra"; }
|
|
|
|
];
|
|
|
|
};
|
|
|
|
}
|