restructured & first test of toggleable config
This commit is contained in:
@@ -5,15 +5,19 @@
|
|||||||
[ # Include the results of the hardware scan.
|
[ # Include the results of the hardware scan.
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
../../users/blake/blake.nix
|
../../users/blake/blake.nix
|
||||||
../../modules/ssh.nix
|
../../modules/system/ssh.nix
|
||||||
../../modules/docker.nix
|
../../modules/system/docker.nix
|
||||||
../../modules/syncthing.nix
|
../../modules/system/syncthing.nix
|
||||||
../../modules/tailscale.nix
|
../../modules/system/tailscale.nix
|
||||||
../../modules/homelab/zfs.nix
|
../../modules/homelab/homelab.nix
|
||||||
../../modules/homelab/smb.nix
|
# ../../modules/homelab/zfs.nix
|
||||||
../../modules/homelab/nfs.nix
|
# ../../modules/homelab/smb.nix
|
||||||
|
# ../../modules/homelab/nfs.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# use the systemd-boot EFI boot loader.
|
# use the systemd-boot EFI boot loader.
|
||||||
boot.loader.systemd-boot.enable = true;
|
boot.loader.systemd-boot.enable = true;
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
|||||||
@@ -1,10 +0,0 @@
|
|||||||
{ config, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
virtualisation.docker = {
|
|
||||||
enable = true;
|
|
||||||
daemon.settings = {
|
|
||||||
experimental = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -8,6 +8,11 @@ let
|
|||||||
'';
|
'';
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
options = {
|
||||||
|
homelab.nfs.enable = lib.mkEnableOption "enables nfs";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf config.homelab.nfs.enable {
|
||||||
# enable nfs with all exports
|
# enable nfs with all exports
|
||||||
services.nfs = {
|
services.nfs = {
|
||||||
server = {
|
server = {
|
||||||
@@ -15,4 +20,5 @@ in
|
|||||||
exports = nfsExports;
|
exports = nfsExports;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,10 +18,15 @@ let
|
|||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
options = {
|
||||||
|
homelab.smb.enable = lib.mkEnableOption "enables smb";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf config.homelab.smb.enable {
|
||||||
# enable smb with all shares
|
# enable smb with all shares
|
||||||
services.samba = {
|
services.samba = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = smbShares;
|
settings = smbShares;
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,12 @@
|
|||||||
{ config, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
|
options = {
|
||||||
|
homelab.zfs.enable = lib.mkEnableOption "enables zfs";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf config.homelab.zfs.enable {
|
||||||
# set network host id
|
# set network host id
|
||||||
networking.hostId = "3e6e7055";
|
networking.hostId = "3e6e7055";
|
||||||
|
|
||||||
@@ -18,5 +23,6 @@
|
|||||||
autoScrub.interval = "weekly";
|
autoScrub.interval = "weekly";
|
||||||
|
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,20 +0,0 @@
|
|||||||
{ config, pkgs, lib, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
# enable nvidia proprietary driver
|
|
||||||
hardware.nvidia = {
|
|
||||||
modesetting.enable = true; # required
|
|
||||||
open = false; # use proprietary driver
|
|
||||||
nvidiaSettings = true; # no shit
|
|
||||||
powerManagement.enable = false; # can cause sleep issues
|
|
||||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
|
||||||
};
|
|
||||||
|
|
||||||
# install nvidia-smi
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
nvidia-smi
|
|
||||||
];
|
|
||||||
|
|
||||||
# enable docker gpu passthrough
|
|
||||||
virtualisation.docker.enableNvidia = true;
|
|
||||||
}
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
# enable and configure openssh
|
|
||||||
services.openssh = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
PasswordAuthentication = true;
|
|
||||||
PermitRootLogin = "no";
|
|
||||||
X11Forwarding = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
{ config, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
services.syncthing = {
|
|
||||||
enable = true;
|
|
||||||
user = "blake";
|
|
||||||
group = "blake";
|
|
||||||
|
|
||||||
dataDir = "/home/blake/.local/state/syncthing";
|
|
||||||
configDir = "/home/blake/.config/syncthing";
|
|
||||||
|
|
||||||
# webui
|
|
||||||
guiAddress = "0.0.0.0:2222";
|
|
||||||
openDefaultPorts = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
{ config, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
services.tailscale = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
useRoutingFeatures = "both";
|
|
||||||
authKeyFile = "/home/blake/.nix/.keyring/tailscale/authkey";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user