nixos-config/modules/generic.nix

137 lines
2.9 KiB
Nix
Raw Normal View History

{ config, pkgs, lib, ... }:
2021-11-06 00:07:40 +01:00
let
sshPubkeys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE+X4vceRi79FLwwyzFzxNvaQlolQFrpYn0N4bgdLLaI root@hardlyworking"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFyGaBZIZYjiBhOFD2drvG316B9NUVSbMpTIhOCQur8P arch"
];
in
{
users.users = {
root.openssh.authorizedKeys.keys = sshPubkeys;
mc-fucker = {
isNormalUser = true;
openssh.authorizedKeys.keys = sshPubkeys;
hashedPassword = "$6$VlNqS5D2uxmzs$AXEEg63iQ5bMQDtU9.Cy4cd/UfQCHk9QNo2RuQmucNz6Y4Z2l0qM5lvr6KFcEdJi6vO7mYd761LrVrQ8J7nPw1";
extraGroups = [ "wheel" ];
};
};
time.timeZone = "Europe/Berlin";
i18n = {
defaultLocale = "en_GB.UTF-8";
extraLocaleSettings = {
LC_TIME = "de_DE.UTF-8";
};
};
2021-11-06 00:07:40 +01:00
zramSwap = {
2023-07-28 10:22:20 +02:00
enable = lib.mkDefault true;
memoryPercent = lib.mkDefault 200;
2021-11-06 00:07:40 +01:00
algorithm = "lzo-rle";
};
programs = {
2025-03-10 19:21:19 +01:00
mosh.enable = true;
2021-11-06 00:07:40 +01:00
zsh = import ./zsh.nix;
atop = {
2023-07-28 10:22:20 +02:00
enable = lib.mkDefault true;
netatop.enable = lib.mkDefault true;
2021-11-06 00:07:40 +01:00
};
#vim.enable = true; # disabled until nixos 24.11
vim.defaultEditor = true;
2021-11-06 00:07:40 +01:00
};
systemd.services.atop.environment = {
LOGINTERVAL = "60";
LOGGENERATIONS = "14";
};
2023-01-18 14:34:15 +01:00
#services.logrotate = {
# enable = true;
#};
2021-11-06 00:07:40 +01:00
users.defaultUserShell = pkgs.zsh;
security.sudo.wheelNeedsPassword = false;
2024-07-05 10:42:27 +02:00
system.autoUpgrade = {
enable = lib.mkDefault true;
allowReboot = lib.mkDefault true;
dates = "04:00";
randomizedDelaySec = "30min";
};
2021-11-06 00:07:40 +01:00
services = {
openssh = {
enable = true;
2024-04-17 15:52:36 +02:00
settings.PasswordAuthentication = false;
extraConfig = "ClientAliveInterval 60";
2021-11-06 00:07:40 +01:00
};
2023-01-18 14:34:15 +01:00
2021-11-07 11:44:06 +01:00
tailscale.enable = true;
2023-01-18 14:34:15 +01:00
fail2ban = {
enable = true;
ignoreIP =
[
"100.64.0.0/16"
];
};
atd.enable = true;
2021-11-07 11:44:06 +01:00
};
networking.firewall = {
trustedInterfaces = [ "tailscale0" ];
allowedUDPPorts = [ config.services.tailscale.port ];
2021-11-06 00:07:40 +01:00
};
networking.hosts = {
"100.64.0.2" = [ "mc-fucker.cool" ];
};
boot.loader.timeout = 1;
2021-11-06 00:07:40 +01:00
environment.systemPackages = with pkgs; [
2024-11-13 18:44:42 +01:00
btop
dig
eza
2021-11-06 00:07:40 +01:00
git
2024-11-13 18:44:42 +01:00
htop
2021-11-07 11:44:06 +01:00
nmap
2022-03-29 15:18:38 +02:00
pv
2024-11-13 18:44:42 +01:00
rclone
rxvt-unicode-unwrapped.terminfo
screen
wget
2021-11-06 00:07:40 +01:00
(import ./vim.nix)
];
2021-12-08 10:58:46 +01:00
systemd.timers."podman-auto-update" = (lib.mkIf config.virtualisation.podman.enable {
enable = true;
wantedBy = [ "multi-user.target" ];
});
2023-10-17 13:07:54 +02:00
virtualisation.podman.defaultNetwork.settings = (lib.mkIf config.virtualisation.podman.enable {
dns_enabled = true;
});
# disabling prune until nixos 23.05 drops
# due to compability issues
#virtualisation.podman.autoPrune.enable = config.virtualisation.podman.enable;
2023-04-05 13:23:12 +02:00
2024-04-17 15:52:36 +02:00
#nix.gc = {
# automatic = lib.mkDefault true;
# options = lib.mkDefault "--delete-older-than 2d";
#};
2021-12-21 14:55:34 +01:00
2024-04-17 15:52:36 +02:00
boot.tmp.cleanOnBoot = true;
2022-05-09 15:27:22 +02:00
2021-12-08 10:58:46 +01:00
imports = [
./zabbix-agent.nix
2023-04-24 02:31:25 +02:00
./sops.nix
2023-05-31 15:18:24 +02:00
./ssh-knownHosts.nix
2021-12-08 10:58:46 +01:00
];
2021-11-06 00:07:40 +01:00
}
2021-11-17 10:20:02 +01:00
# vim: set et ts=2 sw=2 ai: