2023-10-17 14:12:26 +02:00
|
|
|
{ config
|
2023-11-04 03:41:14 +01:00
|
|
|
, lib
|
2023-10-17 14:12:26 +02:00
|
|
|
, pkgs
|
2023-11-04 03:41:14 +01:00
|
|
|
, inputs
|
|
|
|
, system
|
2023-10-17 14:12:26 +02:00
|
|
|
, ...
|
2023-10-16 23:54:37 +02:00
|
|
|
}: {
|
2023-11-04 03:41:14 +01:00
|
|
|
nixpkgs.hostPlatform = lib.mkDefault system;
|
2023-12-10 05:19:43 +01:00
|
|
|
|
2023-10-16 23:54:37 +02:00
|
|
|
nix = {
|
|
|
|
gc = {
|
|
|
|
automatic = true;
|
|
|
|
dates = "weekly";
|
|
|
|
options = "--delete-older-than 2w";
|
2024-03-06 10:30:13 +01:00
|
|
|
randomizedDelaySec = "45min";
|
2023-10-16 23:54:37 +02:00
|
|
|
};
|
|
|
|
settings.auto-optimise-store = true;
|
|
|
|
package = pkgs.nixFlakes;
|
|
|
|
extraOptions = ''
|
|
|
|
experimental-features = nix-command flakes
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
2023-11-04 03:41:14 +01:00
|
|
|
home-manager.backupFileExtension = "bak";
|
|
|
|
|
2023-10-16 23:54:37 +02:00
|
|
|
# locale
|
|
|
|
time.timeZone = "Europe/Berlin";
|
|
|
|
|
|
|
|
i18n = {
|
|
|
|
defaultLocale = "en_US.UTF-8";
|
|
|
|
|
|
|
|
extraLocaleSettings = {
|
|
|
|
LANG = "en_US.UTF-8";
|
|
|
|
LC_ADDRESS = "de_DE.UTF-8";
|
|
|
|
LC_COLLATE = "de_DE.UTF-8";
|
|
|
|
LC_CTYPE = "en_US.UTF-8";
|
|
|
|
LC_IDENTIFICATION = "de_DE.UTF-8";
|
|
|
|
LC_MEASUREMENT = "de_DE.UTF-8";
|
|
|
|
LC_MESSAGES = "en_US.UTF-8";
|
|
|
|
LC_MONETARY = "de_DE.UTF-8";
|
|
|
|
LC_NAME = "de_DE.UTF-8";
|
|
|
|
LC_NUMERIC = "de_DE.UTF-8";
|
|
|
|
LC_PAPER = "de_DE.UTF-8";
|
|
|
|
LC_TELEPHONE = "de_DE.UTF-8";
|
|
|
|
LC_TIME = "de_DE.UTF-8";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
####################
|
|
|
|
|
2024-01-22 21:09:28 +01:00
|
|
|
security = {
|
|
|
|
pki.certificates = [
|
|
|
|
(lib.readFile ../../ext/internal-ca.crt)
|
|
|
|
];
|
|
|
|
rtkit.enable = true;
|
2023-11-07 23:49:32 +01:00
|
|
|
|
2024-01-29 19:58:08 +01:00
|
|
|
sudo.enable = false;
|
|
|
|
sudo-rs = {
|
|
|
|
enable = true;
|
2024-01-22 21:09:28 +01:00
|
|
|
wheelNeedsPassword = false;
|
|
|
|
execWheelOnly = true;
|
|
|
|
};
|
2023-11-07 23:49:32 +01:00
|
|
|
};
|
2023-10-16 23:54:37 +02:00
|
|
|
|
|
|
|
environment.sessionVariables = {
|
|
|
|
EDITOR = "nvim";
|
|
|
|
};
|
|
|
|
|
|
|
|
environment.systemPackages = with pkgs; [
|
2024-04-29 12:01:32 +02:00
|
|
|
fclones
|
2023-12-10 05:19:43 +01:00
|
|
|
curl
|
|
|
|
fish
|
|
|
|
figlet
|
2023-10-16 23:54:37 +02:00
|
|
|
neovim # editor
|
2024-01-18 18:08:19 +01:00
|
|
|
nix-alien
|
2023-10-16 23:54:37 +02:00
|
|
|
veracrypt
|
2023-12-07 18:02:10 +01:00
|
|
|
git
|
2023-12-10 05:19:43 +01:00
|
|
|
vim # fallback ed
|
|
|
|
wget
|
2024-04-11 17:48:21 +02:00
|
|
|
|
|
|
|
## MONITORING TOOLS ##
|
|
|
|
btop # for CPU, RAM, and Disk monitoring
|
|
|
|
iotop # for disk I/O monitoring
|
|
|
|
iftop # for network I/O monitoring
|
2023-10-16 23:54:37 +02:00
|
|
|
];
|
|
|
|
|
2023-11-04 00:02:01 +01:00
|
|
|
fileSystems."/etc/nixos" = {
|
2023-12-07 12:02:50 +01:00
|
|
|
device = lib.mkDefault "/home/tristand/nix";
|
2023-11-04 00:02:01 +01:00
|
|
|
fsType = "none";
|
|
|
|
options = [ "bind" ];
|
|
|
|
};
|
|
|
|
|
2023-10-17 14:12:26 +02:00
|
|
|
programs = {
|
2023-12-10 05:19:43 +01:00
|
|
|
rust-motd = {
|
|
|
|
enable = true;
|
|
|
|
enableMotdInSSHD = true;
|
|
|
|
settings = {
|
|
|
|
banner = {
|
|
|
|
color = "green";
|
|
|
|
command = ''
|
|
|
|
${pkgs.inetutils}/bin/hostname | ${pkgs.figlet}/bin/figlet -f slant
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
|
|
|
uptime = {
|
|
|
|
prefix = "Up";
|
|
|
|
};
|
|
|
|
|
|
|
|
global = {
|
|
|
|
progress_full_character = "=";
|
|
|
|
progress_empty_character = "-";
|
|
|
|
progress_prefix = "[";
|
|
|
|
progress_suffix = "]";
|
|
|
|
};
|
|
|
|
|
|
|
|
filesystems = {
|
2024-01-18 18:08:19 +01:00
|
|
|
root = "/";
|
|
|
|
home = "/home";
|
2023-12-10 05:19:43 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
memory.swap_pos = "beside";
|
|
|
|
last_login = builtins.listToAttrs (map
|
|
|
|
(user: {
|
|
|
|
name = user;
|
|
|
|
value = 2;
|
|
|
|
})
|
|
|
|
(builtins.attrNames config.home-manager.users));
|
|
|
|
};
|
|
|
|
order = [
|
|
|
|
"global"
|
|
|
|
"banner"
|
|
|
|
"uptime"
|
|
|
|
"memory"
|
|
|
|
"filesystems"
|
|
|
|
"last_login"
|
|
|
|
];
|
|
|
|
};
|
2023-12-15 02:21:35 +01:00
|
|
|
nix-ld.enable = true;
|
2024-01-18 18:08:19 +01:00
|
|
|
nix-ld.package = pkgs.nix-ld-rs;
|
2023-10-17 14:12:26 +02:00
|
|
|
command-not-found.enable = false;
|
|
|
|
nix-index-database.comma.enable = true;
|
2023-10-16 23:54:37 +02:00
|
|
|
|
2023-10-17 14:12:26 +02:00
|
|
|
fish.enable = true;
|
|
|
|
gnupg.agent = {
|
|
|
|
enable = true;
|
2024-04-29 12:01:32 +02:00
|
|
|
# enableSSHSupport = true; # breaks gitea foo
|
2024-03-21 17:12:22 +01:00
|
|
|
pinentryPackage = lib.mkForce pkgs.pinentry-qt;
|
2023-10-17 14:12:26 +02:00
|
|
|
};
|
2023-10-16 23:54:37 +02:00
|
|
|
};
|
|
|
|
|
2023-10-17 14:12:26 +02:00
|
|
|
services = {
|
|
|
|
fwupd.enable = true;
|
|
|
|
|
2024-03-22 16:15:44 +01:00
|
|
|
# envfs.enable = true; # not needed due to flake
|
2024-05-12 19:57:23 +02:00
|
|
|
timesyncd.enable = false;
|
|
|
|
ntp.enable = false;
|
2024-03-11 03:46:50 +01:00
|
|
|
ntpd-rs.enable = true;
|
2023-10-16 23:54:37 +02:00
|
|
|
|
2023-11-04 01:17:25 +01:00
|
|
|
openssh = {
|
|
|
|
enable = true;
|
2023-12-08 01:57:30 +01:00
|
|
|
settings = {
|
|
|
|
PasswordAuthentication = false;
|
|
|
|
KbdInteractiveAuthentication = false;
|
|
|
|
PubKeyAuthentication = true;
|
|
|
|
};
|
2023-12-10 05:19:43 +01:00
|
|
|
extraConfig = ''
|
|
|
|
AllowTcpForwarding yes
|
|
|
|
X11Forwarding no
|
|
|
|
AllowAgentForwarding no
|
2024-05-03 18:56:35 +02:00
|
|
|
AllowStreamLocalForwarding yes
|
2023-12-10 05:19:43 +01:00
|
|
|
AuthenticationMethods publickey
|
|
|
|
'';
|
2023-11-04 01:17:25 +01:00
|
|
|
};
|
2023-10-17 14:12:26 +02:00
|
|
|
|
|
|
|
gvfs.enable = true;
|
|
|
|
avahi.enable = true;
|
2024-02-02 16:13:55 +01:00
|
|
|
avahi.nssmdns4 = true;
|
2023-10-17 14:12:26 +02:00
|
|
|
};
|
2023-10-16 23:54:37 +02:00
|
|
|
|
2023-11-04 03:41:14 +01:00
|
|
|
networking.firewall = {
|
|
|
|
extraCommands = ''iptables -t raw -A OUTPUT -p udp -m udp --dport 137 -j CT --helper netbios-ns'';
|
|
|
|
allowedTCPPortRanges = [
|
|
|
|
{
|
|
|
|
from = 22;
|
|
|
|
to = 22;
|
|
|
|
} # ssh
|
|
|
|
];
|
|
|
|
};
|
2023-10-16 23:54:37 +02:00
|
|
|
}
|