# Configuration common to all my servers { config, pkgs, lib, ... }: { # Select internationalisation properties. i18n = { consoleFont = "Lat2-Terminus16"; consoleKeyMap = "us"; defaultLocale = "en_AU.UTF-8"; }; time.timeZone = "Australia/Brisbane"; # Set your preferred timezone: # Set security options: security.sudo.enable = true; security.sudo.wheelNeedsPassword = false; # Enable Nix garbage collection: nix.gc.automatic = true; nix.gc.dates = "weekly"; nix.gc.options = "--delete-older-than 90d"; nix.autoOptimiseStore = true; # Set the system-wide environment environment = { systemPackages = with pkgs; [ byobu # text-based window manager and terminal multiplexer. htop # interactive process viewer tmux # Terminal multiplexer required by byobu git # Distributed version control system powerline-fonts # For zsh themes ]; }; # Program defauls for Linode VMs programs.zsh = { enable = true; autosuggestions = { enable = true; }; # List of strings concatenated with "\n" #loginShellInit = '' # _byobu_sourced=1 . byobu 2>/dev/null || true #''; ohMyZsh = { enable = true; plugins = [ "git" "tmux" ]; theme = "agnoster"; }; }; programs.mosh = { enable = true; withUtempter = true; }; # List services that you want to enable: services.openssh = { enable = true; # Enable the OpenSSH daemon. permitRootLogin = "without-password"; challengeResponseAuthentication = false; passwordAuthentication = false; openFirewall = true; hostKeys = [ { path = "/etc/ssh/ssh_host_ed25519_key"; type = "ed25519"; } ]; }; # Set the default shell for all users users.defaultUserShell = "/run/current-system/sw/bin/zsh"; # Users common across MIO Ops: users.mutableUsers = false; # Remove any users not defined in here users.users.root = { hashedPassword = "$6$yak.T2uXItw5j2tU$E5kW9iDMXBc86voxJjxnrUcY0DrW/7WaQY0aGZ5sIJ2JPYZOhDslTKqOYK8sDSJGhM/mCxjPbJq4JGFsObN7D1"; openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDtjE0YstRzlh+Zhlj03th9DYOkMqJ5xHUcderBq151K craige@mcwhirter.io" ]; }; # MIO Ops groups: users.groups.craige.gid = 1000; # MIO Ops Users users.users.craige = { isNormalUser = true; uid = 1000; group = "craige"; extraGroups = ["wheel" ]; hashedPassword = "$6$ZNvCXNzwtdeV0pd$iKraghNGImwzx3IhVk6.wi6Bl7yFS6jLbxm9zeE4xq6.WLkYtVnnP323bstos8sVhD4L9Z21gMGVY3MLtmvlH0"; openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDtjE0YstRzlh+Zhlj03th9DYOkMqJ5xHUcderBq151K craige@mcwhirter.io" ]; }; }