summaryrefslogtreecommitdiff
path: root/systems/odino
diff options
context:
space:
mode:
Diffstat (limited to 'systems/odino')
-rw-r--r--systems/odino/home-manager/default.nix5
-rw-r--r--systems/odino/home-manager/leo/home.nix13
-rw-r--r--systems/odino/home-manager/leo/programs.nix11
-rw-r--r--systems/odino/nixos/boot.nix19
-rw-r--r--systems/odino/nixos/default.nix36
-rw-r--r--systems/odino/nixos/hardware.nix28
-rw-r--r--systems/odino/nixos/locales.nix20
-rw-r--r--systems/odino/nixos/networking.nix31
-rw-r--r--systems/odino/nixos/programs.nix26
-rw-r--r--systems/odino/nixos/services.nix8
10 files changed, 197 insertions, 0 deletions
diff --git a/systems/odino/home-manager/default.nix b/systems/odino/home-manager/default.nix
new file mode 100644
index 0000000..bb6ef28
--- /dev/null
+++ b/systems/odino/home-manager/default.nix
@@ -0,0 +1,5 @@
+{...}: {
+ imports = [
+ ./leo/home.nix
+ ];
+}
diff --git a/systems/odino/home-manager/leo/home.nix b/systems/odino/home-manager/leo/home.nix
new file mode 100644
index 0000000..e0c3d6f
--- /dev/null
+++ b/systems/odino/home-manager/leo/home.nix
@@ -0,0 +1,13 @@
+{...}: {
+ imports = [
+ ./programs.nix
+ ];
+
+ home = {
+ username = "leo";
+ homeDirectory = "/home/leo";
+ };
+
+ # Version
+ home.stateVersion = "25.05";
+}
diff --git a/systems/odino/home-manager/leo/programs.nix b/systems/odino/home-manager/leo/programs.nix
new file mode 100644
index 0000000..eac28b0
--- /dev/null
+++ b/systems/odino/home-manager/leo/programs.nix
@@ -0,0 +1,11 @@
+{...}: {
+ imports = [
+ ../../../../components/programs/zsh.nix
+ ../../../../components/programs/tmux.nix
+ ../../../../components/programs/fastfetch.nix
+ ];
+
+ zsh.enable = true;
+ tmux.enable = true;
+ fastfetch.enable = true;
+}
diff --git a/systems/odino/nixos/boot.nix b/systems/odino/nixos/boot.nix
new file mode 100644
index 0000000..52b2d3e
--- /dev/null
+++ b/systems/odino/nixos/boot.nix
@@ -0,0 +1,19 @@
+{pkgs, ...}: {
+ boot = {
+ kernelPackages = pkgs.linuxPackages_6_18; # NOTE: soltanto versioni LTS per il server
+ kernelModules = [ "kvm-intel" ];
+ kernelParams = [ "boot.shell_on_fail" ];
+
+ initrd = {
+ availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
+ kernelModules = [ ];
+ };
+
+ loader = {
+ systemd-boot.enable = true;
+ efi.canTouchEfiVariables = true;
+ };
+
+ extraModulePackages = [ ];
+ };
+}
diff --git a/systems/odino/nixos/default.nix b/systems/odino/nixos/default.nix
new file mode 100644
index 0000000..e58ea6a
--- /dev/null
+++ b/systems/odino/nixos/default.nix
@@ -0,0 +1,36 @@
+{pkgs, ...}: {
+ imports = [
+ ./hardware.nix
+ ./boot.nix
+ ./networking.nix
+ ./locales.nix
+
+ ./services.nix
+ ./programs.nix
+ ];
+
+ # Experimental features
+ nix.settings.experimental-features = [ "nix-command" "flakes" ];
+
+ # Users
+ users.users.leo = {
+ isNormalUser = true;
+ shell = pkgs.zsh;
+
+ extraGroups = [ "wheel" "networkmanager" ];
+ };
+
+ programs.zsh.enable = true;
+
+ environment.shellAliases = {
+ l = "eza -lh";
+ ll = "eza -lah";
+
+ update-boot = "sudo nixos-rebuild boot --flake ~/nixos#odino";
+ update-system = "sudo nixos-rebuild switch --flake ~/nixos#odino";
+ update-home = "home-manager switch --flake ~/nixos#odino";
+ };
+
+ # Version
+ system.stateVersion = "25.05";
+}
diff --git a/systems/odino/nixos/hardware.nix b/systems/odino/nixos/hardware.nix
new file mode 100644
index 0000000..4bb260c
--- /dev/null
+++ b/systems/odino/nixos/hardware.nix
@@ -0,0 +1,28 @@
+{config, lib, modulesPath, ...}: {
+ imports = [
+ (modulesPath + "/installer/scan/not-detected.nix")
+ ];
+
+ fileSystems."/" = {
+ device = "/dev/disk/by-uuid/31eed536-5936-4814-bb60-73fcc4fabdc5";
+ fsType = "ext4";
+ };
+
+ fileSystems."/boot" = {
+ device = "/dev/disk/by-uuid/1DD7-85F5";
+ fsType = "vfat";
+ options = [ "fmask=0077" "dmask=0077" ];
+ };
+
+ fileSystems."/mnt/media" = {
+ device = "/dev/disk/by-uuid/d441ef68-e6c5-4407-8ab4-f85855c2848a";
+ fsType = "ext4";
+ };
+
+ swapDevices = [
+ { device = "/dev/disk/by-uuid/8478cb29-8a67-4842-b9ed-16a226506cb7"; }
+ ];
+
+ nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
+ hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
+}
diff --git a/systems/odino/nixos/locales.nix b/systems/odino/nixos/locales.nix
new file mode 100644
index 0000000..2d2363d
--- /dev/null
+++ b/systems/odino/nixos/locales.nix
@@ -0,0 +1,20 @@
+{...}: {
+ time.timeZone = "Europe/Rome";
+ console.keyMap = "it";
+
+ i18n = {
+ defaultLocale = "en_US.UTF-8";
+
+ extraLocaleSettings = {
+ LC_ADDRESS = "it_IT.UTF-8";
+ LC_IDENTIFICATION = "it_IT.UTF-8";
+ LC_MEASUREMENT = "it_IT.UTF-8";
+ LC_MONETARY = "it_IT.UTF-8";
+ LC_NAME = "it_IT.UTF-8";
+ LC_NUMERIC = "it_IT.UTF-8";
+ LC_PAPER = "it_IT.UTF-8";
+ LC_TELEPHONE = "it_IT.UTF-8";
+ LC_TIME = "it_IT.UTF-8";
+ };
+ };
+}
diff --git a/systems/odino/nixos/networking.nix b/systems/odino/nixos/networking.nix
new file mode 100644
index 0000000..ca9cf74
--- /dev/null
+++ b/systems/odino/nixos/networking.nix
@@ -0,0 +1,31 @@
+{lib, ...}: {
+ networking = {
+ hostName = "odino";
+ useDHCP = lib.mkDefault true;
+
+ nameservers = [ "208.67.222.222" "208.67.220.220" ];
+
+ networkmanager.enable = true;
+
+ firewall = {
+ enable = true;
+
+ allowedTCPPorts = [ 22 ];
+ allowedUDPPorts = [ 51820 ];
+ };
+
+ wg-quick.interfaces."tunnel" = {
+ privateKeyFile = "/home/leo/.wireguard/private.key";
+ address = [ "10.69.0.2/24" ];
+
+ peers = [
+ {
+ publicKey = "rwUMCdhjQbQt9uGjljfdABj4DSJFgL62bzT13sg8LmU=";
+ allowedIPs = [ "10.69.0.0/24" ];
+ endpoint = "leoflo.me:51820";
+ persistentKeepalive = 25;
+ }
+ ];
+ };
+ };
+}
diff --git a/systems/odino/nixos/programs.nix b/systems/odino/nixos/programs.nix
new file mode 100644
index 0000000..3e890cb
--- /dev/null
+++ b/systems/odino/nixos/programs.nix
@@ -0,0 +1,26 @@
+{inputs, pkgs, ...}: {
+ imports = [
+ ../../../components/programs/git.nix
+
+ inputs.home-manager.nixosModules.home-manager
+ ];
+
+ nixpkgs.config.allowUnfree = true;
+
+ # Packages
+ environment.systemPackages = with pkgs; [
+ ascii file fastfetch eza btop dysk
+ openssh rsync wireguard-tools dig
+ tmux vim
+
+ # Home manager
+ inputs.home-manager.packages.${stdenv.hostPlatform.system}.home-manager
+ ];
+
+ # Docker
+ virtualisation.docker.enable = true;
+ users.extraGroups."docker".members = [ "leo" ];
+
+ # Custom
+ git.enable = true;
+}
diff --git a/systems/odino/nixos/services.nix b/systems/odino/nixos/services.nix
new file mode 100644
index 0000000..36c8515
--- /dev/null
+++ b/systems/odino/nixos/services.nix
@@ -0,0 +1,8 @@
+{...}: {
+ imports = [
+ ../../../components/services/openssh.nix
+ ];
+
+ # Custom
+ openssh.enable = true;
+}