Factorise other configuration options (#22)

This commit is contained in:
Nicolas Jeannerod 2024-11-21 12:08:00 +01:00
commit d2638845d0
Signed by untrusted user: Niols
GPG key ID: 35DB9EC8886E1CB8
11 changed files with 36 additions and 183 deletions

View file

@ -1,7 +1,37 @@
{ lib, pkgs, ... }:
let
inherit (lib) mkDefault;
in
{ {
imports = [ imports = [
./hardware.nix ./hardware.nix
./networking.nix ./networking.nix
./users.nix ./users.nix
]; ];
time.timeZone = "Europe/Amsterdam";
i18n.defaultLocale = "en_US.UTF-8";
system.stateVersion = "24.05"; # do not change
nixpkgs.hostPlatform = mkDefault "x86_64-linux";
environment.systemPackages = with pkgs; [
(pkgs.vim_configurable.customize {
name = "vim";
vimrcConfig.packages.myplugins = with pkgs.vimPlugins; {
start = [ vim-nix ]; # load plugin on startup
};
vimrcConfig.customRC = ''
" your custom vimrc
set nocompatible
set backspace=indent,eol,start
" Turn on syntax highlighting by default
syntax on
" ...
'';
})
wget
subversion
];
} }

View file

@ -1,7 +1,7 @@
{ config, lib, ... }: { config, lib, ... }:
let let
inherit (lib) mkOption; inherit (lib) mkOption mkDefault;
in in
{ {
@ -23,6 +23,9 @@ in
hostName = config.procolix.vm.name; hostName = config.procolix.vm.name;
domain = "procolix.com"; domain = "procolix.com";
## REVIEW: Do we actually need that, considering that we have static IPs?
useDHCP = mkDefault true;
interfaces = { interfaces = {
eth0 = { eth0 = {
ipv4 = { ipv4 = {

View file

@ -29,6 +29,8 @@
security.sudo.wheelNeedsPassword = false; security.sudo.wheelNeedsPassword = false;
nix.settings.trusted-users = [ "@wheel" ];
## FIXME: Remove direct root authentication once NixOps4 supports users with ## FIXME: Remove direct root authentication once NixOps4 supports users with
## password-less sudo. ## password-less sudo.
users.root.openssh.authorizedKeys.keys = [ users.root.openssh.authorizedKeys.keys = [

View file

@ -1,5 +1,3 @@
{ pkgs, ... }:
{ {
imports = [ ../common ]; imports = [ ../common ];
@ -9,54 +7,9 @@
ip6 = "2a00:51c0:12:1201::20"; ip6 = "2a00:51c0:12:1201::20";
}; };
# Set your time zone.
time.timeZone = "Europe/Amsterdam";
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
(pkgs.vim_configurable.customize {
name = "vim";
vimrcConfig.packages.myplugins = with pkgs.vimPlugins; {
start = [ vim-nix ]; # load plugin on startup
};
vimrcConfig.customRC = ''
" your custom vimrc
set nocompatible
set backspace=indent,eol,start
" Turn on syntax highlighting by default
syntax on
" ...
'';
})
wget
subversion
];
## vm02116 is running on old hardware based on a Xen VM environment, so it ## vm02116 is running on old hardware based on a Xen VM environment, so it
## needs these extra options. Once the VM gets moved to a newer node, these ## needs these extra options. Once the VM gets moved to a newer node, these
## two options can safely be removed. ## two options can safely be removed.
boot.initrd.availableKernelModules = [ "xen_blkfront" ]; boot.initrd.availableKernelModules = [ "xen_blkfront" ];
services.xe-guest-utilities.enable = true; services.xe-guest-utilities.enable = true;
# This option defines the first version of NixOS you have installed on this particular machine,
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
#
# Most users should NEVER change this value after the initial install, for any reason,
# even if you've upgraded your system to a new NixOS release.
#
# This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
# so changing it will NOT upgrade your system.
#
# This value being lower than the current NixOS release does NOT mean your system is
# out of date, out of support, or vulnerable.
#
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
# and migrated your data accordingly.
#
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
system.stateVersion = "24.05";
} }

View file

@ -1,5 +1,3 @@
{ lib, ... }:
{ {
fileSystems."/" = { fileSystems."/" = {
device = "/dev/disk/by-uuid/3802a66d-e31a-4650-86f3-b51b11918853"; device = "/dev/disk/by-uuid/3802a66d-e31a-4650-86f3-b51b11918853";
@ -10,8 +8,4 @@
device = "/dev/disk/by-uuid/2CE2-1173"; device = "/dev/disk/by-uuid/2CE2-1173";
fsType = "vfat"; fsType = "vfat";
}; };
networking.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
} }

View file

@ -1,5 +1,3 @@
{ pkgs, ... }:
{ {
imports = [ ../common ]; imports = [ ../common ];
@ -8,42 +6,4 @@
ip4 = "185.206.232.179"; ip4 = "185.206.232.179";
ip6 = "2a00:51c0:12:1201::179"; ip6 = "2a00:51c0:12:1201::179";
}; };
# Set your time zone.
time.timeZone = "Europe/Amsterdam";
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
nix = {
settings.trusted-users = [ "@wheel" ];
};
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
(pkgs.vim_configurable.customize {
name = "vim";
vimrcConfig.packages.myplugins = with pkgs.vimPlugins; {
start = [ vim-nix ]; # load plugin on startup
};
vimrcConfig.customRC = ''
" your custom vimrc
set nocompatible
set backspace=indent,eol,start
" Turn on syntax highlighting by default
syntax on
" ...
'';
})
wget
];
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "24.05"; # Did you read the comment?
} }

View file

@ -1,5 +1,3 @@
{ lib, ... }:
{ {
fileSystems."/" = { fileSystems."/" = {
device = "/dev/disk/by-uuid/119863f8-55cf-4e2f-ac17-27599a63f241"; device = "/dev/disk/by-uuid/119863f8-55cf-4e2f-ac17-27599a63f241";
@ -14,8 +12,4 @@
"dmask=0022" "dmask=0022"
]; ];
}; };
networking.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
} }

View file

@ -1,5 +1,3 @@
{ lib, ... }:
{ {
fileSystems."/" = { fileSystems."/" = {
device = "/dev/disk/by-uuid/833ac0f9-ad8c-45ae-a9bf-5844e378c44a"; device = "/dev/disk/by-uuid/833ac0f9-ad8c-45ae-a9bf-5844e378c44a";
@ -14,8 +12,4 @@
"dmask=0022" "dmask=0022"
]; ];
}; };
networking.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
} }

View file

@ -1,5 +1,3 @@
{ pkgs, ... }:
{ {
imports = [ ../common ]; imports = [ ../common ];
@ -8,38 +6,4 @@
ip4 = "185.206.232.186"; ip4 = "185.206.232.186";
ip6 = "2a00:51c0:12:1201::186"; ip6 = "2a00:51c0:12:1201::186";
}; };
# Set your time zone.
time.timeZone = "Europe/Amsterdam";
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
(pkgs.vim_configurable.customize {
name = "vim";
vimrcConfig.packages.myplugins = with pkgs.vimPlugins; {
start = [ vim-nix ]; # load plugin on startup
};
vimrcConfig.customRC = ''
" your custom vimrc
set nocompatible
set backspace=indent,eol,start
" Turn on syntax highlighting by default
syntax on
" ...
'';
})
wget
];
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "24.05"; # Did you read the comment?
} }

View file

@ -70,39 +70,4 @@
}; };
users.users.nginx.extraGroups = [ "acme" ]; users.users.nginx.extraGroups = [ "acme" ];
# Set your time zone.
time.timeZone = "Europe/Amsterdam";
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
(pkgs.vim_configurable.customize {
name = "vim";
vimrcConfig.packages.myplugins = with pkgs.vimPlugins; {
start = [ vim-nix ]; # load plugin on startup
};
vimrcConfig.customRC = ''
" your custom vimrc
set nocompatible
set backspace=indent,eol,start
" Turn on syntax highlighting by default
syntax on
" ...
'';
})
wget
];
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "24.05"; # Did you read the comment?
} }

View file

@ -1,5 +1,3 @@
{ lib, ... }:
{ {
fileSystems."/" = { fileSystems."/" = {
device = "/dev/disk/by-uuid/a46a9c46-e32b-4216-a4aa-8819b2cd0d49"; device = "/dev/disk/by-uuid/a46a9c46-e32b-4216-a4aa-8819b2cd0d49";
@ -14,8 +12,4 @@
"dmask=0022" "dmask=0022"
]; ];
}; };
networking.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
} }