diff --git a/flake.nix b/flake.nix
new file mode 100644
index 0000000..60a3ffd
--- /dev/null
+++ b/flake.nix
@@ -0,0 +1,58 @@
+{
+  description = "Nyxi Installer flake";
+
+  inputs = {
+    nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-24.11";
+  };
+
+  outputs = { nixpkgs, ... } @ inputs:
+  
+  let
+    system = "x86_64-linux";
+    pkgs = import nixpkgs {
+      inherit system;
+    };
+   in
+   {
+     checks.x86_64-linux.unitTests = (with pkgs; stdenv.mkDerivation {
+       pname = "nyxi-installer";
+       version = "2.0.0";
+       src = builtins.fetchGit {
+         url = "https://gitlab.com/ahoneybun/nyxi-installer.git";
+         ref = "rust-rewrite";
+         rev = "a0c8dafe6186de0c6eebc68d413d08bccd4e2405";
+       };
+
+       buildInputs = with pkgs; [ cargo rustc ];
+
+       buildPhase = ''
+         cargo test
+       '';
+
+     });
+
+     devShells.x86_64-linux.default = pkgs.mkShell {
+       buildInputs = with pkgs; [
+         cargo
+         rustc
+         gnumake
+         clang
+         llvmPackages.libclang
+         llvmPackages.clang
+
+         # System
+         btrfs-progs
+         e2fsprogs
+         openssl
+         pkg-config
+         util-linux
+       ];
+       shellHook = ''
+         export LIBCLANG_PATH="${pkgs.llvmPackages.libclang.lib}/lib"
+         export CLANG_PATH="${pkgs.llvmPackages.clang}/bin/clang"
+         export RUST_BACKTRACE=1
+         echo "Ready to make some Rust!"
+       '';
+     };
+    };
+}