chore: add CLAUDE.md and configure nix dev shell

Add CLAUDE.md with project guidance for Claude Code including
architecture overview, build commands, and testing procedures.

Update flake.nix with proper Go development shell (go, gopls,
gotools, golangci-lint, govulncheck, delve) and buildGoModule
package definition.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-02-07 03:16:20 +01:00
parent 737bb162c9
commit 1460cc533d
3 changed files with 198 additions and 6 deletions

View File

@@ -1,15 +1,49 @@
{
description = "A very basic flake";
description = "Message-based NixOS deployment system using NATS";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
};
outputs = { self, nixpkgs }: {
outputs = { self, nixpkgs }:
let
supportedSystems = [ "x86_64-linux" "aarch64-linux" ];
forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
pkgsFor = system: nixpkgs.legacyPackages.${system};
in
{
packages = forAllSystems (system:
let
pkgs = pkgsFor system;
in
{
homelab-deploy = pkgs.buildGoModule {
pname = "homelab-deploy";
version = "0.1.0";
src = ./.;
vendorHash = null; # Update after adding dependencies
};
default = self.packages.${system}.homelab-deploy;
});
packages.x86_64-linux.hello = nixpkgs.legacyPackages.x86_64-linux.hello;
devShells = forAllSystems (system:
let
pkgs = pkgsFor system;
in
{
default = pkgs.mkShell {
buildInputs = with pkgs; [
go
gopls
gotools
golangci-lint
govulncheck
delve
];
};
});
packages.x86_64-linux.default = self.packages.x86_64-linux.hello;
};
nixosModules.default = import ./nixos/module.nix;
nixosModules.homelab-deploy = self.nixosModules.default;
};
}