Compare commits
	
		
			5 Commits
		
	
	
		
			dagali-hei
			...
			setup-bikk
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| e84318e59b | |||
| 49c06b2abe | |||
| 8b44ddd56d | |||
| c683a6d4c2 | |||
| 5e30f30ac2 | 
							
								
								
									
										1
									
								
								base.nix
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								base.nix
									
									
									
									
									
								
							@@ -73,6 +73,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  # Trusted users on the nix builder machines
 | 
					  # Trusted users on the nix builder machines
 | 
				
			||||||
  users.groups."nix-builder-users".name = "nix-builder-users";
 | 
					  users.groups."nix-builder-users".name = "nix-builder-users";
 | 
				
			||||||
 | 
					  users.motd = builtins.readFile ./misc/motd;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  services.openssh = {
 | 
					  services.openssh = {
 | 
				
			||||||
    enable = true;
 | 
					    enable = true;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,44 +0,0 @@
 | 
				
			|||||||
{ config, pkgs, values, ... }:
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    networking.nat = {
 | 
					 | 
				
			||||||
    enable = true;
 | 
					 | 
				
			||||||
    internalInterfaces = ["ve-+"];
 | 
					 | 
				
			||||||
    externalInterface = "ens3";
 | 
					 | 
				
			||||||
    # Lazy IPv6 connectivity for the container
 | 
					 | 
				
			||||||
    enableIPv6 = true;
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  containers.bikkje = {
 | 
					 | 
				
			||||||
    autoStart = true;
 | 
					 | 
				
			||||||
    config = { config, pkgs, ... }: {
 | 
					 | 
				
			||||||
      #import packages
 | 
					 | 
				
			||||||
      packages = with pkgs; [
 | 
					 | 
				
			||||||
          alpine
 | 
					 | 
				
			||||||
          mutt
 | 
					 | 
				
			||||||
          mutt-ics
 | 
					 | 
				
			||||||
          mutt-wizard
 | 
					 | 
				
			||||||
          weechat
 | 
					 | 
				
			||||||
          weechatScripts.edit
 | 
					 | 
				
			||||||
          hexchat
 | 
					 | 
				
			||||||
          irssi
 | 
					 | 
				
			||||||
          pidgin
 | 
					 | 
				
			||||||
      ];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      networking = {
 | 
					 | 
				
			||||||
        firewall = {
 | 
					 | 
				
			||||||
          enable = true;
 | 
					 | 
				
			||||||
          # Allow SSH and HTTP and ports for email and irc
 | 
					 | 
				
			||||||
          allowedTCPPorts = [ 80 22 194 994 6665 6666 6667 6668 6669 6697 995 993 25 465 587 110 143 993 995 ];
 | 
					 | 
				
			||||||
          allowedUDPPorts = [ 80 22 194 994 6665 6666 6667 6668 6669 6697 995 993 25 465 587 110 143 993 995 ];
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
        # Use systemd-resolved inside the container
 | 
					 | 
				
			||||||
        # Workaround for bug https://github.com/NixOS/nixpkgs/issues/162686
 | 
					 | 
				
			||||||
        useHostResolvConf = mkForce false;
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
      
 | 
					 | 
				
			||||||
      system.stateVersion = "23.11";
 | 
					 | 
				
			||||||
      services.resolved.enable = true;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
							
								
								
									
										125
									
								
								hosts/buskerud/bikkje/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										125
									
								
								hosts/buskerud/bikkje/default.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,125 @@
 | 
				
			|||||||
 | 
					{ config, pkgs, values, lib, ... }:
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  containers.bikkje = {
 | 
				
			||||||
 | 
					    autoStart = true;
 | 
				
			||||||
 | 
					    interfaces = [ "enp4s0f0" ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    config = { config, pkgs, ... }: {
 | 
				
			||||||
 | 
					      imports = [
 | 
				
			||||||
 | 
					        ../../../modules/home-areas.nix
 | 
				
			||||||
 | 
					        ./services/kerberos
 | 
				
			||||||
 | 
					      ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      environment.systemPackages = with pkgs; [
 | 
				
			||||||
 | 
					          zsh
 | 
				
			||||||
 | 
					          bash
 | 
				
			||||||
 | 
					          fish
 | 
				
			||||||
 | 
					          tcsh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          alpine
 | 
				
			||||||
 | 
					          mutt
 | 
				
			||||||
 | 
					          mutt-ics
 | 
				
			||||||
 | 
					          mutt-wizard
 | 
				
			||||||
 | 
					          notmuch
 | 
				
			||||||
 | 
					          mailutils
 | 
				
			||||||
 | 
					          procmail
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          irssi
 | 
				
			||||||
 | 
					          weechat
 | 
				
			||||||
 | 
					          weechatScripts.edit
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          coreutils-full
 | 
				
			||||||
 | 
					          diffutils
 | 
				
			||||||
 | 
					          findutils
 | 
				
			||||||
 | 
					          ripgrep
 | 
				
			||||||
 | 
					          cvs
 | 
				
			||||||
 | 
					          gawk
 | 
				
			||||||
 | 
					          git
 | 
				
			||||||
 | 
					          gnupg
 | 
				
			||||||
 | 
					          gnused
 | 
				
			||||||
 | 
					          groff
 | 
				
			||||||
 | 
					          less
 | 
				
			||||||
 | 
					          p7zip
 | 
				
			||||||
 | 
					          rcs
 | 
				
			||||||
 | 
					          screen
 | 
				
			||||||
 | 
					          tmux
 | 
				
			||||||
 | 
					          tree
 | 
				
			||||||
 | 
					          unzip
 | 
				
			||||||
 | 
					          zip
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          emacs
 | 
				
			||||||
 | 
					          helix
 | 
				
			||||||
 | 
					          joe
 | 
				
			||||||
 | 
					          micro
 | 
				
			||||||
 | 
					          nano
 | 
				
			||||||
 | 
					          neovim
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          autossh
 | 
				
			||||||
 | 
					          inetutils
 | 
				
			||||||
 | 
					          lynx
 | 
				
			||||||
 | 
					          mosh
 | 
				
			||||||
 | 
					          rsync
 | 
				
			||||||
 | 
					          w3m
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          clang
 | 
				
			||||||
 | 
					          gcc
 | 
				
			||||||
 | 
					          guile
 | 
				
			||||||
 | 
					          lua
 | 
				
			||||||
 | 
					          perl
 | 
				
			||||||
 | 
					          php
 | 
				
			||||||
 | 
					          python3
 | 
				
			||||||
 | 
					          (python3.withPackages (ps: with ps; [
 | 
				
			||||||
 | 
					            numpy
 | 
				
			||||||
 | 
					            sympy
 | 
				
			||||||
 | 
					            scipy
 | 
				
			||||||
 | 
					            requests
 | 
				
			||||||
 | 
					            imageio
 | 
				
			||||||
 | 
					            pillow
 | 
				
			||||||
 | 
					            httpx
 | 
				
			||||||
 | 
					            pycryptodome
 | 
				
			||||||
 | 
					            pandas
 | 
				
			||||||
 | 
					            matplotlib
 | 
				
			||||||
 | 
					          ]))
 | 
				
			||||||
 | 
					          ruby
 | 
				
			||||||
 | 
					          tcl
 | 
				
			||||||
 | 
					      ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      services.openssh = {
 | 
				
			||||||
 | 
					        enable = true;
 | 
				
			||||||
 | 
					        ports = [ 22 80 443 ];
 | 
				
			||||||
 | 
					        openFirewall = true;
 | 
				
			||||||
 | 
					        extraConfig = ''
 | 
				
			||||||
 | 
					          PubkeyAcceptedAlgorithms=+ssh-rsa
 | 
				
			||||||
 | 
					       '';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        settings = {
 | 
				
			||||||
 | 
					          GatewayPorts = "yes";
 | 
				
			||||||
 | 
					          PermitRootLogin = "yes";
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      users.motd = builtins.readFile ../../../misc/motd;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      networking = {
 | 
				
			||||||
 | 
					        firewall.enable = true;
 | 
				
			||||||
 | 
					        # Use systemd-resolved inside the container
 | 
				
			||||||
 | 
					        # Workaround for bug https://github.com/NixOS/nixpkgs/issues/162686
 | 
				
			||||||
 | 
					        useHostResolvConf = lib.mkForce false;
 | 
				
			||||||
 | 
					        hostName = "bikkje";
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      systemd.network.enable = true;
 | 
				
			||||||
 | 
					      systemd.network.networks."30-enp4s0f0" = values.defaultNetworkConfig // {
 | 
				
			||||||
 | 
					        matchConfig.Name = "enp4s0f0";
 | 
				
			||||||
 | 
					        address = with values.hosts.bikkje; [ (ipv4 + "/25") (ipv6 + "/64") ];
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					      
 | 
				
			||||||
 | 
					      system.stateVersion = "23.11";
 | 
				
			||||||
 | 
					      services.resolved.enable = true;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # TODO
 | 
				
			||||||
 | 
					  # - Kerberos Authentication
 | 
				
			||||||
 | 
					  # - Mail Transfer Agent
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										27
									
								
								hosts/buskerud/bikkje/services/kerberos/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								hosts/buskerud/bikkje/services/kerberos/default.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,27 @@
 | 
				
			|||||||
 | 
					{ config, pkgs, lib, ... }:
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  #######################
 | 
				
			||||||
 | 
					  # TODO: remove these once nixos 24.05 gets released
 | 
				
			||||||
 | 
					  #######################
 | 
				
			||||||
 | 
					  imports = [
 | 
				
			||||||
 | 
					    ./krb5.nix
 | 
				
			||||||
 | 
					    ./pam.nix
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					  disabledModules = [
 | 
				
			||||||
 | 
					    "config/krb5/default.nix"
 | 
				
			||||||
 | 
					    "security/pam.nix"
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					  #######################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  security.krb5 = {
 | 
				
			||||||
 | 
					    enable = true;
 | 
				
			||||||
 | 
					    settings = {
 | 
				
			||||||
 | 
					      libdefaults = {
 | 
				
			||||||
 | 
					        default_realm = "PVV.NTNU.NO";
 | 
				
			||||||
 | 
					        dns_lookup_realm = "yes";
 | 
				
			||||||
 | 
					        dns_lookup_kdc = "yes";
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					      realms."PVV.NTNU.NO".admin_server = "kdc.pvv.ntnu.no";
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										88
									
								
								hosts/buskerud/bikkje/services/kerberos/krb5-conf-format.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										88
									
								
								hosts/buskerud/bikkje/services/kerberos/krb5-conf-format.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,88 @@
 | 
				
			|||||||
 | 
					{ pkgs, lib, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Based on
 | 
				
			||||||
 | 
					# - https://web.mit.edu/kerberos/krb5-1.12/doc/admin/conf_files/krb5_conf.html
 | 
				
			||||||
 | 
					# - https://manpages.debian.org/unstable/heimdal-docs/krb5.conf.5heimdal.en.html
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					let
 | 
				
			||||||
 | 
					  inherit (lib) boolToString concatMapStringsSep concatStringsSep filter
 | 
				
			||||||
 | 
					    isAttrs isBool isList mapAttrsToList mdDoc mkOption singleton splitString;
 | 
				
			||||||
 | 
					  inherit (lib.types) attrsOf bool coercedTo either int listOf oneOf path
 | 
				
			||||||
 | 
					    str submodule;
 | 
				
			||||||
 | 
					in
 | 
				
			||||||
 | 
					{ }: {
 | 
				
			||||||
 | 
					  type = let
 | 
				
			||||||
 | 
					    section = attrsOf relation;
 | 
				
			||||||
 | 
					    relation = either (attrsOf value) value;
 | 
				
			||||||
 | 
					    value = either (listOf atom) atom;
 | 
				
			||||||
 | 
					    atom = oneOf [int str bool];
 | 
				
			||||||
 | 
					  in submodule {
 | 
				
			||||||
 | 
					    freeformType = attrsOf section;
 | 
				
			||||||
 | 
					    options = {
 | 
				
			||||||
 | 
					      include = mkOption {
 | 
				
			||||||
 | 
					        default = [ ];
 | 
				
			||||||
 | 
					        description = mdDoc ''
 | 
				
			||||||
 | 
					          Files to include in the Kerberos configuration.
 | 
				
			||||||
 | 
					        '';
 | 
				
			||||||
 | 
					        type = coercedTo path singleton (listOf path);
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					      includedir = mkOption {
 | 
				
			||||||
 | 
					        default = [ ];
 | 
				
			||||||
 | 
					        description = mdDoc ''
 | 
				
			||||||
 | 
					          Directories containing files to include in the Kerberos configuration.
 | 
				
			||||||
 | 
					        '';
 | 
				
			||||||
 | 
					        type = coercedTo path singleton (listOf path);
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					      module = mkOption {
 | 
				
			||||||
 | 
					        default = [ ];
 | 
				
			||||||
 | 
					        description = mdDoc ''
 | 
				
			||||||
 | 
					          Modules to obtain Kerberos configuration from.
 | 
				
			||||||
 | 
					        '';
 | 
				
			||||||
 | 
					        type = coercedTo path singleton (listOf path);
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  generate = let
 | 
				
			||||||
 | 
					    indent = str: concatMapStringsSep "\n" (line: "  " + line) (splitString "\n" str);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    formatToplevel = args @ {
 | 
				
			||||||
 | 
					      include ? [ ],
 | 
				
			||||||
 | 
					      includedir ? [ ],
 | 
				
			||||||
 | 
					      module ? [ ],
 | 
				
			||||||
 | 
					      ...
 | 
				
			||||||
 | 
					    }: let
 | 
				
			||||||
 | 
					      sections = removeAttrs args [ "include" "includedir" "module" ];
 | 
				
			||||||
 | 
					    in concatStringsSep "\n" (filter (x: x != "") [
 | 
				
			||||||
 | 
					      (concatStringsSep "\n" (mapAttrsToList formatSection sections))
 | 
				
			||||||
 | 
					      (concatMapStringsSep "\n" (m: "module ${m}") module)
 | 
				
			||||||
 | 
					      (concatMapStringsSep "\n" (i: "include ${i}") include)
 | 
				
			||||||
 | 
					      (concatMapStringsSep "\n" (i: "includedir ${i}") includedir)
 | 
				
			||||||
 | 
					    ]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    formatSection = name: section: ''
 | 
				
			||||||
 | 
					      [${name}]
 | 
				
			||||||
 | 
					      ${indent (concatStringsSep "\n" (mapAttrsToList formatRelation section))}
 | 
				
			||||||
 | 
					    '';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    formatRelation = name: relation:
 | 
				
			||||||
 | 
					      if isAttrs relation
 | 
				
			||||||
 | 
					      then ''
 | 
				
			||||||
 | 
					        ${name} = {
 | 
				
			||||||
 | 
					        ${indent (concatStringsSep "\n" (mapAttrsToList formatValue relation))}
 | 
				
			||||||
 | 
					        }''
 | 
				
			||||||
 | 
					      else formatValue name relation;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    formatValue = name: value:
 | 
				
			||||||
 | 
					      if isList value
 | 
				
			||||||
 | 
					      then concatMapStringsSep "\n" (formatAtom name) value
 | 
				
			||||||
 | 
					      else formatAtom name value;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    formatAtom = name: atom: let
 | 
				
			||||||
 | 
					      v = if isBool atom then boolToString atom else toString atom;
 | 
				
			||||||
 | 
					    in "${name} = ${v}";
 | 
				
			||||||
 | 
					  in
 | 
				
			||||||
 | 
					    name: value: pkgs.writeText name ''
 | 
				
			||||||
 | 
					      ${formatToplevel value}
 | 
				
			||||||
 | 
					    '';
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										90
									
								
								hosts/buskerud/bikkje/services/kerberos/krb5.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								hosts/buskerud/bikkje/services/kerberos/krb5.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,90 @@
 | 
				
			|||||||
 | 
					{ config, lib, pkgs, ... }:
 | 
				
			||||||
 | 
					let
 | 
				
			||||||
 | 
					  inherit (lib) mdDoc mkIf mkOption mkPackageOption mkRemovedOptionModule;
 | 
				
			||||||
 | 
					  inherit (lib.types) bool;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  mkRemovedOptionModule' = name: reason: mkRemovedOptionModule ["krb5" name] reason;
 | 
				
			||||||
 | 
					  mkRemovedOptionModuleCfg = name: mkRemovedOptionModule' name ''
 | 
				
			||||||
 | 
					    The option `krb5.${name}' has been removed. Use
 | 
				
			||||||
 | 
					    `security.krb5.settings.${name}' for structured configuration.
 | 
				
			||||||
 | 
					  '';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  cfg = config.security.krb5;
 | 
				
			||||||
 | 
					  format = import ./krb5-conf-format.nix { inherit pkgs lib; } { };
 | 
				
			||||||
 | 
					in {
 | 
				
			||||||
 | 
					  imports = [
 | 
				
			||||||
 | 
					    (mkRemovedOptionModuleCfg "libdefaults")
 | 
				
			||||||
 | 
					    (mkRemovedOptionModuleCfg "realms")
 | 
				
			||||||
 | 
					    (mkRemovedOptionModuleCfg "domain_realm")
 | 
				
			||||||
 | 
					    (mkRemovedOptionModuleCfg "capaths")
 | 
				
			||||||
 | 
					    (mkRemovedOptionModuleCfg "appdefaults")
 | 
				
			||||||
 | 
					    (mkRemovedOptionModuleCfg "plugins")
 | 
				
			||||||
 | 
					    (mkRemovedOptionModuleCfg "config")
 | 
				
			||||||
 | 
					    (mkRemovedOptionModuleCfg "extraConfig")
 | 
				
			||||||
 | 
					    (mkRemovedOptionModule' "kerberos" ''
 | 
				
			||||||
 | 
					      The option `krb5.kerberos' has been moved to `security.krb5.package'.
 | 
				
			||||||
 | 
					    '')
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  options = {
 | 
				
			||||||
 | 
					    security.krb5 = {
 | 
				
			||||||
 | 
					      enable = mkOption {
 | 
				
			||||||
 | 
					        default = false;
 | 
				
			||||||
 | 
					        description = mdDoc "Enable and configure Kerberos utilities";
 | 
				
			||||||
 | 
					        type = bool;
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      package = mkPackageOption pkgs "krb5" {
 | 
				
			||||||
 | 
					        example = "heimdal";
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      settings = mkOption {
 | 
				
			||||||
 | 
					        default = { };
 | 
				
			||||||
 | 
					        type = format.type;
 | 
				
			||||||
 | 
					        description = mdDoc ''
 | 
				
			||||||
 | 
					          Structured contents of the {file}`krb5.conf` file. See
 | 
				
			||||||
 | 
					          {manpage}`krb5.conf(5)` for details about configuration.
 | 
				
			||||||
 | 
					        '';
 | 
				
			||||||
 | 
					        example = {
 | 
				
			||||||
 | 
					          include = [ "/run/secrets/secret-krb5.conf" ];
 | 
				
			||||||
 | 
					          includedir = [ "/run/secrets/secret-krb5.conf.d" ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          libdefaults = {
 | 
				
			||||||
 | 
					            default_realm = "ATHENA.MIT.EDU";
 | 
				
			||||||
 | 
					          };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          realms = {
 | 
				
			||||||
 | 
					            "ATHENA.MIT.EDU" = {
 | 
				
			||||||
 | 
					              admin_server = "athena.mit.edu";
 | 
				
			||||||
 | 
					              kdc = [
 | 
				
			||||||
 | 
					                "athena01.mit.edu"
 | 
				
			||||||
 | 
					                "athena02.mit.edu"
 | 
				
			||||||
 | 
					              ];
 | 
				
			||||||
 | 
					            };
 | 
				
			||||||
 | 
					          };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          domain_realm = {
 | 
				
			||||||
 | 
					            "mit.edu" = "ATHENA.MIT.EDU";
 | 
				
			||||||
 | 
					          };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          logging = {
 | 
				
			||||||
 | 
					            kdc = "SYSLOG:NOTICE";
 | 
				
			||||||
 | 
					            admin_server = "SYSLOG:NOTICE";
 | 
				
			||||||
 | 
					            default = "SYSLOG:NOTICE";
 | 
				
			||||||
 | 
					          };
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  config = mkIf cfg.enable {
 | 
				
			||||||
 | 
					    environment = {
 | 
				
			||||||
 | 
					      systemPackages = [ cfg.package ];
 | 
				
			||||||
 | 
					      etc."krb5.conf".source = format.generate "krb5.conf" cfg.settings;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  meta.maintainers = builtins.attrValues {
 | 
				
			||||||
 | 
					    inherit (lib.maintainers) dblsaiko h7x4;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										1543
									
								
								hosts/buskerud/bikkje/services/kerberos/pam.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1543
									
								
								hosts/buskerud/bikkje/services/kerberos/pam.nix
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -4,6 +4,8 @@
 | 
				
			|||||||
    ./hardware-configuration.nix
 | 
					    ./hardware-configuration.nix
 | 
				
			||||||
    ../../base.nix
 | 
					    ../../base.nix
 | 
				
			||||||
    ../../misc/metrics-exporters.nix
 | 
					    ../../misc/metrics-exporters.nix
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ./bikkje
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # buskerud does not support efi?
 | 
					  # buskerud does not support efi?
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										16
									
								
								misc/motd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								misc/motd
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
							 ███████████  █████   █████ █████   █████
 | 
				
			||||||
 | 
							░░███░░░░░███░░███   ░░███ ░░███   ░░███
 | 
				
			||||||
 | 
							 ░███    ░███ ░███    ░███  ░███    ░███
 | 
				
			||||||
 | 
							 ░██████████  ░███    ░███  ░███    ░███
 | 
				
			||||||
 | 
							 ░███░░░░░░   ░░███   ███   ░░███   ███
 | 
				
			||||||
 | 
							 ░███          ░░░█████░     ░░░█████░
 | 
				
			||||||
 | 
							 █████           ░░███         ░░███
 | 
				
			||||||
 | 
							░░░░░             ░░░           ░░░
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					================= EN ==================|================== NB =================
 | 
				
			||||||
 | 
					Welcome to a PVV machine, life is good.|Velkommen til en PVV-maskin,
 | 
				
			||||||
 | 
					                                       |livet er deilig.
 | 
				
			||||||
 | 
					If you are confused, try pvv.ntnu.no or|Hvis du er forvirret prøv pvv.ntnu.no
 | 
				
			||||||
 | 
					our discord server.                    |eller vår discord-server.
 | 
				
			||||||
 | 
					More info at pvv.ntnu.no/kontakt/      |Mer info på pvv.ntnu.no/kontakt/
 | 
				
			||||||
 | 
					===============================================================================
 | 
				
			||||||
							
								
								
									
										20
									
								
								modules/home-areas.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								modules/home-areas.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
				
			|||||||
 | 
					{ pkgs, lib, ... }:
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  fileSystems = let
 | 
				
			||||||
 | 
					    # See microbel:/etc/exports
 | 
				
			||||||
 | 
					    homeMounts = (lib.listToAttrs (map
 | 
				
			||||||
 | 
					      (l: lib.nameValuePair "/home/pvv/${l}" "homepvv${l}.pvv.ntnu.no:/export/home/pvv/${l}")
 | 
				
			||||||
 | 
					      [ "a" "b" "c" "d"  "h" "i" "j" "k" "l" "m" "z" ]));
 | 
				
			||||||
 | 
					  in { }
 | 
				
			||||||
 | 
					  //
 | 
				
			||||||
 | 
					  (lib.mapAttrs (_: device: {
 | 
				
			||||||
 | 
					    inherit device;
 | 
				
			||||||
 | 
					    fsType = "nfs";
 | 
				
			||||||
 | 
					    options = [
 | 
				
			||||||
 | 
					      "nfsvers=3"
 | 
				
			||||||
 | 
					      "proto=tcp"
 | 
				
			||||||
 | 
					      "nofail"
 | 
				
			||||||
 | 
					      "_netdev"
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					  }) homeMounts);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -56,6 +56,10 @@ in rec {
 | 
				
			|||||||
      ipv4 = pvv-ipv4 204;
 | 
					      ipv4 = pvv-ipv4 204;
 | 
				
			||||||
      ipv6 = pvv-ipv6 "1:4f"; # Wtf øystein og daniel why
 | 
					      ipv6 = pvv-ipv6 "1:4f"; # Wtf øystein og daniel why
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					    bikkje = {
 | 
				
			||||||
 | 
					      ipv4 = pvv-ipv4 216;
 | 
				
			||||||
 | 
					      ipv6 = pvv-ipv6 216;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
    buskerud = {
 | 
					    buskerud = {
 | 
				
			||||||
      ipv4 = pvv-ipv4 231;
 | 
					      ipv4 = pvv-ipv4 231;
 | 
				
			||||||
      ipv6 = pvv-ipv6 231;
 | 
					      ipv6 = pvv-ipv6 231;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user