Separate system from home-manager again
This commit is contained in:
+4
-4
@@ -29,8 +29,8 @@ default:
|
|||||||
- IMG:
|
- IMG:
|
||||||
- img-bitwarden
|
- img-bitwarden
|
||||||
script:
|
script:
|
||||||
- nix run "nixpkgs#podman" login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY"
|
- nix run "nixpkgs#podman" -- login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY"
|
||||||
- nix build ".#${IMG}"
|
- nix build ".#${IMG}"
|
||||||
- nix run "nixpkgs#podman" load -i result
|
- nix run "nixpkgs#podman" -- load -i result
|
||||||
- nix run "nixpkgs#podman" tag "localhost/${IMG}:latest" "$CI_REGISTRY/greg/ci-images/${IMG}:latest"
|
- nix run "nixpkgs#podman" -- tag "localhost/${IMG}:latest" "$CI_REGISTRY/greg/ci-images/${IMG}:latest"
|
||||||
- nix run "nixpkgs#podman" push "$CI_REGISTRY/greg/ci-images/${IMG}:latest"
|
- nix run "nixpkgs#podman" -- push "$CI_REGISTRY/greg/ci-images/${IMG}:latest"
|
||||||
|
|||||||
@@ -1,17 +1,9 @@
|
|||||||
{ config, pkgs, ... }:
|
|
||||||
{
|
{
|
||||||
imports = [ ../baseline.nix ];
|
config,
|
||||||
|
pkgs,
|
||||||
home-manager = {
|
...
|
||||||
useGlobalPkgs = true;
|
}:
|
||||||
users."${config.system.primaryUser}" = import ../../home/home.nix;
|
{
|
||||||
extraSpecialArgs = {
|
|
||||||
inherit (config.users.users."${config.system.primaryUser}") home;
|
|
||||||
gnome = false;
|
|
||||||
gui = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
fonts.packages = with pkgs; [
|
fonts.packages = with pkgs; [
|
||||||
dejavu_fonts
|
dejavu_fonts
|
||||||
nerd-fonts.hack
|
nerd-fonts.hack
|
||||||
@@ -57,7 +49,7 @@
|
|||||||
};
|
};
|
||||||
screencapture = {
|
screencapture = {
|
||||||
include-date = true;
|
include-date = true;
|
||||||
location = "${config.home-manager.extraSpecialArgs.home}/Photos/Screeneries";
|
location = "~/Photos/Screeneries";
|
||||||
};
|
};
|
||||||
trackpad = {
|
trackpad = {
|
||||||
Dragging = false;
|
Dragging = false;
|
||||||
+4
-2
@@ -14,8 +14,8 @@ let
|
|||||||
top.darwin.lib.darwinSystem {
|
top.darwin.lib.darwinSystem {
|
||||||
inherit system;
|
inherit system;
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
|
inherit nixpkgs overlays top;
|
||||||
inherit (top) self;
|
inherit (top) self;
|
||||||
inherit nixpkgs;
|
|
||||||
};
|
};
|
||||||
modules = [
|
modules = [
|
||||||
{
|
{
|
||||||
@@ -28,7 +28,9 @@ let
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
hm.darwinModules.home-manager
|
hm.darwinModules.home-manager
|
||||||
top.self.modules.darwinModule
|
# Local changes
|
||||||
|
../modules/nix-conf.nix
|
||||||
|
./baseline.nix
|
||||||
] ++ lib.optionals (builtins.pathExists ./hosts/${name}) [ ./hosts/${name} ];
|
] ++ lib.optionals (builtins.pathExists ./hosts/${name}) [ ./hosts/${name} ];
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
./direnv.nix
|
./direnv.nix
|
||||||
./git.nix
|
./git.nix
|
||||||
./ssh.nix
|
./ssh.nix
|
||||||
./vim.nix
|
./vim
|
||||||
./xonsh.nix
|
./xonsh.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
@@ -10,7 +10,7 @@
|
|||||||
fonts.fontconfig.enable = true;
|
fonts.fontconfig.enable = true;
|
||||||
home.packages = with pkgs.nerd-fonts; [ hack ];
|
home.packages = with pkgs.nerd-fonts; [ hack ];
|
||||||
|
|
||||||
programs.nixvim = (import ./vim/config.nix { inherit config pkgs lib; }) // {
|
programs.nixvim = (import ./config.nix { inherit config pkgs lib; }) // {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
+22
-22
@@ -1,27 +1,26 @@
|
|||||||
{ top, overlays, ... }:
|
{
|
||||||
|
overlays,
|
||||||
rec {
|
top,
|
||||||
greghellings =
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
pkgs =
|
||||||
|
system:
|
||||||
|
(import top.nixunstable {
|
||||||
|
inherit system overlays;
|
||||||
|
config = {
|
||||||
|
allowUnfree = true;
|
||||||
|
allowUnfreePredicate = _: true;
|
||||||
|
};
|
||||||
|
});
|
||||||
|
ivr =
|
||||||
let
|
let
|
||||||
system = "x86_64-linux";
|
system = "aarch64-darwin";
|
||||||
pkgs = (
|
|
||||||
import top.nixunstable {
|
|
||||||
inherit system overlays;
|
|
||||||
config = {
|
|
||||||
allowUnfree = true;
|
|
||||||
allowUnfreePredicate = _: true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
);
|
|
||||||
in
|
in
|
||||||
top.hmunstable.lib.homeManagerConfiguration {
|
top.hmunstable.lib.homeManagerConfiguration {
|
||||||
inherit pkgs;
|
pkgs = pkgs system;
|
||||||
modules = [
|
modules = [
|
||||||
(import ../modules/nix-conf.nix {
|
../modules/nix-conf.nix
|
||||||
inherit pkgs;
|
|
||||||
inherit (pkgs) lib;
|
|
||||||
cache = false;
|
|
||||||
})
|
|
||||||
./home.nix
|
./home.nix
|
||||||
];
|
];
|
||||||
extraSpecialArgs = {
|
extraSpecialArgs = {
|
||||||
@@ -33,6 +32,7 @@ rec {
|
|||||||
username = "gregory.hellings";
|
username = "gregory.hellings";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
in
|
||||||
"gregory.hellings" = greghellings;
|
{
|
||||||
|
inherit ivr;
|
||||||
}
|
}
|
||||||
|
|||||||
+11
-9
@@ -9,18 +9,12 @@
|
|||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
top.nixvimunstable.homeManagerModules.nixvim
|
top.nixvimunstable.homeManagerModules.nixvim
|
||||||
./modules
|
top.self.modules.homeManagerModule
|
||||||
|
./baseline
|
||||||
] ++ lib.optionals (builtins.pathExists ./hosts/${host}) [ ./hosts/${host} ];
|
] ++ lib.optionals (builtins.pathExists ./hosts/${host}) [ ./hosts/${host} ];
|
||||||
|
|
||||||
programs.tmux = {
|
|
||||||
enable = true;
|
|
||||||
keyMode = "vi";
|
|
||||||
terminal = "xterm-256color";
|
|
||||||
customPaneNavigationAndResize = true;
|
|
||||||
extraConfig = (lib.strings.concatStringsSep "\n" [ "bind P paste-buffer" ]);
|
|
||||||
};
|
|
||||||
|
|
||||||
home.stateVersion = "25.05";
|
home.stateVersion = "25.05";
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
copier
|
copier
|
||||||
diffutils
|
diffutils
|
||||||
@@ -43,4 +37,12 @@
|
|||||||
wget
|
wget
|
||||||
zip
|
zip
|
||||||
];
|
];
|
||||||
|
|
||||||
|
programs.tmux = {
|
||||||
|
enable = true;
|
||||||
|
keyMode = "vi";
|
||||||
|
terminal = "xterm-256color";
|
||||||
|
customPaneNavigationAndResize = true;
|
||||||
|
extraConfig = (lib.strings.concatStringsSep "\n" [ "bind P paste-buffer" ]);
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ in
|
|||||||
greg = {
|
greg = {
|
||||||
development = true;
|
development = true;
|
||||||
gui = true;
|
gui = true;
|
||||||
|
nix.cache = false;
|
||||||
pypackage.enable = false;
|
pypackage.enable = false;
|
||||||
vscodium = true;
|
vscodium = true;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -0,0 +1,218 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
overlays,
|
||||||
|
pkgs,
|
||||||
|
self,
|
||||||
|
top,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
builderHosts =
|
||||||
|
if self != null then
|
||||||
|
(lib.attrNames (
|
||||||
|
lib.filterAttrs (_: v: v.config.greg.remote-builder.enable) self.nixosConfigurations
|
||||||
|
))
|
||||||
|
else
|
||||||
|
[ ];
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./nix-conf.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
console = {
|
||||||
|
font = "Lat2-Terminus16";
|
||||||
|
keyMap = "us";
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
agenix
|
||||||
|
bitwarden-cli
|
||||||
|
bmon
|
||||||
|
btop
|
||||||
|
btrfs-progs
|
||||||
|
coreutils-full
|
||||||
|
diffutils
|
||||||
|
efibootmgr
|
||||||
|
findutils
|
||||||
|
file
|
||||||
|
git
|
||||||
|
gnupatch
|
||||||
|
hms # My own home manager switcher
|
||||||
|
iperf
|
||||||
|
killall
|
||||||
|
nano
|
||||||
|
lshw
|
||||||
|
pciutils
|
||||||
|
psmisc
|
||||||
|
pwgen
|
||||||
|
unzip
|
||||||
|
usbutils
|
||||||
|
wget
|
||||||
|
xfsprogs
|
||||||
|
];
|
||||||
|
|
||||||
|
home-manager = {
|
||||||
|
backupFileExtension = "bkp";
|
||||||
|
useGlobalPkgs = true;
|
||||||
|
useUserPackages = true;
|
||||||
|
users.greg = import ../home/home.nix;
|
||||||
|
extraSpecialArgs = {
|
||||||
|
inherit top overlays;
|
||||||
|
home = "/home/greg";
|
||||||
|
host = config.networking.hostName;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
i18n.defaultLocale = "en_US.UTF-8";
|
||||||
|
|
||||||
|
nix = {
|
||||||
|
gc.dates = "weekly";
|
||||||
|
settings.auto-optimise-store = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
nixpkgs.overlays = overlays;
|
||||||
|
|
||||||
|
# Network Manager pulls in too many deps
|
||||||
|
networking = {
|
||||||
|
search = [
|
||||||
|
"thehellings.lan"
|
||||||
|
"home"
|
||||||
|
];
|
||||||
|
networkmanager.enable = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
xonsh = {
|
||||||
|
enable = true;
|
||||||
|
extraPackages = (
|
||||||
|
ps: with ps; [
|
||||||
|
xonsh-apipenv
|
||||||
|
pkgs.nur.repos.xonsh-xontribs.xonsh-direnv
|
||||||
|
pkgs.nur.repos.xonsh-xontribs.xontrib-vox
|
||||||
|
]
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
ssh = {
|
||||||
|
extraConfig = builtins.concatStringsSep "\n" (
|
||||||
|
lib.map (x: ''
|
||||||
|
Host ${x}-builder
|
||||||
|
Hostname ${x}.home
|
||||||
|
User remote-builder-user
|
||||||
|
'') builderHosts
|
||||||
|
);
|
||||||
|
|
||||||
|
knownHosts = {
|
||||||
|
chronicles = {
|
||||||
|
extraHostNames = [
|
||||||
|
"chronicles.thehellings.lan"
|
||||||
|
"chronicles.home"
|
||||||
|
"nas"
|
||||||
|
"nas.thehellings.lan"
|
||||||
|
"nas.home"
|
||||||
|
];
|
||||||
|
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEBecZUva9OnZuXLaBun6/1ITo5f9p0YMLPD+q0egLRS";
|
||||||
|
};
|
||||||
|
dns = {
|
||||||
|
extraHostNames = [
|
||||||
|
"dns"
|
||||||
|
"dns.me.ts"
|
||||||
|
"dns.home"
|
||||||
|
];
|
||||||
|
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKRCXdhXWHEvw84V9JC5bAGovvj12DLVphcEnsTHDjxW";
|
||||||
|
};
|
||||||
|
"genesis" = {
|
||||||
|
extraHostNames = [
|
||||||
|
"genesis.shire-zebra.ts.net"
|
||||||
|
"genesis.home"
|
||||||
|
];
|
||||||
|
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEI9jbTPmEWQ0F2bLYmnIOLmBnag1fkKxHRjz3X8lB/k";
|
||||||
|
};
|
||||||
|
"git" = {
|
||||||
|
extraHostNames = [
|
||||||
|
"git.home"
|
||||||
|
"git.thehellings.lan"
|
||||||
|
];
|
||||||
|
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC7hesFWwlmSbWPJWUiF8fIppy5a83yXw84O0Ytz+Zyq";
|
||||||
|
};
|
||||||
|
hosea = {
|
||||||
|
extraHostNames = [
|
||||||
|
"hosea.home"
|
||||||
|
"hosea.thehellings.lan"
|
||||||
|
];
|
||||||
|
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKLIwkTTXA56sUlUjEulXXZRvZy5H4a5ZwgKWLlpkQDz";
|
||||||
|
};
|
||||||
|
isaiah = {
|
||||||
|
extraHostNames = [
|
||||||
|
"isaiah.home"
|
||||||
|
"isaiah.thehellings.lan"
|
||||||
|
"isaiah-builder"
|
||||||
|
];
|
||||||
|
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHleYKtfV4W1Z63Ysu9w5Rbglqlz4F92YcZoMkucoTNf";
|
||||||
|
};
|
||||||
|
jeremiah = {
|
||||||
|
extraHostNames = [
|
||||||
|
"jeremiah.home"
|
||||||
|
"jeremiah.thehellings.lan"
|
||||||
|
"jeremiah-builder"
|
||||||
|
];
|
||||||
|
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOjQjXq9WYU2Ki27BR9WwJ4ZruS/lJXbjC1b0Q42Adi0";
|
||||||
|
};
|
||||||
|
jude = {
|
||||||
|
extraHostNames = [
|
||||||
|
"jude.home"
|
||||||
|
"jude.thehellings.lan"
|
||||||
|
"jude-builder"
|
||||||
|
];
|
||||||
|
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOos0zQePsa+T6Z2dsKbPOvEdrBQ8a6mx3s7pN6ysCI0";
|
||||||
|
};
|
||||||
|
linode = {
|
||||||
|
extraHostNames = [
|
||||||
|
"linode.home"
|
||||||
|
"linode.thehellings.lan"
|
||||||
|
"thehellings.com"
|
||||||
|
];
|
||||||
|
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMv9Zud3kZOl86gtmkn+uj3D4kiXWDPtyUL02VVLNR4Q";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Enable the OpenSSH daemon for remote control
|
||||||
|
services = {
|
||||||
|
openssh = {
|
||||||
|
enable = true;
|
||||||
|
settings.X11Forwarding = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
security.sudo.extraRules = [
|
||||||
|
{
|
||||||
|
users = [ "greg" ];
|
||||||
|
commands = [
|
||||||
|
{
|
||||||
|
command = "ALL";
|
||||||
|
options = [ "NOPASSWD" ];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
# 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";
|
||||||
|
}
|
||||||
+5
-17
@@ -19,7 +19,6 @@ let
|
|||||||
name,
|
name,
|
||||||
system ? "x86_64-linux",
|
system ? "x86_64-linux",
|
||||||
hm ? top.hm,
|
hm ? top.hm,
|
||||||
nixvim ? top.nixvimstable,
|
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
nixpkgs = import channel { inherit system; };
|
nixpkgs = import channel { inherit system; };
|
||||||
@@ -32,29 +31,18 @@ let
|
|||||||
inherit (top) self;
|
inherit (top) self;
|
||||||
};
|
};
|
||||||
modules = [
|
modules = [
|
||||||
{
|
# Imported ones
|
||||||
nixpkgs.overlays = overlays;
|
|
||||||
home-manager = {
|
|
||||||
useGlobalPkgs = true;
|
|
||||||
useUserPackages = true;
|
|
||||||
users.greg = import ../home/home.nix;
|
|
||||||
extraSpecialArgs = {
|
|
||||||
inherit top overlays;
|
|
||||||
home = "/home/greg";
|
|
||||||
host = name;
|
|
||||||
};
|
|
||||||
backupFileExtension = "bkp";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
top.agenix.nixosModules.default
|
top.agenix.nixosModules.default
|
||||||
hm.nixosModules.home-manager
|
hm.nixosModules.home-manager
|
||||||
top.self.modules.nixosModule
|
|
||||||
top.nurpkgs.modules.nixos.default
|
top.nurpkgs.modules.nixos.default
|
||||||
|
# Local ones
|
||||||
|
./baseline.nix
|
||||||
|
top.self.modules.nixosModule
|
||||||
./${name}
|
./${name}
|
||||||
] ++ extraMods;
|
] ++ extraMods;
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
rec {
|
{
|
||||||
genesis = unstable { name = "genesis"; };
|
genesis = unstable { name = "genesis"; };
|
||||||
exodus = unstable { name = "exodus"; };
|
exodus = unstable { name = "exodus"; };
|
||||||
jude = unstable { name = "jude"; };
|
jude = unstable { name = "jude"; };
|
||||||
|
|||||||
@@ -1,50 +0,0 @@
|
|||||||
{
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
self,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
builderHosts =
|
|
||||||
if self != null then
|
|
||||||
(lib.attrNames (
|
|
||||||
lib.filterAttrs (_: v: v.config.greg.remote-builder.enable) self.nixosConfigurations
|
|
||||||
))
|
|
||||||
else
|
|
||||||
[ ];
|
|
||||||
in
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./nix-conf.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
programs.ssh = {
|
|
||||||
extraConfig = builtins.concatStringsSep "\n" (
|
|
||||||
lib.map (x: ''
|
|
||||||
Host ${x}-builder
|
|
||||||
Hostname ${x}.home
|
|
||||||
User remote-builder-user
|
|
||||||
'') builderHosts
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
# Base packages that need to be in all my hosts
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
agenix
|
|
||||||
bmon
|
|
||||||
diffutils
|
|
||||||
git
|
|
||||||
gnupatch
|
|
||||||
findutils
|
|
||||||
file
|
|
||||||
hms # My own home manager switcher
|
|
||||||
btop
|
|
||||||
iperf
|
|
||||||
killall
|
|
||||||
nano
|
|
||||||
pciutils
|
|
||||||
pwgen
|
|
||||||
unzip
|
|
||||||
wget
|
|
||||||
];
|
|
||||||
}
|
|
||||||
+2
-2
@@ -1,8 +1,8 @@
|
|||||||
let
|
let
|
||||||
nixos = (import ./nixos);
|
nixos = (import ./nixos);
|
||||||
darwin = (import ./darwin);
|
hm = (import ./hm);
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
homeManagerModule = hm;
|
||||||
nixosModule = nixos;
|
nixosModule = nixos;
|
||||||
darwinModule = darwin;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./baseline
|
|
||||||
./development.nix
|
./development.nix
|
||||||
./gnome.nix
|
./gnome.nix
|
||||||
./gui.nix
|
./gui.nix
|
||||||
@@ -39,7 +39,6 @@ in
|
|||||||
njpwerner.autodocstring
|
njpwerner.autodocstring
|
||||||
rust-lang.rust-analyzer
|
rust-lang.rust-analyzer
|
||||||
tamasfe.even-better-toml
|
tamasfe.even-better-toml
|
||||||
vadimcn.vscode-lldb
|
|
||||||
vscjava.vscode-java-test
|
vscjava.vscode-java-test
|
||||||
vscjava.vscode-java-dependency
|
vscjava.vscode-java-dependency
|
||||||
vscjava.vscode-java-debug
|
vscjava.vscode-java-debug
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
config,
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,9 @@
|
|||||||
{
|
{
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
../baseline.nix
|
|
||||||
./backup.nix
|
./backup.nix
|
||||||
./ceph.nix
|
./ceph.nix
|
||||||
./container.nix
|
./container.nix
|
||||||
@@ -29,158 +25,4 @@
|
|||||||
./tailscale.nix
|
./tailscale.nix
|
||||||
./vmdev.nix
|
./vmdev.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
btrfs-progs
|
|
||||||
bitwarden-cli
|
|
||||||
coreutils-full
|
|
||||||
efibootmgr
|
|
||||||
psmisc
|
|
||||||
lshw
|
|
||||||
usbutils
|
|
||||||
xfsprogs
|
|
||||||
];
|
|
||||||
|
|
||||||
system.stateVersion = "24.11";
|
|
||||||
|
|
||||||
nix = {
|
|
||||||
gc.dates = "weekly";
|
|
||||||
settings.auto-optimise-store = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Network Manager pulls in too many deps
|
|
||||||
networking = {
|
|
||||||
search = [
|
|
||||||
"thehellings.lan"
|
|
||||||
"home"
|
|
||||||
];
|
|
||||||
networkmanager.enable = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
xonsh = {
|
|
||||||
enable = true;
|
|
||||||
extraPackages = (
|
|
||||||
ps: with ps; [
|
|
||||||
xonsh-apipenv
|
|
||||||
pkgs.nur.repos.xonsh-xontribs.xonsh-direnv
|
|
||||||
pkgs.nur.repos.xonsh-xontribs.xontrib-vox
|
|
||||||
]
|
|
||||||
);
|
|
||||||
};
|
|
||||||
ssh.knownHosts = {
|
|
||||||
chronicles = {
|
|
||||||
extraHostNames = [
|
|
||||||
"chronicles.thehellings.lan"
|
|
||||||
"chronicles.home"
|
|
||||||
"nas"
|
|
||||||
"nas.thehellings.lan"
|
|
||||||
"nas.home"
|
|
||||||
];
|
|
||||||
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEBecZUva9OnZuXLaBun6/1ITo5f9p0YMLPD+q0egLRS";
|
|
||||||
};
|
|
||||||
dns = {
|
|
||||||
extraHostNames = [
|
|
||||||
"dns"
|
|
||||||
"dns.me.ts"
|
|
||||||
"dns.home"
|
|
||||||
];
|
|
||||||
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKRCXdhXWHEvw84V9JC5bAGovvj12DLVphcEnsTHDjxW";
|
|
||||||
};
|
|
||||||
"genesis" = {
|
|
||||||
extraHostNames = [
|
|
||||||
"genesis.shire-zebra.ts.net"
|
|
||||||
"genesis.home"
|
|
||||||
];
|
|
||||||
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEI9jbTPmEWQ0F2bLYmnIOLmBnag1fkKxHRjz3X8lB/k";
|
|
||||||
};
|
|
||||||
"git" = {
|
|
||||||
extraHostNames = [
|
|
||||||
"git.home"
|
|
||||||
"git.thehellings.lan"
|
|
||||||
];
|
|
||||||
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIC7hesFWwlmSbWPJWUiF8fIppy5a83yXw84O0Ytz+Zyq";
|
|
||||||
};
|
|
||||||
hosea = {
|
|
||||||
extraHostNames = [
|
|
||||||
"hosea.home"
|
|
||||||
"hosea.thehellings.lan"
|
|
||||||
];
|
|
||||||
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKLIwkTTXA56sUlUjEulXXZRvZy5H4a5ZwgKWLlpkQDz";
|
|
||||||
};
|
|
||||||
isaiah = {
|
|
||||||
extraHostNames = [
|
|
||||||
"isaiah.home"
|
|
||||||
"isaiah.thehellings.lan"
|
|
||||||
"isaiah-builder"
|
|
||||||
];
|
|
||||||
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHleYKtfV4W1Z63Ysu9w5Rbglqlz4F92YcZoMkucoTNf";
|
|
||||||
};
|
|
||||||
jeremiah = {
|
|
||||||
extraHostNames = [
|
|
||||||
"jeremiah.home"
|
|
||||||
"jeremiah.thehellings.lan"
|
|
||||||
"jeremiah-builder"
|
|
||||||
];
|
|
||||||
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOjQjXq9WYU2Ki27BR9WwJ4ZruS/lJXbjC1b0Q42Adi0";
|
|
||||||
};
|
|
||||||
jude = {
|
|
||||||
extraHostNames = [
|
|
||||||
"jude.home"
|
|
||||||
"jude.thehellings.lan"
|
|
||||||
"jude-builder"
|
|
||||||
];
|
|
||||||
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOos0zQePsa+T6Z2dsKbPOvEdrBQ8a6mx3s7pN6ysCI0";
|
|
||||||
};
|
|
||||||
linode = {
|
|
||||||
extraHostNames = [
|
|
||||||
"linode.home"
|
|
||||||
"linode.thehellings.lan"
|
|
||||||
"thehellings.com"
|
|
||||||
];
|
|
||||||
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMv9Zud3kZOl86gtmkn+uj3D4kiXWDPtyUL02VVLNR4Q";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Enable the OpenSSH daemon for remote control
|
|
||||||
services = {
|
|
||||||
openssh = {
|
|
||||||
enable = true;
|
|
||||||
settings.X11Forwarding = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# 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
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
security.sudo.extraRules = [
|
|
||||||
{
|
|
||||||
users = [ "greg" ];
|
|
||||||
commands = [
|
|
||||||
{
|
|
||||||
command = "ALL";
|
|
||||||
options = [ "NOPASSWD" ];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
i18n.defaultLocale = "en_US.UTF-8";
|
|
||||||
|
|
||||||
console = {
|
|
||||||
font = "Lat2-Terminus16";
|
|
||||||
keyMap = "us";
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user