dotfiles/nix/base-system/darwin-configuration.nix
2024-02-23 12:09:00 -05:00

117 lines
3.8 KiB
Nix

{ pkgs, config, lib, ... }:
{
nix = {
package = pkgs.nix;
# SEE: https://github.com/NixOS/nix/issues/4119#issuecomment-1734738812
settings.sandbox = "relaxed";
extraOptions = ''
experimental-features = nix-command flakes repl-flake
extra-platforms = x86_64-darwin aarch64-darwin x86_64-linux
'';
};
# Right now the documentation build is broken.
# TODO(jwall): Add this back when they work again.
documentation.enable = false;
# I'm not a zealot about this one.
nixpkgs.config.allowUnfree = true;
nixpkgs.overlays = [
(self: super: {
neovim = super.neovim.override {
viAlias = true;
vimAlias = true;
};
})
];
# TODO(zaphar): Move this to a module.
launchd.user.agents.ipfs = {
serviceConfig = {
ProgramArguments = [
"${pkgs.kubo}/bin/ipfs"
"daemon"
"--init"
];
KeepAlive = true;
RunAtLoad = true;
};
};
services.node-exporter.enable = true;
services.prometheus.enable = true;
services.heracles.enable = true;
services.heracles.settings = [
{
title = "Metrics";
span = {
end = "now";
duration = "1d";
step_duration = "5min";
};
graphs = [
{
title = "CPU and Mem Used";
query_type = "Range";
plots = [
{ # CPU plot
source = "http://${config.services.prometheus.listen}";
query = ''
sum by (job,instance, mode)(irate(node_cpu_seconds_total[5m]))
/ ignoring(mode) group_left
sum by (job,instance)(irate(node_cpu_seconds_total[5m]))
'';
meta = {
name_format = "`\${labels.instance} - \${labels.mode}`";
d3_tick_format = "~%";
};
}
{ # Memory Usage
source = "http://${config.services.prometheus.listen}";
query = ''
(node_memory_wired_bytes
+ node_memory_compressed_bytes
+ node_memory_active_bytes)
/ node_memory_total_bytes
'';
meta = {
name_format = "`\${labels.instance} - Memory`";
d3_tick_format = "~%";
};
}
];
}
];
}
];
# TODO launchd.user.agents.prometheus;
# Use a custom configuration.nix location.
# $ darwin-rebuild switch -I darwin-config=$HOME/.config/nixpkgs/darwin/configuration.nix
# environment.darwinConfig = "$HOME/.config/nixpkgs/darwin/configuration.nix";
# Auto upgrade nix package and the daemon service.
services.nix-daemon.enable = true;
#services.spacebar.enable = true;
#services.spacebar.package = "${pkgs.spacebar}";
# Create /etc/bashrc that loads the nix-darwin environment.
# programs.bash.enable = true; # default shell on catalina
# programs.fish.enable = true;
system.defaults = {
finder.AppleShowAllExtensions = true;
};
system.systemBuilderArgs = lib.mkIf (config.nix.settings.sandbox == "relaxed") {
sandboxProfile = ''
(allow file-read* file-write* process-exec mach-lookup (subpath "${builtins.storeDir}"))
'';
};
# Used for backwards compatibility, please read the changelog before changing.
# $ darwin-rebuild changelog
system.stateVersion = 4;
}