buildbot/nix-eval Build done.
buildbot/nix-build gitea:greg/nixos#checks.x86_64-linux.hm-exodus Build done.
buildbot/nix-build gitea:greg/nixos#checks.x86_64-linux.hm-icdm-root Build done.
buildbot/nix-build gitea:greg/nixos#checks.x86_64-linux.hm-jeremiah Build done.
buildbot/nix-build gitea:greg/nixos#checks.x86_64-linux.nixos-genesis Build done.
buildbot/nix-build gitea:greg/nixos#checks.x86_64-linux.hm-zeke Build done.
buildbot/nix-build gitea:greg/nixos#checks.x86_64-linux.nixos-linode Build done.
buildbot/nix-build gitea:greg/nixos#checks.aarch64-darwin.hm-gregs-MacBook-Pro-16-inch-Nov-2024 Build done.
buildbot/nix-build gitea:greg/nixos#checks.aarch64-darwin.hm-ivr Build done.
buildbot/nix-build gitea:greg/nixos#checks.x86_64-linux."pkg-zim-wikipedia-wikipedia_ht_all_maxi.zim" Build done.
buildbot/nix-build gitea:greg/nixos#checks.x86_64-linux."pkg-zim-phet-phet_fr_all.zim" Build done.
buildbot/nix-build gitea:greg/nixos#checks.x86_64-linux."pkg-zim-phet-phet_en_all.zim" Build done.
buildbot/nix-build gitea:greg/nixos#checks.x86_64-linux."pkg-zim-wikiversity-wikiversity_fr_all_maxi.zim" Build done.
buildbot/nix-build gitea:greg/nixos#checks.x86_64-linux."pkg-zim-wikibooks-wikibooks_fr_all_maxi.zim" Build done.
buildbot/nix-build gitea:greg/nixos#checks.x86_64-linux."pkg-zim-wiktionary-wiktionary_fr_all_nopic.zim" Build done.
buildbot/nix-build gitea:greg/nixos#checks.x86_64-linux."pkg-zim-wikiversity-wikiversity_en_all_maxi.zim" Build done.
buildbot/nix-build gitea:greg/nixos#checks.x86_64-linux."pkg-zim-wikibooks-wikibooks_en_all_maxi.zim" Build done.
buildbot/nix-build gitea:greg/nixos#checks.x86_64-linux."pkg-zim-wiktionary-wiktionary_en_all_nopic.zim" Build done.
buildbot/nix-build gitea:greg/nixos#checks.x86_64-linux."pkg-zim-gutenberg-gutenberg_fr_all.zim" Build done.
buildbot/nix-build gitea:greg/nixos#checks.x86_64-linux."pkg-zim-wikisource-wikisource_en_all_maxi.zim" Build done.
buildbot/nix-build gitea:greg/nixos#checks.x86_64-linux."pkg-zim-wikisource-wikisource_fr_all_maxi.zim" Build done.
buildbot/nix-build gitea:greg/nixos#checks.x86_64-linux."pkg-zim-wikipedia-wikipedia_fr_all_maxi.zim" Build done.
buildbot/nix-build Build done.
buildbot/nix-build gitea:greg/nixos#checks.x86_64-linux."pkg-zim-wikipedia-wikipedia_en_all_maxi.zim" Build done.
177 lines
3.6 KiB
Nix
177 lines
3.6 KiB
Nix
{
|
||
config,
|
||
lib,
|
||
metadata,
|
||
pkgs,
|
||
top,
|
||
...
|
||
}:
|
||
{
|
||
imports = [
|
||
../modules/nix-conf.nix
|
||
top.niks3.nixosModules.niks3-auto-upload
|
||
];
|
||
|
||
age.secrets.niks3-api-token.file = ../secrets/niks3/api_token.age;
|
||
|
||
console = {
|
||
font = "Lat2-Terminus16";
|
||
keyMap = "us";
|
||
};
|
||
|
||
environment.systemPackages = with pkgs; [
|
||
top.niks3.packages.${pkgs.stdenv.hostPlatform.system}.niks3
|
||
agenix
|
||
bitwarden-cli
|
||
bmon
|
||
btop
|
||
btrfs-progs
|
||
coreutils-full
|
||
diffutils
|
||
efibootmgr
|
||
findutils
|
||
file
|
||
git
|
||
gnupatch
|
||
top.self.packages.${pkgs.stdenv.hostPlatform.system}.hms # My own home manager switcher
|
||
iperf
|
||
killall
|
||
nano
|
||
nfs-utils
|
||
lshw
|
||
pciutils
|
||
psmisc
|
||
pwgen
|
||
unzip
|
||
usbutils
|
||
wget
|
||
xfsprogs
|
||
];
|
||
|
||
i18n.defaultLocale = "en_US.UTF-8";
|
||
|
||
nix = {
|
||
gc.dates = "weekly";
|
||
settings.auto-optimise-store = true;
|
||
};
|
||
|
||
# Network Manager pulls in too many deps
|
||
networking = {
|
||
extraHosts =
|
||
let
|
||
onNetwork =
|
||
attr: _k: v:
|
||
(builtins.hasAttr attr v) && v.${attr} != null;
|
||
getIPs =
|
||
attr: domain:
|
||
(lib.mapAttrsToList (host: v: "${builtins.getAttr attr v} ${host}.${domain}") (
|
||
lib.filterAttrs (onNetwork attr) metadata.hosts
|
||
));
|
||
in
|
||
builtins.concatStringsSep "\n" (
|
||
(getIPs "ts" "shire-zebra.ts.net")
|
||
++ (getIPs "nebulaIp" "nebula.thehellings.com")
|
||
++ (getIPs "nebulaIp" "nebula")
|
||
++ (getIPs "ip" "thehellings.lan")
|
||
);
|
||
search = [
|
||
"nebula.thehellings.com"
|
||
];
|
||
networkmanager.enable = false;
|
||
};
|
||
|
||
programs = {
|
||
gnupg.agent.enable = true;
|
||
|
||
xonsh = {
|
||
enable = true;
|
||
};
|
||
|
||
ssh = {
|
||
knownHosts = builtins.mapAttrs (n: v: {
|
||
extraHostNames = [
|
||
"${n}.thehellings.lan"
|
||
"${n}.shire-zebra.ts.net"
|
||
];
|
||
publicKey = v.pubkey;
|
||
}) (lib.filterAttrs (_: v: v ? "pubkey") metadata.hosts);
|
||
};
|
||
};
|
||
|
||
# Enable the OpenSSH daemon for remote control
|
||
services = {
|
||
locate.enable = true;
|
||
niks3-auto-upload = {
|
||
enable = config.greg.nix.cache;
|
||
authTokenFile = config.age.secrets.niks3-api-token.path;
|
||
serverUrl = "http://hosea.nebula.thehellings.com:5751";
|
||
verifyS3Integrity = true;
|
||
};
|
||
openssh = {
|
||
enable = true;
|
||
settings.X11Forwarding = true;
|
||
};
|
||
prometheus.exporters = {
|
||
node = {
|
||
enable = true;
|
||
enabledCollectors = [
|
||
"ethtool"
|
||
"logind"
|
||
"mountstats"
|
||
"systemd"
|
||
"tcpstat"
|
||
];
|
||
};
|
||
ping = {
|
||
enable = true;
|
||
settings = {
|
||
ping = {
|
||
interval = "10s";
|
||
timeout = "5s";
|
||
};
|
||
targets = [
|
||
"thehellings.com"
|
||
"genesis.shire-zebra.ts.net"
|
||
"www.google.com"
|
||
];
|
||
};
|
||
};
|
||
systemd.enable = true;
|
||
};
|
||
};
|
||
|
||
security = {
|
||
sudo-rs = {
|
||
enable = true;
|
||
extraRules = [
|
||
{
|
||
users = [ "greg" ];
|
||
commands = [
|
||
{
|
||
command = "ALL";
|
||
options = [ "NOPASSWD" ];
|
||
}
|
||
];
|
||
}
|
||
];
|
||
};
|
||
sudo.enable = false;
|
||
};
|
||
|
||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||
users.users.greg = {
|
||
isNormalUser = true;
|
||
createHome = true;
|
||
extraGroups = [
|
||
"wheel"
|
||
]; # Enable ‘sudo’ for the user.
|
||
shell = config.programs.xonsh.package;
|
||
initialPassword = "password";
|
||
openssh.authorizedKeys.keys = lib.strings.splitString "\n" (
|
||
builtins.readFile ../home/ssh/authorized_keys
|
||
);
|
||
};
|
||
|
||
system.stateVersion = "24.11";
|
||
}
|