nixos-configs/configurations/homie/default.nix
matt1432 f68fcce055
All checks were successful
Discord / discord commits (push) Has been skipped
fix(homie): add temp fix for losing internet
2025-02-10 12:54:06 -05:00

110 lines
2.3 KiB
Nix

{
mainUser,
pkgs,
self,
...
}: {
# ------------------------------------------------
# Imports
# ------------------------------------------------
imports = [
./hardware-configuration.nix
./modules
self.nixosModules.base
self.nixosModules.docker
self.nixosModules.kmscon
self.nixosModules.meta
self.nixosModules.server
];
# State Version: DO NOT CHANGE
system.stateVersion = "24.11";
# ------------------------------------------------
# User Settings
# ------------------------------------------------
users.users.${mainUser} = {
isNormalUser = true;
extraGroups = [
"wheel"
"adm"
];
};
networking = {
hostName = "homie";
resolvconf.enable = true;
firewall.enable = false;
};
# FIXME: temporary fix while I figure out the issue with the Network Card?
systemd.services."temp-fix-nic" = {
wantedBy = ["multi-user.target"];
after = ["tailscaled.service"];
path = [pkgs.ripgrep];
script = ''
# Wait for boot to finish
sleep 60
echo "start listening to journalctl"
journalctl -fb | while read -r line; do
if echo "$line" | rg 'NIC Link is Up' &> /dev/null; then
echo "restarting tailscaled"
systemctl restart tailscaled.service
fi
done
'';
serviceConfig = {
User = "root";
AmbientCapabilities = "CAP_SYS_ADMIN CAP_SYSLOG";
};
};
time.timeZone = "America/Montreal";
# ------------------------------------------------
# `Self` Modules configuration
# ------------------------------------------------
meta = {
roleDescription = "Mini PC that serves as a Home-assistant server";
hardwareDescription = "Lenovo Thinkcentre M910q";
};
roles.base = {
enable = true;
user = mainUser;
};
roles.server = {
enable = true;
user = mainUser;
tailscale.enable = true;
sshd.enable = true;
};
roles.docker.enable = true;
services.kmscon.enable = true;
home-manager.users.${mainUser} = {
imports = [
self.homeManagerModules.neovim
self.homeManagerModules.shell
];
programs = {
bash = {
enable = true;
promptMainColor = "yellow";
};
neovim = {
enable = true;
user = mainUser;
};
};
};
}