2024-10-19 18:20:50 +02:00
|
|
|
{
|
|
|
|
inputs,
|
|
|
|
config,
|
|
|
|
pkgs,
|
|
|
|
lib,
|
|
|
|
...
|
|
|
|
}: let
|
|
|
|
cfg = config.services.homepage-dashboard;
|
|
|
|
baseurl = "homepage.venberg.xyz";
|
|
|
|
in {
|
|
|
|
services.homepage-dashboard = {
|
|
|
|
enable = true;
|
|
|
|
settings = {
|
|
|
|
theme = "dark";
|
|
|
|
color = "slate";
|
|
|
|
headerStyle = "boxed";
|
|
|
|
base = "https://${baseurl}";
|
|
|
|
language = "en";
|
2024-10-21 16:06:30 +02:00
|
|
|
hideVersion = true;
|
2024-10-19 18:20:50 +02:00
|
|
|
statusStyle = "dot";
|
|
|
|
quicklaunch = {
|
|
|
|
searchDescriptions = true;
|
|
|
|
hideInternetSearch = false;
|
|
|
|
hideVisitUrl = false;
|
2024-10-21 16:06:30 +02:00
|
|
|
provider = "duckduckgo";
|
2024-10-19 18:20:50 +02:00
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
widgets = [
|
|
|
|
{
|
|
|
|
datetime = {
|
|
|
|
text_size = "x2";
|
|
|
|
locale = "en-CA";
|
|
|
|
format = {
|
|
|
|
hourCycle = "h23";
|
|
|
|
hour12 = false;
|
|
|
|
year = "numeric";
|
|
|
|
month = "numeric";
|
|
|
|
day = "numeric";
|
|
|
|
hour = "numeric";
|
|
|
|
minute = "numeric";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|
|
|
|
{
|
|
|
|
resources = {
|
|
|
|
cpu = true;
|
|
|
|
disk = "/";
|
|
|
|
memory = true;
|
|
|
|
};
|
|
|
|
}
|
|
|
|
{
|
|
|
|
openmeteo = {
|
|
|
|
label = "Current";
|
|
|
|
units = "metric";
|
|
|
|
cache = 5;
|
|
|
|
};
|
|
|
|
}
|
|
|
|
{
|
|
|
|
openmeteo = {
|
|
|
|
label = "Mainz";
|
|
|
|
timezone = "Europe/Berlin";
|
|
|
|
units = "metric";
|
|
|
|
cache = 5;
|
|
|
|
latitude = 49.999444;
|
|
|
|
longitude = 8.273611;
|
|
|
|
};
|
|
|
|
}
|
|
|
|
];
|
|
|
|
|
|
|
|
services = [
|
|
|
|
{
|
|
|
|
Family = [
|
|
|
|
{
|
|
|
|
Jellyfin = {
|
|
|
|
icon = "sh-jellyfin.svg";
|
|
|
|
href = "https://media.venberg.xyz";
|
|
|
|
siteMonitor = "https://media.venberg.xyz";
|
|
|
|
description = "Movies";
|
|
|
|
};
|
|
|
|
}
|
|
|
|
{
|
|
|
|
Grocy = {
|
|
|
|
icon = "sh-grocy.svg";
|
|
|
|
href = "https://grocy.venberg.xyz";
|
|
|
|
siteMonitor = "https://grocy.venberg.xyz";
|
|
|
|
description = "Family ERP";
|
|
|
|
};
|
|
|
|
}
|
|
|
|
{
|
2024-10-21 16:06:30 +02:00
|
|
|
Radicale = {
|
|
|
|
icon = "sh-radicale.svg";
|
|
|
|
href = "https://cal.venberg.xyz";
|
|
|
|
siteMonitor = "https://cal.venberg.xyz";
|
|
|
|
description = "Calander administration";
|
2024-10-19 18:20:50 +02:00
|
|
|
};
|
|
|
|
}
|
2024-10-21 13:03:56 +02:00
|
|
|
{
|
2024-10-21 16:06:30 +02:00
|
|
|
Syncthing = {
|
|
|
|
icon = "sh-syncthing.svg";
|
|
|
|
href = "http://localhost:8384";
|
|
|
|
description = "Local Syncthing dashboard";
|
2024-10-21 13:03:56 +02:00
|
|
|
};
|
|
|
|
}
|
2024-10-19 18:20:50 +02:00
|
|
|
];
|
|
|
|
}
|
|
|
|
{
|
|
|
|
Development = [
|
|
|
|
{
|
|
|
|
Forgejo = {
|
|
|
|
icon = "sh-forgejo.svg";
|
|
|
|
href = "https://git.venberg.xyz";
|
|
|
|
siteMonitor = "https://git.venberg.xyz";
|
|
|
|
description = "Self hosted Git forge.";
|
|
|
|
};
|
|
|
|
}
|
|
|
|
{
|
2024-10-21 16:06:30 +02:00
|
|
|
Github = {
|
|
|
|
icon = "si-github-#181717";
|
|
|
|
href = "https://github.com";
|
|
|
|
siteMonitor = "https://git.venberg.xyz";
|
|
|
|
description = "Non self hosted Git forge :(";
|
2024-10-19 18:20:50 +02:00
|
|
|
};
|
|
|
|
}
|
2024-11-13 11:51:20 +01:00
|
|
|
{
|
|
|
|
Cyberchef = {
|
|
|
|
icon="sh-cyberchef.svg";
|
|
|
|
href="https://cyberchef.venberg.xyz";
|
|
|
|
siteMonitor= "cyberchef.venberg.xyz";
|
|
|
|
description= "a data toolbox";
|
|
|
|
};
|
|
|
|
}
|
2024-10-19 18:20:50 +02:00
|
|
|
];
|
|
|
|
}
|
|
|
|
];
|
|
|
|
};
|
|
|
|
|
|
|
|
services.nginx.virtualHosts.${baseurl} = {
|
|
|
|
enableACME = true;
|
|
|
|
forceSSL = true;
|
|
|
|
locations."/" = {
|
|
|
|
proxyPass = "http://localhost:${toString cfg.listenPort}";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|