164 lines
4.1 KiB
Nix
164 lines
4.1 KiB
Nix
# Edit this configuration file to define what should be installed on
|
||
# your system. Help is available in the configuration.nix(5) man page
|
||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||
|
||
{ config, pkgs, ... }:
|
||
|
||
let
|
||
dashy_port = "8080";
|
||
speedtest_port = "19472";
|
||
uptime_kuma_port = "4000";
|
||
in
|
||
{
|
||
imports = [
|
||
# Include the results of the hardware scan.
|
||
./acme.nix
|
||
./hardware-configuration.nix
|
||
./home-assistant.nix
|
||
./networking.nix
|
||
];
|
||
|
||
greg = {
|
||
home = true;
|
||
gnome.enable = false;
|
||
proxies = {
|
||
"speed.home".target = "http://localhost:${speedtest_port}";
|
||
"speedtest.thehellings.lan".target = "http://localhost:${speedtest_port}";
|
||
"dashy.home".target = "http://localhost:${dashy_port}";
|
||
"uptime.home".target = "http://localhost:${uptime_kuma_port}";
|
||
};
|
||
};
|
||
|
||
# Bootloader.
|
||
boot.loader.grub = {
|
||
enable = true;
|
||
device = "/dev/vda";
|
||
useOSProber = true;
|
||
};
|
||
|
||
#boot.loader = {
|
||
# systemd-boot.enable = true;
|
||
# efi = {
|
||
# canTouchEfiVariables = true;
|
||
# efiSysMountPoint = "/boot/efi";
|
||
# };
|
||
#};
|
||
|
||
environment.systemPackages = with pkgs; [
|
||
awscli2
|
||
create_ssl
|
||
step-ca
|
||
];
|
||
|
||
networking.hostName = "genesis"; # Define your hostname.
|
||
|
||
services = {
|
||
dashy = {
|
||
enable = true;
|
||
settings = {
|
||
appConfig = {
|
||
enableFontAwesome = true;
|
||
statusCheck = true;
|
||
statusCheckInterval = 20;
|
||
theme = "callisto";
|
||
};
|
||
pageInfo = {
|
||
description = "Hellings Lab";
|
||
navLinks = [
|
||
{
|
||
path = "/";
|
||
title = "Home";
|
||
}
|
||
{
|
||
path = "http://speed.home";
|
||
title = "Local Speedtest";
|
||
}
|
||
];
|
||
};
|
||
sections = [
|
||
{
|
||
name = "Hosting";
|
||
displayData = {
|
||
sortBy = "alphabetical";
|
||
rows = 1;
|
||
cols = 1;
|
||
collapsed = false;
|
||
hideForGusts = false;
|
||
};
|
||
items = [
|
||
{
|
||
title = "Romans";
|
||
description = "Core Proxmox";
|
||
icon = "favicon";
|
||
url = "https://10.42.1.1:8006";
|
||
target = "newtab";
|
||
statusCheckAllowInsecure = true;
|
||
}
|
||
{
|
||
title = "Isaiah";
|
||
description = "Isaiah Proxmox";
|
||
icon = "favicon";
|
||
url = "https://isaiah.thehellings.lan:8006";
|
||
target = "newtab";
|
||
statusCheckAllowInsecure = true;
|
||
}
|
||
{
|
||
title = "Linode";
|
||
icon = "favicon";
|
||
url = "https://login.linode.com/login";
|
||
target = "newtab";
|
||
}
|
||
];
|
||
}
|
||
{
|
||
name = "Services";
|
||
displayData = {
|
||
sortBy = "alphabetical";
|
||
rows = 1;
|
||
cols = 1;
|
||
collapsed = false;
|
||
hideForGusts = false;
|
||
};
|
||
items = [
|
||
{
|
||
title = "Jellyfin";
|
||
description = "Home Jellyfin Server";
|
||
icon = "favicon";
|
||
url = "http://jellyfin.home";
|
||
target = "newtab";
|
||
}
|
||
{
|
||
title = "Speedtest";
|
||
description = "Local Speedtest";
|
||
icon = "favicon";
|
||
url = "http://speed.home";
|
||
target = "newtab";
|
||
}
|
||
];
|
||
}
|
||
];
|
||
};
|
||
};
|
||
uptime-kuma = {
|
||
enable = true;
|
||
settings = {
|
||
PORT = uptime_kuma_port;
|
||
};
|
||
};
|
||
};
|
||
|
||
virtualisation.oci-containers.containers = {
|
||
dashy = {
|
||
image = "lissy93/dashy:latest";
|
||
hostname = "dashy";
|
||
ports = [ "${dashy_port}:${dashy_port}" ];
|
||
volumes = [ "${config.services.dashy.finalDrv}/conf.yml:/app/user-data/conf.yml" ];
|
||
};
|
||
speedtest = {
|
||
image = "ghcr.io/librespeed/speedtest";
|
||
hostname = "speedtest";
|
||
ports = [ "${speedtest_port}:80" ];
|
||
};
|
||
};
|
||
}
|