215 lines
3.9 KiB
Nix
215 lines
3.9 KiB
Nix
{
|
|
pkgs,
|
|
lib,
|
|
...
|
|
}: {
|
|
imports = [
|
|
../../users
|
|
];
|
|
|
|
nix = {
|
|
settings = {
|
|
experimental-features = ["nix-command" "flakes"];
|
|
trusted-users = ["leyla"];
|
|
};
|
|
gc = {
|
|
automatic = true;
|
|
dates = "weekly";
|
|
options = "--delete-older-than 7d";
|
|
};
|
|
optimise = {
|
|
automatic = true;
|
|
dates = ["weekly"];
|
|
};
|
|
};
|
|
|
|
# Enable networking
|
|
networking.networkmanager.enable = true;
|
|
|
|
i18n.defaultLocale = "en_US.UTF-8";
|
|
|
|
i18n.extraLocaleSettings = {
|
|
LC_ADDRESS = "en_US.UTF-8";
|
|
LC_IDENTIFICATION = "en_US.UTF-8";
|
|
LC_MEASUREMENT = "en_US.UTF-8";
|
|
LC_MONETARY = "en_US.UTF-8";
|
|
LC_NAME = "en_US.UTF-8";
|
|
LC_NUMERIC = "en_US.UTF-8";
|
|
LC_PAPER = "en_US.UTF-8";
|
|
LC_TELEPHONE = "en_US.UTF-8";
|
|
LC_TIME = "en_US.UTF-8";
|
|
};
|
|
|
|
users = {
|
|
users = {
|
|
leyla = {
|
|
uid = 1000;
|
|
description = "Leyla";
|
|
group = "leyla";
|
|
home = "/home/leyla";
|
|
};
|
|
|
|
ester = {
|
|
uid = 1001;
|
|
description = "Ester";
|
|
group = "ester";
|
|
home = "/home/ester";
|
|
};
|
|
|
|
eve = {
|
|
uid = 1002;
|
|
description = "Eve";
|
|
group = "eve";
|
|
home = "/home/eve";
|
|
};
|
|
|
|
jellyfin = {
|
|
uid = 2000;
|
|
group = "jellyfin";
|
|
isSystemUser = true;
|
|
};
|
|
|
|
forgejo = {
|
|
uid = 2002;
|
|
group = "forgejo";
|
|
isSystemUser = true;
|
|
};
|
|
|
|
pihole = {
|
|
uid = 2003;
|
|
group = "pihole";
|
|
isSystemUser = true;
|
|
};
|
|
|
|
hass = {
|
|
uid = lib.mkForce 2004;
|
|
group = "hass";
|
|
isSystemUser = true;
|
|
};
|
|
|
|
headscale = {
|
|
uid = 2005;
|
|
group = "headscale";
|
|
isSystemUser = true;
|
|
};
|
|
|
|
nextcloud = {
|
|
uid = 2006;
|
|
group = "nextcloud";
|
|
isSystemUser = true;
|
|
};
|
|
};
|
|
|
|
groups = {
|
|
leyla = {
|
|
gid = 1000;
|
|
members = ["lelya"];
|
|
};
|
|
|
|
ester = {
|
|
gid = 1001;
|
|
members = ["ester"];
|
|
};
|
|
|
|
eve = {
|
|
gid = 1002;
|
|
members = ["eve"];
|
|
};
|
|
|
|
users = {
|
|
gid = 100;
|
|
members = ["leyla" "ester" "eve"];
|
|
};
|
|
|
|
jellyfin = {
|
|
gid = 2000;
|
|
members = ["jellyfin" "leyla"];
|
|
};
|
|
|
|
jellyfin_media = {
|
|
gid = 2001;
|
|
members = ["jellyfin" "leyla" "ester" "eve"];
|
|
};
|
|
|
|
forgejo = {
|
|
gid = 2002;
|
|
members = ["forgejo" "leyla"];
|
|
};
|
|
|
|
pihole = {
|
|
gid = 2003;
|
|
members = ["pihole" "leyla"];
|
|
};
|
|
|
|
hass = {
|
|
gid = lib.mkForce 2004;
|
|
members = ["hass" "leyla"];
|
|
};
|
|
|
|
headscale = {
|
|
gid = 2005;
|
|
members = ["headscale"];
|
|
};
|
|
|
|
nextcloud = {
|
|
gid = 2006;
|
|
members = ["nextcloud"];
|
|
};
|
|
};
|
|
};
|
|
|
|
services = {
|
|
automatic-timezoned = {
|
|
enable = true;
|
|
};
|
|
|
|
openssh = {
|
|
enable = true;
|
|
ports = [22];
|
|
settings = {
|
|
PasswordAuthentication = false;
|
|
AllowUsers = ["leyla"]; # Allows all users by default. Can be [ "user1" "user2" ]
|
|
UseDns = true;
|
|
X11Forwarding = false;
|
|
};
|
|
};
|
|
};
|
|
|
|
environment = {
|
|
# List packages installed in system profile.
|
|
systemPackages = with pkgs; [
|
|
qemu
|
|
(pkgs.writeShellScriptBin "qemu-system-x86_64-uefi" ''
|
|
qemu-system-x86_64 \
|
|
-bios ${OVMF.fd}/FV/OVMF.fd \
|
|
"$@"
|
|
'')
|
|
|
|
wget
|
|
|
|
# version control
|
|
git
|
|
|
|
# system debuging tools
|
|
iputils
|
|
dnsutils
|
|
];
|
|
|
|
sessionVariables = rec {
|
|
SOPS_AGE_KEY_DIRECTORY = import ../../const/sops_age_key_directory.nix;
|
|
SOPS_AGE_KEY_FILE = "${SOPS_AGE_KEY_DIRECTORY}/key.txt";
|
|
};
|
|
};
|
|
|
|
sops = {
|
|
defaultSopsFormat = "yaml";
|
|
gnupg.sshKeyPaths = [];
|
|
|
|
age = {
|
|
keyFile = "/var/lib/sops-nix/key.txt";
|
|
sshKeyPaths = [];
|
|
# generateKey = true;
|
|
};
|
|
};
|
|
}
|