Files
nixos/hosts/genesis/default.nix
T

147 lines
3.7 KiB
Nix
Raw Normal View History

2023-06-29 00:27:30 -05:00
# 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).
2025-02-18 15:14:17 -06:00
{ config, pkgs, ... }:
2023-06-29 00:27:30 -05:00
2025-02-18 15:14:17 -06:00
let
dashy_port = "8080";
speedtest_port = "19472";
in
2023-06-29 00:27:30 -05:00
{
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix
./home-assistant.nix
./networking.nix
];
2023-09-02 20:07:12 -05:00
2025-02-18 15:14:17 -06:00
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}";
};
};
2024-02-20 14:49:48 -06:00
# Bootloader.
boot.loader.grub = {
enable = true;
device = "/dev/vda";
useOSProber = true;
};
environment.systemPackages = with pkgs; [
awscli2
create_ssl
step-ca
];
2025-02-18 15:14:17 -06:00
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";
}
];
}
];
};
};
};
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" ];
};
};
2023-06-29 00:27:30 -05:00
}