Nix Flakes configuration for MacOS, NixOS and WSL
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat: rename machines

cosmeak 47b4b7f0 6a9b14fe

+72 -77
-25
.github/workflows/update.yml
··· 1 - name: Update flake dependencies 2 - 3 - on: 4 - workflow_dispatch: # allows manual triggering 5 - schedule: # Once every month 6 - - cron: "0 0 1 * *" 7 - 8 - jobs: 9 - lockfile: 10 - runs-on: ubuntu-latest 11 - environment: update 12 - steps: 13 - - name: Checkout repository 14 - uses: actions/checkout@v4 15 - - name: Install Nix 16 - uses: cachix/install-nix-action@v31 17 - - name: Update flake.lock 18 - uses: DeterminateSystems/update-flake-lock@v24 19 - id: update 20 - with: 21 - commit-msg: "chore(flake): bump inputs" 22 - pr-title: "chore(flake): bump inputs" 23 - - run: "gh pr merge --auto --rebase --delete-branch ${{ steps.update.outputs.pull-request-number }}" 24 - env: 25 - GH_TOKEN: ${{ github.token }}
+8 -9
README.md
··· 31 31 32 32 ## 💻 - Hosts 33 33 34 - | Hostname | Motherboard | CPU | GPU | RAM | OS | Usage | Status | 35 - | :----------- | :-------------------------------- | :------------------- | :---------------- | :--: | :-: | :------: | :----: | 36 - | `hydrogen` | ASUS ROG STRIX B760-I GAMING WIFI | Intel i5 13600kf | Nvidia 4070ti | 32Go | ❄️ | 🎮️ | 🟢️ | 37 - | `helium` | - | Apple M2 Pro | Apple M2 Pro | 32Go | 🍎️ | ⌨️ | 🟢️ | 38 - | `lithium` | Raspberry Pi3 b+ | - | - | 1Go | ❄️ | 🧨️ | 🟠 | 39 - | `beryllium` | WSL | - | - | 8Go | ❄️ | ⌨️ | 🟢️ | 40 - | `boron` | Aorus B450 Elite | AMD Ryzen 3 3300X | Nvidia 1060 | 16Go | ❄️ | 🎮️ / ⌨️ | 🔴 | 41 - | `carbon` | HP ProDesk 400 G1 DM | Intel Pentium G3250T | - | 8Go | ❄️ | 💾️ | 🔴 | 42 - | `nitrogen` | MSI B450-A Pro Max | AMD Ryzen 5 3600x | Nvidia 1660ti | 16Go | ❄️ | 🎮️ | 🔴 | 34 + | Hostname | Motherboard | CPU | GPU | RAM | OS | Usage | Status | 35 + | :------------- | :-------------------------------- | :------------------- | :---------------- | :--: | :-: | :------: | :----: | 36 + | `loki` | ASUS ROG STRIX B760-I GAMING WIFI | Intel i5 13600kf | Nvidia 4070ti | 32Go | ❄️ | 🎮️ | 🟢️ | 37 + | `njord` | - | Apple M2 Pro | Apple M2 Pro | 32Go | 🍎️ | ⌨️ | 🟢️ | 38 + | `lithium` | Raspberry Pi3 b+ | - | - | 1Go | ❄️ | 🧨️ | 🟠 | 39 + | `vali` | WSL | - | - | 8Go | ❄️ | ⌨️ | 🟢️ | 40 + | `andhrimnir ` | Aorus B450 Elite | AMD Ryzen 3 3300X | Nvidia 1060 | 16Go | ❄️ | 🎮️ / ⌨️ | 🔴 | 41 + | `elli` | HP ProDesk 400 G1 DM | Intel Pentium G3250T | - | 8Go | ❄️ | 💾️ | 🔴 | 43 42 44 43 <details> 45 44 <summary>Legend</summary>
+20 -38
flake.nix
··· 1 1 { 2 + name = "Asgard"; 3 + 2 4 description = '' 3 5 This configuration is the second version of all my systems, reworked from scratch with simplicity in mind. 4 6 ··· 38 40 let 39 41 # Custom modules 40 42 nixosModules = [ 41 - ./modules/nixos/hardware/nvidia 42 - ./modules/nixos/hardware/audio 43 - ./modules/nixos/programs/steam 44 - ./modules/nixos/system/auto-update 45 - ./modules/nixos/system/garbage-collector 43 + ./modules/nixos/hardware/nvidia.nix 44 + ./modules/nixos/hardware/audio.nix 45 + ./modules/nixos/programs/steam.nix 46 + ./modules/nixos/system/auto-update.nix 47 + ./modules/nixos/system/garbage-collector.nix 46 48 ]; 47 49 48 50 darwinModules = [ 49 - ./modules/darwin/system/garbage-collector 51 + ./modules/darwin/system/garbage-collector.nix 50 52 ]; 51 53 52 54 # Methods ··· 55 57 # Nixos Configurations 56 58 nixosConfigurations = { 57 59 # Gaming config (console like) 58 - hydrogen = nixpkgs.lib.nixosSystem { 60 + loki = nixpkgs.lib.nixosSystem { 59 61 system = "x86_64-linux"; 60 62 specialArgs = { 61 63 inherit inputs; 62 - hostname = "hydrogen"; 64 + hostname = "loki"; 63 65 }; 64 66 modules = [ 65 - ./machines/nixos/hydrogen 67 + ./machines/nixos/loki 66 68 inputs.jovian.nixosModules.default 67 69 ] ++ nixosModules; 68 70 }; 69 71 70 72 # Little server for testing things 71 - beryllium = nixpkgs.lib.nixosSystem { 73 + vali = nixpkgs.lib.nixosSystem { 72 74 system = "x86_64-linux"; 73 75 specialArgs = { 74 76 inherit inputs; 75 - hostname = "beryllium"; 77 + hostname = "vali"; 76 78 }; 77 79 modules = [ 78 80 inputs.wsl.nixosModules.default 79 - ./machines/nixos/beryllium 81 + ./machines/nixos/vali 80 82 ] ++ nixosModules; 81 83 }; 82 84 83 85 # Rapsberry Pi 3b+ 84 - lithium = nixpkgs.lib.nixosSystem { 86 + hoenir = nixpkgs.lib.nixosSystem { 85 87 system = "aarch64-linux"; 86 88 specialArgs = { 87 89 inherit inputs; 88 - hostname = "lithium"; 90 + hostname = "hoenir"; 89 91 }; 90 92 modules = [ 91 - ./machines/nixos/lithium 93 + ./machines/nixos/hoenir 92 94 inputs.hardware.nixosModules.raspberry-pi-4 93 95 "${nixpkgs}/nixos/modules/profiles/minimal.nix" 94 96 ] ++ nixosModules; ··· 98 100 # Macos configurations 99 101 darwinConfigurations = { 100 102 # Macbook Pro M2 101 - helium = inputs.darwin.lib.darwinSystem { 103 + njord = inputs.darwin.lib.darwinSystem { 102 104 system = "aarch64-darwin"; 103 105 specialArgs = { 104 106 inherit inputs; 105 - hostname = "helium"; 107 + hostname = "njord"; 106 108 }; 107 - modules = [ ./machines/darwin/helium ] ++ darwinModules; 109 + modules = [ ./machines/darwin/njord ] ++ darwinModules; 108 110 }; 109 111 }; 110 - 111 - # Custom images 112 - # images."beryllium" = (self.nixosConfiguration."beryllium".extendModules { 113 - # modules = [ 114 - # "${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix" 115 - # { 116 - # # We don't need this defaults modules 117 - # disableModules = ["profiles/base.nix"]; 118 - 119 - # # Copy configuration files to system 120 - # environment.etc."nixos".source = ./.; 121 - 122 - # # Patch build images on x86-64 systems 123 - # nixpkgs.config.allowUnsupportedSystem = true; 124 - # nixpkgs.hostPlatform.system = "armv7l-linux"; 125 - # nixpkgs.buildPlatform.system = "x86_64-linux"; 126 - # } 127 - # ]; 128 - # }).config.system.build.sdImage; 129 - # 130 112 131 113 # Development shells 132 114 devShells = forAllSystems(system:
+1
machines/darwin/helium/default.nix machines/darwin/njord/default.nix
··· 30 30 dbeaver-bin 31 31 cyberduck 32 32 utm 33 + sqlmap 33 34 ]; 34 35 35 36 # Linux builder
machines/darwin/helium/homebrew/brews.nix machines/darwin/njord/homebrew/brews.nix
+2 -3
machines/darwin/helium/homebrew/casks.nix machines/darwin/njord/homebrew/casks.nix
··· 4 4 "orbstack" # replace with simple docker desktop 5 5 "figma" 6 6 "obsidian" 7 - "zen-browser" 8 7 "eloston-chromium" # needed a chromium based browser for testing purpose in web development 8 + "librewolf" 9 9 "amethyst" # Window manager 10 10 "sf-symbols" 11 11 "font-hack-nerd-font" # move this to nix installation ··· 13 13 "discord" # use this one since nixpkgs doesn't have krisp 14 14 # "logitech-g-hub" # Error when trying to install it 15 15 "ghostty" 16 - "balenaetcher" 17 - "element" 16 + "burp-suite" 18 17 ]; 19 18 }
+2
machines/darwin/helium/homebrew/default.nix machines/darwin/njord/homebrew/default.nix
··· 12 12 cleanup = "zap"; # uninstall all elements not listed 13 13 }; 14 14 15 + homebrew.caskArgs.no_quarantine = true; 16 + 15 17 # Repository authorized for homebrew 16 18 homebrew.taps = [ 17 19 "homebrew/cask-versions"
machines/darwin/helium/homebrew/masapps.nix machines/darwin/njord/homebrew/masapps.nix
machines/darwin/helium/system/default.nix machines/darwin/njord/system/default.nix
machines/darwin/helium/system/dock.nix machines/darwin/njord/system/dock.nix
machines/darwin/helium/system/finder.nix machines/darwin/njord/system/finder.nix
machines/darwin/helium/system/nsglobaldomain.nix machines/darwin/njord/system/nsglobaldomain.nix
machines/nixos/beryllium/default.nix machines/nixos/vali/default.nix
machines/nixos/boron/default.nix machines/nixos/andhrimnir/default.nix
machines/nixos/carbon/default.nix machines/nixos/elli/default.nix
machines/nixos/hydrogen/default.nix machines/nixos/loki/default.nix
machines/nixos/hydrogen/hardware.nix machines/nixos/loki/hardware.nix
machines/nixos/lithium/default.nix machines/nixos/hoenir/default.nix
+20
modules/common/suites/development.nix
··· 1 + { config, pkgs, lib, ... }: 2 + let 3 + cfg = config.asgard.suite.development; 4 + in 5 + { 6 + options.asgard.suite.development = { 7 + enable = lib.mkEnableOption "Enable the development suite."; 8 + }; 9 + 10 + config = lib.mkIf cfg.enable ({ 11 + environment.systemPackages = with pkgs; [ 12 + vscodium # gui editor - vscode without telemetry 13 + helix # modal editor 14 + bruno # ide for testing apis 15 + dbeaver-bin # database client 16 + git # versionning tool 17 + lazygit # git tui helper 18 + ]; 19 + }); 20 + }
+17
modules/common/suites/pentesting.nix
··· 1 + { config, pkgs, lib, ... }: 2 + let 3 + cfg = config.asgard.suite.pentesting; 4 + in 5 + { 6 + options.asgard.suite.pentesting = { 7 + enable = lib.mkEnableOption "Enable the pentesting suite."; 8 + }; 9 + 10 + config = lib.mkIf cfg.enable ({ 11 + environment.systemPackages = with pkgs; [ 12 + nmap 13 + sqlmap 14 + burpsuite 15 + ]; 16 + }); 17 + }
+2 -2
modules/darwin/system/garbage-collector/default.nix modules/darwin/system/garbage-collector.nix
··· 1 1 { config, pkgs, lib, ... }: 2 2 let 3 - cfg = config.gems.system.garbageCollector; 3 + cfg = config.asgard.system.garbageCollector; 4 4 in 5 5 { 6 - options.gems.system.garbageCollector = { 6 + options.asgard.system.garbageCollector = { 7 7 enable = lib.mkEnableOption "Enable garbage collection."; 8 8 }; 9 9
modules/nixos/hardware/audio/default.nix modules/nixos/hardware/audio.nix
modules/nixos/hardware/nvidia/default.nix modules/nixos/hardware/nvidia.nix
modules/nixos/programs/steam/default.nix modules/nixos/programs/steam.nix
modules/nixos/system/auto-update/default.nix modules/nixos/system/auto-update.nix
modules/nixos/system/garbage-collector/default.nix modules/nixos/system/garbage-collector.nix