about summary refs log tree commit diff
path: root/nix/machines/vm-shared.nix
diff options
context:
space:
mode:
authorFranck Cuny <franck@fcuny.net>2024-12-08 13:58:02 -0800
committerFranck Cuny <franck@fcuny.net>2024-12-08 15:35:17 -0800
commit52ac07299f2342afe0c309f3b8be3ea05c7549ff (patch)
treebad76e67ba8a1f9301eb87a8c5e66c8a5a260e76 /nix/machines/vm-shared.nix
parentadd targets to create virtual machines (diff)
downloadworld-52ac07299f2342afe0c309f3b8be3ea05c7549ff.tar.gz
refactor overall configuration
The configuration of the various hosts and home-manager was becoming a
bit complex for no valid reasons. Try to simplify this a bit.
Diffstat (limited to 'nix/machines/vm-shared.nix')
-rw-r--r--nix/machines/vm-shared.nix51
1 files changed, 51 insertions, 0 deletions
diff --git a/nix/machines/vm-shared.nix b/nix/machines/vm-shared.nix
new file mode 100644
index 0000000..04eedf0
--- /dev/null
+++ b/nix/machines/vm-shared.nix
@@ -0,0 +1,51 @@
+{ pkgs, ... }: {
+  boot.kernelPackages = pkgs.linuxPackages_latest;
+
+  nix = {
+    package = pkgs.nixVersions.latest;
+    extraOptions = ''
+      experimental-features = nix-command flakes
+      keep-outputs = true
+      keep-derivations = true
+    '';
+  };
+
+  # Use the systemd-boot EFI boot loader.
+  boot.loader.systemd-boot.enable = true;
+  boot.loader.efi.canTouchEfiVariables = true;
+
+  networking.hostName = "dev";
+
+  time.timeZone = "America/Los_Angeles";
+
+  # Don't require password for sudo
+  security.sudo.wheelNeedsPassword = false;
+
+  # Virtualization settings
+  virtualisation.docker.enable = true;
+
+  # Select internationalisation properties.
+  i18n = { defaultLocale = "en_US.UTF-8"; };
+
+  # Define a user account. Don't forget to set a password with ‘passwd’.
+  users.mutableUsers = false;
+
+  # List packages installed in system profile. To search, run:
+  # $ nix search wget
+  environment.systemPackages = with pkgs; [ curl git ];
+
+  # Enable the OpenSSH daemon.
+  services.openssh.enable = true;
+  services.openssh.settings.PasswordAuthentication = true;
+  services.openssh.settings.PermitRootLogin = "no";
+
+  networking.firewall.enable = false;
+
+  # 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. It‘s 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 = "23.11"; # Did you read the comment?
+}