Compare commits

...

10 Commits

Author SHA1 Message Date
1d3a2d6fb7 added math the jeeves 2025-08-06 22:11:13 -04:00
fd56fa66f0 updated authorizedKeys and added math_password 2025-08-06 21:51:09 -04:00
1314298c0b treefmt 2025-08-06 21:43:19 -04:00
f0eee80c2d adding math user 2025-08-06 21:43:19 -04:00
c20b6d1da2 adding nodejs 2025-08-06 21:43:19 -04:00
34a59f966d testing nix-serve-ng 2025-08-01 22:38:47 -04:00
a677046330 updated flake lock 2025-08-01 20:44:30 -04:00
111afa1c6b enabling datagrip 2025-08-01 20:44:30 -04:00
c5f2805e74 ran treefmt 2025-08-01 20:41:59 -04:00
9a61d06f08 added encryptionPasswordFile to david server sync thing connection 2025-08-01 20:41:59 -04:00
18 changed files with 259 additions and 40 deletions

30
flake.lock generated
View File

@@ -8,11 +8,11 @@
}, },
"locked": { "locked": {
"dir": "pkgs/firefox-addons", "dir": "pkgs/firefox-addons",
"lastModified": 1753416229, "lastModified": 1753761817,
"narHash": "sha256-45s1L4h/6t3M+/ppqow1OFUgfk9jZHsR4jxNgxIWWmM=", "narHash": "sha256-FE908x/ihUlr5yn1f+PTMyOjcwotGUodzn7Ej6zZf5U=",
"owner": "rycee", "owner": "rycee",
"repo": "nur-expressions", "repo": "nur-expressions",
"rev": "553afee4efb5a7dea03cf654deafacd8fa1004f9", "rev": "b657cfddb78408e9b53b4a8aaeaac71fc7ea182e",
"type": "gitlab" "type": "gitlab"
}, },
"original": { "original": {
@@ -29,11 +29,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1753470191, "lastModified": 1754085240,
"narHash": "sha256-hOUWU5L62G9sm8NxdiLWlLIJZz9H52VuFiDllHdwmVA=", "narHash": "sha256-kVHCrTWEe8B1thAhFag1bk4QPY0ZP45V9vPbrwPHoNo=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "a1817d1c0e5eabe7dfdfe4caa46c94d9d8f3fdb6", "rev": "e102920c1becb114645c6f92fe14edc0b05cc229",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -60,11 +60,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1753250450, "lastModified": 1753939845,
"narHash": "sha256-i+CQV2rPmP8wHxj0aq4siYyohHwVlsh40kV89f3nw1s=", "narHash": "sha256-K2ViRJfdVGE8tpJejs8Qpvvejks1+A4GQej/lBk5y7I=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "fc02ee70efb805d3b2865908a13ddd4474557ecf", "rev": "94def634a20494ee057c76998843c015909d6311",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -76,11 +76,11 @@
}, },
"nixpkgs-master": { "nixpkgs-master": {
"locked": { "locked": {
"lastModified": 1753489269, "lastModified": 1754089779,
"narHash": "sha256-Iy/9c6DaxCY9ECCLgpoo+uwY1K5YTmJLU7fSg7JeALk=", "narHash": "sha256-bklCdnAaAerEacvmy+HkltNR9QE/M4Ygy+m0L2C6LJI=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "ce6b0611ca70423d97fab2a3f53f61f1fa4ff0a4", "rev": "3683d033f7994c92834f45f166275738dcdd959d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -199,11 +199,11 @@
"uv2nix": "uv2nix" "uv2nix": "uv2nix"
}, },
"locked": { "locked": {
"lastModified": 1747501237, "lastModified": 1753716864,
"narHash": "sha256-woyaUwmZurfNTXBEFM6M7ueSd/Udixs+4DUInhL835c=", "narHash": "sha256-5G32jskzdJ3u87vnW02kJxUaudvbGN4CeBz751J4+JE=",
"owner": "RichieCahill", "owner": "RichieCahill",
"repo": "system_tools", "repo": "system_tools",
"rev": "68ab5d1c17ac3fe2487f73dbbb4848bd2291139e", "rev": "86e4b9ca02db37612d1e8a381c14045de39c7ca9",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -1,6 +1,7 @@
{ {
imports = [ imports = [
../../users/richie ../../users/richie
../../users/math
../../common/global ../../common/global
../../common/optional/docker.nix ../../common/optional/docker.nix
../../common/optional/ssh_decrypt.nix ../../common/optional/ssh_decrypt.nix

View File

@@ -1,8 +1,10 @@
{ pkgs, ... }:
let let
vars = import ../vars.nix; vars = import ../vars.nix;
in in
{ {
services.nix-serve = { services.nix-serve = {
package = pkgs.nix-serve-ng;
enable = true; enable = true;
secretKeyFile = "${vars.secrets}/services/nix-cache/cache-priv-key.pem"; secretKeyFile = "${vars.secrets}/services/nix-cache/cache-priv-key.pem";
openFirewall = true; openFirewall = true;

View File

@@ -23,7 +23,10 @@ in
path = vars.notes; path = vars.notes;
devices = [ devices = [
"rhapsody-in-green" "rhapsody-in-green"
"davids-server" {
name = "davids-server";
encryptionPasswordFile = "${vars.secrets}/services/syncthing/davids-server";
}
]; ];
fsWatcherEnabled = true; fsWatcherEnabled = true;
}; };
@@ -67,14 +70,20 @@ in
path = "/home/richie/vault"; path = "/home/richie/vault";
devices = [ devices = [
"rhapsody-in-green" "rhapsody-in-green"
"davids-server" {
name = "davids-server";
encryptionPasswordFile = "${vars.secrets}/services/syncthing/davids-server";
}
]; ];
fsWatcherEnabled = true; fsWatcherEnabled = true;
}; };
"backup" = { "backup" = {
path = "${vars.syncthing}/backup"; path = "${vars.syncthing}/backup";
devices = [ devices = [
"davids-server" {
name = "davids-server";
encryptionPasswordFile = "${vars.secrets}/services/syncthing/davids-server";
}
]; ];
fsWatcherEnabled = true; fsWatcherEnabled = true;
}; };

52
users/math/default.nix Normal file
View File

@@ -0,0 +1,52 @@
{
pkgs,
config,
...
}:
let
ifTheyExist = groups: builtins.filter (group: builtins.hasAttr group config.users.groups) groups;
in
{
sops.secrets.math_password = {
sopsFile = ../secrets.yaml;
neededForUsers = true;
};
users = {
users.math = {
isNormalUser = true;
hashedPasswordFile = "${config.sops.secrets.math_password.path}";
shell = pkgs.zsh;
group = "math";
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEa0Jjp5qEvrYXQbN2EV+1+9ZwtXQfIpjklsceZRZJdl matthew.michal11@gmail.com" # cspell:disable-line
];
extraGroups = [
"audio"
"video"
"wheel"
"users"
]
++ ifTheyExist [
"dialout"
"docker"
"hass"
"libvirtd"
"networkmanager"
"plugdev"
"scanner"
"transmission"
"uaccess"
"wireshark"
];
uid = 1003;
};
groups.math.gid = 1003;
};
home-manager.users.math = import ./systems/${config.networking.hostName}.nix;
}

View File

@@ -0,0 +1,9 @@
{
imports = [
./direnv.nix
./git.nix
./zsh.nix
];
programs.starship.enable = true;
}

View File

@@ -0,0 +1,8 @@
{
programs.direnv = {
enable = true;
enableZshIntegration = true;
nix-direnv.enable = true;
};
}

View File

@@ -0,0 +1,12 @@
{
programs.git = {
enable = true;
userEmail = "Richie@tmmworkshop.com";
userName = "Richie Cahill";
extraConfig = {
pull.rebase = true;
color.ui = true;
};
lfs.enable = true;
};
}

View File

@@ -0,0 +1,28 @@
{
programs.zsh = {
enable = true;
syntaxHighlighting.enable = true;
history.size = 10000;
oh-my-zsh = {
enable = true;
plugins = [
"git"
"docker"
"docker-compose"
"colored-man-pages"
"rust"
"systemd"
"tmux"
"ufw"
"z"
];
};
shellAliases = {
"lrt" = "eza --icons -lsnew";
"ls" = "eza";
"ll" = "eza --long --group";
"la" = "eza --all";
};
};
}

View File

@@ -0,0 +1,22 @@
{ config, ... }:
{
imports = [
./cli
./programs.nix
./ssh_config.nix
];
programs = {
home-manager.enable = true;
git.enable = true;
};
home = {
username = "math";
homeDirectory = "/home/${config.home.username}";
stateVersion = "24.05";
sessionVariables = {
FLAKE = "$HOME/dotfiles";
};
};
}

View File

@@ -0,0 +1,59 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
# cli
bat
btop
eza
fd
ffmpegthumbnailer
fzf
git
gnupg
imagemagick
jq
ncdu
neofetch
ouch
p7zip
poppler
rar
ripgrep
starship
tmux
unzip
yazi
zoxide
# system info
hwloc
lynis
pciutils
smartmontools
usbutils
# networking
iperf3
nmap
wget
# python
poetry
python313
ruff
uv
# nodejs
nodejs
# Rust packages
trunk
wasm-pack
cargo-watch
cargo-generate
cargo-audit
cargo-update
# nix
nix-init
nix-output-monitor
nix-prefetch
nix-tree
nixfmt-rfc-style
treefmt
];
}

View File

@@ -0,0 +1,5 @@
{
programs.ssh = {
enable = true;
};
}

View File

@@ -0,0 +1,5 @@
{
imports = [
../home/global.nix
];
}

View File

@@ -24,8 +24,7 @@ in
openssh.authorizedKeys.keys = [ openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJYZFsc9CSH03ZUP7y81AHwSyjLwFmcshVFCyxDcYhBT rhapsody-in-green" # cspell:disable-line "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJYZFsc9CSH03ZUP7y81AHwSyjLwFmcshVFCyxDcYhBT rhapsody-in-green" # cspell:disable-line
]; ];
extraGroups = extraGroups = [
[
"audio" "audio"
"video" "video"
"wheel" "wheel"

View File

@@ -12,7 +12,7 @@
discord-canary discord-canary
gimp gimp
gparted gparted
# jetbrains.datagrip jetbrains.datagrip
mediainfo mediainfo
nemo nemo
nemo-fileroller nemo-fileroller
@@ -26,5 +26,9 @@
util-linux util-linux
vlc vlc
zoom-us zoom-us
# games
dwarf-fortress
tower-pixel-dungeon
endless-sky
]; ];
} }

View File

@@ -53,6 +53,7 @@
"[nix]": { "editor.defaultFormatter": "jnoortheen.nix-ide" }, "[nix]": { "editor.defaultFormatter": "jnoortheen.nix-ide" },
"[python]": { "editor.defaultFormatter": "charliermarsh.ruff" }, "[python]": { "editor.defaultFormatter": "charliermarsh.ruff" },
"[yaml]": { "editor.defaultFormatter": "redhat.vscode-yaml" }, "[yaml]": { "editor.defaultFormatter": "redhat.vscode-yaml" },
"[javascriptreact]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
// spell check // spell check
"cSpell.enabled": true, "cSpell.enabled": true,

View File

@@ -39,6 +39,8 @@
python313 python313
ruff ruff
uv uv
# nodejs
nodejs
# Rust packages # Rust packages
trunk trunk
wasm-pack wasm-pack

View File

@@ -2,6 +2,7 @@ richie_password: ENC[AES256_GCM,data:DMi3M8aqrQ60APIofr8wJMh+VZ14hLRxz6jWZgzswr0
gaming_password: ENC[AES256_GCM,data:i692UsQaCOjE4V1y9d8yYDlK+TRMIprCHJkhl1UBZRMqe9a2LTUtmbbn/xlCYQd2tADJvn+dkx1jLfV4CqaqWOj5YSUFfpgsEw==,iv:3Y7hXQcmpzNN7hF+BDvO52uFB4o5D0dHvxemJ0ZoSIM=,tag:zzLGNDVAMCs2GPMqXp2BtQ==,type:str] gaming_password: ENC[AES256_GCM,data:i692UsQaCOjE4V1y9d8yYDlK+TRMIprCHJkhl1UBZRMqe9a2LTUtmbbn/xlCYQd2tADJvn+dkx1jLfV4CqaqWOj5YSUFfpgsEw==,iv:3Y7hXQcmpzNN7hF+BDvO52uFB4o5D0dHvxemJ0ZoSIM=,tag:zzLGNDVAMCs2GPMqXp2BtQ==,type:str]
megan_password: ENC[AES256_GCM,data:Udrs9OWFI2TDM1yxRwfy7uiONh1G3Mr9HabwpmRykp1Xw9KK+q245nxN7QQbR0AiTCyyyivhn6GB2+DvBBY/6UrN5iGs+LaXgg==,iv:n02HzE8jvWM5xDfaPB9BHxtfoAZQ/Tk80XuySY2NyoU=,tag:L9wPVy7zt6mp09qWhzdLpg==,type:str] megan_password: ENC[AES256_GCM,data:Udrs9OWFI2TDM1yxRwfy7uiONh1G3Mr9HabwpmRykp1Xw9KK+q245nxN7QQbR0AiTCyyyivhn6GB2+DvBBY/6UrN5iGs+LaXgg==,iv:n02HzE8jvWM5xDfaPB9BHxtfoAZQ/Tk80XuySY2NyoU=,tag:L9wPVy7zt6mp09qWhzdLpg==,type:str]
gcw_password: ENC[AES256_GCM,data:T5CliWyyw4igunGRokOW7dNTOQ7DbOhM4gLa8YN4gbVLEVU7n3jxAVF9Uy9zM7LBBqdLvyXnqGzC1HBSBmE+pKBV7YIN3aQkng==,iv:SLq4aeLHdwfq0+A4N6UO4Dz7oBoC0ZDKBr74hheHQFw=,tag:4a71PZcyzoWjOmYEPx07ag==,type:str] gcw_password: ENC[AES256_GCM,data:T5CliWyyw4igunGRokOW7dNTOQ7DbOhM4gLa8YN4gbVLEVU7n3jxAVF9Uy9zM7LBBqdLvyXnqGzC1HBSBmE+pKBV7YIN3aQkng==,iv:SLq4aeLHdwfq0+A4N6UO4Dz7oBoC0ZDKBr74hheHQFw=,tag:4a71PZcyzoWjOmYEPx07ag==,type:str]
math_password: ENC[AES256_GCM,data:ykiSr3iBHrShJarEQSJ/zuXbCPcbW2oUpaAjblu1V15ufFKVSMZM94LlpMiCYtN9cYBLs98hcMeajJbvgbwT5emPHthy9+TJDw==,iv:1TJEUo0ishqFAZiUE1473yR3RT6Gbtqt4zM+C1a1KEk=,tag:pR6jyIj+bu3XaSx5yIHSmA==,type:str]
sops: sops:
age: age:
- recipient: age1u8zj599elqqvcmhxn8zuwrufsz8w8w366d3ayrljjejljt2q45kq8mxw9c - recipient: age1u8zj599elqqvcmhxn8zuwrufsz8w8w366d3ayrljjejljt2q45kq8mxw9c
@@ -49,7 +50,7 @@ sops:
UzQzWEFtSDJwR201cmZoeXh5T0RmSk0KWLOpw5cWbtnfVP/ISa7n1vZchoD+nxmn UzQzWEFtSDJwR201cmZoeXh5T0RmSk0KWLOpw5cWbtnfVP/ISa7n1vZchoD+nxmn
7yr7igpEIro0Sd238KinOQYswVaT0NHB9p1dSW/mN+aGQliSNLzkDQ== 7yr7igpEIro0Sd238KinOQYswVaT0NHB9p1dSW/mN+aGQliSNLzkDQ==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2025-06-05T00:52:15Z" lastmodified: "2025-08-07T01:48:02Z"
mac: ENC[AES256_GCM,data:FVj9SmI6uq5ujIX3NwFSLcappRIX0K1U/GXks4Wj0gJH//Tqo5Ur07+WdE5JNmHdS1gXW34RhzFmEbQ9KR2OoP8cfTG+a7qCftzEQbV5aBBEMxstsl48TLtRTwRuSrEnVOHh/0EfFOkXTUO/rVS4jDmd57eAB6OBJQePQk+P+0Q=,iv:P1aeFC+6xG4Koph0Dynwek/861OsH1asui3qtpu1JUI=,tag:1RYayU758c+yAULOgQuWgw==,type:str] mac: ENC[AES256_GCM,data:AyOAAIk07NArsiU9JaZPdLPXfWg43ajRe0iIvZQnu2AnznZ8DSgpPfznH4wT8HbxLMNDCJ7t3JGXVu7foxBwDF5GOuNq7o0X5NM4752CxyjdGP8zPDcw9TSiQ4MAn9FEjpRxFv34MDhmNdlBKelhIL2NLrGgdNhhKwayzWOReVM=,iv:5BrpLcpk8Mh3hmVeXksfHzkpNFGUTzPQIcb8A7GGAJY=,tag:3J/JJfYntUhkwIdwVpzUug==,type:str]
unencrypted_suffix: _unencrypted unencrypted_suffix: _unencrypted
version: 3.10.2 version: 3.10.2