all repos — nixfiles @ 11b85ddd708200a18225172ec9af35525e4fe518

System and user configuration, managed by nix and home-manager

system/hosts/marvin.nix (view raw)

{
  config,
  pkgs,
  lib,
  ...
}:
{
  imports = [
    ../settings/darwin.nix
    ../settings/dev.nix
    ../settings/programs/shell.nix
    ../settings/programs/base.nix
  ];

  local.web = {
    enable = true;
    projectRoot = "/Users/alan/projects";
  };

  system.primaryUser = "alan";
  system.primaryUserHome = "/Users/alan";

  networking = {
    hostName = "marvin";
    localHostName = "Paranoid-Android";
  };

  services.caddy = {
    user = "root";
    group = "wheel";
  };

  services.redis = {
    enable = true;
    bind = "127.0.0.1 ::1";
    extraConfig = ''
      save ""
    '';
  };

  services.tailscale = {
    enable = true;
  };
  environment.etc."resolver/ts.net".text = lib.mkForce "nameserver fd7a:115c:a1e0::53";

  programs.fish.enable = true;
  environment.shells = with pkgs; [
    fish
    "/Users/alan/.local/state/nix/profile/bin/fish"
  ];

  environment.variables.LANG = "en_GB.UTF-8";

  # Used for backwards compatibility, please read the changelog before changing.
  # $ darwin-rebuild changelog
  system.stateVersion = 4;
  ids.gids.nixbld = 350;

  # You should generally set this to the total number of logical cores in your system.
  # $ sysctl -n hw.ncpu
  nix.settings = {
    max-jobs = 8;
    cores = 4;
  };

  nix = {
    distributedBuilds = true;
    buildMachines = [
      {
        protocol = "ssh-ng";
        sshUser = "nixremote";
        hostName = "linde";
        system = "aarch64-linux";
        maxJobs = 2;
        speedFactor = 1;
        supportedFeatures = [ "kvm" ];
      }
    ];
  };

  nix.linux-builder = {
    enable = !config.nix-rosetta-builder.enable;
    systems = [
      "x86_64-linux"
      "aarch64-linux"
    ];
    speedFactor = 8;
  };

  nix-rosetta-builder = {
    enable = true; # turn off to bootstrap
    memory = "32GiB";
    onDemand = true;
    onDemandLingerMinutes = 180;
  };
}