setup nixos environment

This commit is contained in:
Jonas Rabenstein 2025-01-21 16:52:47 +01:00
commit 9b016251f2

62
flake.nix Normal file
View file

@ -0,0 +1,62 @@
{
description = "boddle, in Anlehnung an bottle";
outputs = { self, nixpkgs }: let
module = { pkgs, lib, config, ... }: {
options.services.boddle = {
enable = lib.mkEnableOption "enable";
# TODO: configurability
};
config.nixpkgs.overlays = [ self.overlay ];
config.systemd.services.boddle = lib.mkIf config.services.boddle.enable {
script = lib.getExe pkgs.boddle;
};
};
per-system = fn: builtins.mapAttrs (_: fn) nixpkgs.legacyPackages;
package = pkgs: pkgs.buildGoModule {
meta = {
description = "boddle, in Anlehnung an bottle";
homepage = "https://git.fbs42.ddnss.de/forgejo/fbs42/boddle";
name = "boddle";
};
pname = "boddle";
version = "v0.0.1";
vendorHash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
src = pkgs.fetchgit {
url = "https://git.fbs42.ddnss.de/forgejo/fbs42/boddle";
hash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
};
};
devshell = pkgs: pkgs.mkShell {
nativeBuildInputs = with pkgs.buildPackages; [
go
];
};
in {
nixosModules = {
default = self.nixosModules.boddle;
boddle = module;
};
overlay = final: prev: {
boddle = package final;
};
packages = per-system (pkgs: {
default = package pkgs;
boddle = package pkgs;
});
apps = self.packages;
devShells = per-system (pkgs: {
default = devshell pkgs;
});
};
}