nix: Make netrc readable by wheel group
This also splits the nix configuration from the default module into its own file.
This commit is contained in:
parent
5d31f32df8
commit
feb82fca2e
|
@ -1,21 +1,5 @@
|
||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
let
|
|
||||||
# Taken from https://nixos.wiki/wiki/Overlays
|
|
||||||
overlaysCompat = pkgs.writeTextFile {
|
|
||||||
name = "overlays-compat";
|
|
||||||
destination = "/overlays.nix";
|
|
||||||
text = ''
|
|
||||||
self: super:
|
|
||||||
with super.lib;
|
|
||||||
let
|
|
||||||
# Load the system config and get the `nixpkgs.overlays` option
|
|
||||||
overlays = (import <nixpkgs/nixos> { }).config.nixpkgs.overlays;
|
|
||||||
in
|
|
||||||
# Apply all overlays to the input of the current "main" overlay
|
|
||||||
foldl' (flip extends) (_: super) overlays self
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
# Options that affect multiple modules
|
# Options that affect multiple modules
|
||||||
options.sbruder = {
|
options.sbruder = {
|
||||||
|
@ -48,6 +32,7 @@ in
|
||||||
./network-manager.nix
|
./network-manager.nix
|
||||||
./nginx-interactive-index
|
./nginx-interactive-index
|
||||||
./nginx.nix
|
./nginx.nix
|
||||||
|
./nix.nix
|
||||||
./office.nix
|
./office.nix
|
||||||
./prometheus/node_exporter.nix
|
./prometheus/node_exporter.nix
|
||||||
./pubkeys.nix
|
./pubkeys.nix
|
||||||
|
@ -105,52 +90,6 @@ in
|
||||||
allowedUDPPortRanges = lib.singleton { from = 9990; to = 9999; };
|
allowedUDPPortRanges = lib.singleton { from = 9990; to = 9999; };
|
||||||
};
|
};
|
||||||
|
|
||||||
sops.secrets.binary-cache-secret-key = { };
|
|
||||||
sops.secrets.nix-netrc = { };
|
|
||||||
|
|
||||||
nix = {
|
|
||||||
nixPath = [
|
|
||||||
"/var/src" # pinned nixpkgs and configuration
|
|
||||||
"nixpkgs=/var/src/nixpkgs" # for nix run
|
|
||||||
"nixpkgs-overlays=${overlaysCompat}"
|
|
||||||
];
|
|
||||||
# Make sudoers trusted nix users
|
|
||||||
trustedUsers = [ "@wheel" ];
|
|
||||||
|
|
||||||
binaryCaches = [
|
|
||||||
"https://nix-cache.sbruder.de/"
|
|
||||||
];
|
|
||||||
binaryCachePublicKeys = [
|
|
||||||
"nix-cache.sbruder.de-1:bU13eF6IMMW2hgO7StgB6JCAoZPeAQ27NAzV0kru1XM="
|
|
||||||
];
|
|
||||||
|
|
||||||
# On-the-fly optimisation of nix store
|
|
||||||
autoOptimiseStore = true;
|
|
||||||
extraOptions = ''
|
|
||||||
# Binary cache upload
|
|
||||||
secret-key-files = ${config.sops.secrets.binary-cache-secret-key.path}
|
|
||||||
netrc-file = ${config.sops.secrets.nix-netrc.path}
|
|
||||||
'' + lib.optionalString config.sbruder.full ''
|
|
||||||
# Keep output of derivations with gc root
|
|
||||||
keep-outputs = true
|
|
||||||
keep-derivations = true
|
|
||||||
'';
|
|
||||||
|
|
||||||
# Make nix build in background less noticeable
|
|
||||||
daemonNiceLevel = 10;
|
|
||||||
daemonIONiceLevel = 5; # 0-7
|
|
||||||
};
|
|
||||||
|
|
||||||
nixpkgs.overlays = [
|
|
||||||
(import ../pkgs)
|
|
||||||
(final: prev: {
|
|
||||||
unstable = import (import ../nix/sources.nix).nixpkgs-unstable {
|
|
||||||
config = config.nixpkgs.config;
|
|
||||||
overlays = config.nixpkgs.overlays;
|
|
||||||
};
|
|
||||||
})
|
|
||||||
];
|
|
||||||
|
|
||||||
# Globally set Let’s Encrypt requirements
|
# Globally set Let’s Encrypt requirements
|
||||||
security.acme = {
|
security.acme = {
|
||||||
acceptTerms = true;
|
acceptTerms = true;
|
||||||
|
|
68
modules/nix.nix
Normal file
68
modules/nix.nix
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
let
|
||||||
|
# Taken from https://nixos.wiki/wiki/Overlays
|
||||||
|
overlaysCompat = pkgs.writeTextFile {
|
||||||
|
name = "overlays-compat";
|
||||||
|
destination = "/overlays.nix";
|
||||||
|
text = ''
|
||||||
|
self: super:
|
||||||
|
with super.lib;
|
||||||
|
let
|
||||||
|
# Load the system config and get the `nixpkgs.overlays` option
|
||||||
|
overlays = (import <nixpkgs/nixos> { }).config.nixpkgs.overlays;
|
||||||
|
in
|
||||||
|
# Apply all overlays to the input of the current "main" overlay
|
||||||
|
foldl' (flip extends) (_: super) overlays self
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
sops.secrets.binary-cache-secret-key = { };
|
||||||
|
sops.secrets.nix-netrc = {
|
||||||
|
group = "wheel";
|
||||||
|
mode = "0440";
|
||||||
|
};
|
||||||
|
|
||||||
|
nix = {
|
||||||
|
nixPath = [
|
||||||
|
"/var/src" # pinned nixpkgs and configuration
|
||||||
|
"nixpkgs=/var/src/nixpkgs" # for nix run
|
||||||
|
"nixpkgs-overlays=${overlaysCompat}"
|
||||||
|
];
|
||||||
|
# Make sudoers trusted nix users
|
||||||
|
trustedUsers = [ "@wheel" ];
|
||||||
|
|
||||||
|
binaryCaches = [
|
||||||
|
"https://nix-cache.sbruder.de/"
|
||||||
|
];
|
||||||
|
binaryCachePublicKeys = [
|
||||||
|
"nix-cache.sbruder.de-1:bU13eF6IMMW2hgO7StgB6JCAoZPeAQ27NAzV0kru1XM="
|
||||||
|
];
|
||||||
|
|
||||||
|
# On-the-fly optimisation of nix store
|
||||||
|
autoOptimiseStore = true;
|
||||||
|
extraOptions = ''
|
||||||
|
# Binary cache upload
|
||||||
|
secret-key-files = ${config.sops.secrets.binary-cache-secret-key.path}
|
||||||
|
netrc-file = ${config.sops.secrets.nix-netrc.path}
|
||||||
|
'' + lib.optionalString config.sbruder.full ''
|
||||||
|
# Keep output of derivations with gc root
|
||||||
|
keep-outputs = true
|
||||||
|
keep-derivations = true
|
||||||
|
'';
|
||||||
|
|
||||||
|
# Make nix build in background less noticeable
|
||||||
|
daemonNiceLevel = 10;
|
||||||
|
daemonIONiceLevel = 5; # 0-7
|
||||||
|
};
|
||||||
|
|
||||||
|
nixpkgs.overlays = [
|
||||||
|
(import ../pkgs)
|
||||||
|
(final: prev: {
|
||||||
|
unstable = import (import ../nix/sources.nix).nixpkgs-unstable {
|
||||||
|
config = config.nixpkgs.config;
|
||||||
|
overlays = config.nixpkgs.overlays;
|
||||||
|
};
|
||||||
|
})
|
||||||
|
];
|
||||||
|
}
|
|
@ -9,6 +9,7 @@
|
||||||
extraGroups = [
|
extraGroups = [
|
||||||
"adbusers"
|
"adbusers"
|
||||||
"dialout"
|
"dialout"
|
||||||
|
"keys"
|
||||||
"libvirtd"
|
"libvirtd"
|
||||||
"lp"
|
"lp"
|
||||||
"networkmanager"
|
"networkmanager"
|
||||||
|
|
Loading…
Reference in a new issue