infra/modules/darwin/common/default.nix

90 lines
2.2 KiB
Nix
Raw Normal View History

2023-12-31 12:43:17 +10:00
{ inputs, pkgs, ... }:
let
authorizedKeys = {
keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDPVjRBomWFJNNkZb0g5ymLmc3pdRddIScitmJ9yC+ap" # deployment
];
keyFiles = pkgs.lib.filesystem.listFilesRecursive "${toString inputs.self}/users/keys";
};
in
2023-07-17 13:53:06 +10:00
{
imports = [
2023-12-11 09:40:00 +10:00
./apfs-cleanup.nix
2023-07-21 20:12:20 +10:00
./reboot.nix
2023-07-17 13:53:06 +10:00
./telegraf.nix
./upgrade-diff.nix
2024-03-10 09:26:39 +10:00
../../shared/known-hosts.nix
2023-07-29 17:37:07 +10:00
../../shared/nix-daemon.nix
2024-05-05 15:01:47 +10:00
inputs.agenix.darwinModules.age
2023-07-17 13:53:06 +10:00
];
# TODO: refactor this to share /users with nixos
users.users = {
customer.openssh = { inherit authorizedKeys; };
hetzner.openssh = { inherit authorizedKeys; };
};
2023-07-17 13:53:06 +10:00
services.nix-daemon.enable = true;
programs.zsh.enable = true;
documentation.enable = false;
programs.info.enable = false;
# fix darwin sandboxing
nix.package = pkgs.nix.overrideAttrs (old: {
patches = (old.patches or [ ]) ++ [
(pkgs.fetchpatch {
url = "https://github.com/NixOS/nix/commit/217fadd993da88294d0393af374b638afd99b169.patch";
hash = "sha256-nkJouBmEj3vqgjRKhXjbHysgQqqhwebdKBArFAzIBvc=";
})
];
});
2023-07-17 13:53:06 +10:00
nix.settings.trusted-users = [
"@admin"
];
2023-09-18 08:14:53 +10:00
# shouldn't need to set this for a nix multi-user install
nix.gc.user = "root";
2023-07-29 17:37:07 +10:00
# srvos
2023-07-17 13:53:06 +10:00
nix.settings.builders-use-substitutes = true;
2023-07-29 17:37:07 +10:00
# srvos
2023-07-17 13:53:06 +10:00
nix.settings.experimental-features = [
"nix-command"
"flakes"
];
environment.systemPackages = with pkgs; [
htop
];
system.includeUninstaller = false;
2023-07-31 14:39:08 +10:00
# disable application layer firewall, telegraf needs an incoming connection
system.defaults.alf.globalstate = 0;
# srvos
environment.etc."ssh/sshd_config.d/darwin.conf".text = ''
2024-06-21 09:49:19 +10:00
AuthorizedKeysFile none
HostKey /etc/ssh/ssh_host_ed25519_key
KbdInteractiveAuthentication no
PasswordAuthentication no
'';
# Make sure to disable netbios on activation
system.activationScripts.postActivation.text = ''
echo disabling netbios... >&2
launchctl disable system/netbiosd
launchctl unload -w /System/Library/LaunchDaemons/com.apple.netbiosd.plist 2>/dev/null || true
echo disabling spotlight indexing... >&2
mdutil -a -i off -d &> /dev/null
mdutil -a -E &> /dev/null
'';
2023-09-16 07:56:59 +10:00
time.timeZone = "GMT";
2023-07-17 13:53:06 +10:00
}