From 36c09a22182ce19ecbfbf11f39958139e3d45e53 Mon Sep 17 00:00:00 2001 From: netali Date: Fri, 8 Sep 2023 17:54:07 +0200 Subject: [PATCH] initial commit --- .gitignore | 1 + flake.lock | 27 ++++++++++++++++++ flake.nix | 15 ++++++++++ iso.nix | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 126 insertions(+) create mode 100644 .gitignore create mode 100644 flake.lock create mode 100644 flake.nix create mode 100644 iso.nix diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b2be92b --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +result diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..7cfeebf --- /dev/null +++ b/flake.lock @@ -0,0 +1,27 @@ +{ + "nodes": { + "nixpkgs": { + "locked": { + "lastModified": 1693985761, + "narHash": "sha256-K5b+7j7Tt3+AqbWkcw+wMeqOAWyCD1MH26FPZyWXpdo=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "0bffda19b8af722f8069d09d8b6a24594c80b352", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..fa3b46c --- /dev/null +++ b/flake.nix @@ -0,0 +1,15 @@ +{ + description = "NixOS ISO of netali"; + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + }; + outputs = { self, nixpkgs }@inputs: { + + iso = (nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = inputs; + modules = [ ./iso.nix ]; + }).config.system.build.isoImage; + + }; +} \ No newline at end of file diff --git a/iso.nix b/iso.nix new file mode 100644 index 0000000..bbb2426 --- /dev/null +++ b/iso.nix @@ -0,0 +1,83 @@ +{ pkgs, lib, config, modulesPath, ... }: + +{ + imports = [ + (modulesPath + "/installer/cd-dvd/installation-cd-base.nix") + ]; + + disabledModules = [ + "profiles/base.nix" + ]; + + networking.hostName = "netalis-nixos-iso"; + isoImage.isoBaseName = "netalis-nixos-iso"; + + boot.supportedFilesystems = + [ "btrfs" "cifs" "f2fs" "jfs" "ntfs" "reiserfs" "vfat" "xfs" ] ++ + lib.optional (lib.meta.availableOn pkgs.stdenv.hostPlatform config.boot.zfs.package) "zfs"; + + # Configure host id for ZFS to work + networking.hostId = lib.mkDefault "8425e349"; + + environment.systemPackages = with pkgs; [ + pkgs.w3m-nographics # needed for the manual anyway + pkgs.testdisk # useful for repairing boot problems + pkgs.ms-sys # for writing Microsoft boot sectors / MBRs + pkgs.efibootmgr + pkgs.efivar + pkgs.parted + pkgs.gptfdisk + pkgs.ddrescue + pkgs.ccrypt + pkgs.cryptsetup # needed for dm-crypt volumes + + # Some text editors. + (pkgs.vim.customize { + name = "vim"; + vimrcConfig.customRC = '' + filetype plugin indent on + set tabstop=4 + set shiftwidth=4 + set expandtab + set modeline + set modelines=1 + set encoding=utf-8 + syntax on + au BufRead,BufNewFile *.nix set ts=2 sw=2 + ''; + }) + + # Some networking tools. + pkgs.fuse + pkgs.fuse3 + pkgs.sshfs-fuse + pkgs.socat + pkgs.screen + pkgs.tcpdump + + # Hardware-related tools. + pkgs.sdparm + pkgs.hdparm + pkgs.smartmontools # for diagnosing hard disks + pkgs.pciutils + pkgs.usbutils + pkgs.nvme-cli + + # Some compression/archiver tools. + pkgs.unzip + pkgs.zip + ]; + + time.timeZone = "Europe/Berlin"; + + i18n.defaultLocale = "en_US.UTF-8"; + console = { + font = "Lat2-Terminus16"; + keyMap = "de-latin1"; + }; + + users.users.root.openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOV4f3/OcNQIHqomvH0nGLDmXDlrO/u7JKE9Fgq2Vuqs me@netali.de" ]; + + networking.dhcpcd.enable = false; + networking.useDHCP = false; +} \ No newline at end of file