This repository has no description
3.3 kB
89 lines
1{
2 description = "lassulus superconfig";
3
4 inputs = {
5 # nixpkgs.url = "github:lassulus/nixpkgs/jitsi-upgrade";
6 nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
7 # nixpkgs.url = "git+file:/home/lass/src/nixpkgs";
8
9 # nixvim.url = "github:nix-community/nixvim";
10 # nixvim.inputs.nixpkgs.follows = "nixpkgs";
11
12 astro-nvim.url = "github:AstroNvim/AstroNvim";
13 astro-nvim.flake = false;
14
15 clan-core.url = "git+https://git.clan.lol/clan/clan-core";
16 # clan-core.url = "git+file:/home/lass/src/clan/clan-core";
17 clan-core.inputs.nixpkgs.follows = "nixpkgs";
18 clan-core.inputs.flake-parts.follows = "flake-parts";
19 clan-core.inputs.disko.follows = "disko";
20
21 # stockholm.url = "git+https://cgit.lassul.us/stockholm";
22 # stockholm.url = "path:/home/lass/sync/stockholm";
23 stockholm.url = "github:krebs/stockholm";
24 stockholm.inputs.nixpkgs.follows = "nixpkgs";
25
26 disko.url = "github:nix-community/disko";
27 # disko.url = "git+file:/home/lass/src/disko/";
28 disko.inputs.nixpkgs.follows = "nixpkgs";
29
30 nixos-hardware.url = "github:nixos/nixos-hardware";
31
32 nether.url = "github:krebs/nether";
33 nether.inputs.nixpkgs.follows = "nixpkgs";
34 nether.inputs.clan-core.follows = "clan-core";
35
36 # spora.url = "git+file:/home/lass/src/spora";
37 spora.url = "github:krebs/spora";
38 spora.inputs.nixpkgs.follows = "nixpkgs";
39 };
40
41 outputs = inputs@{ self, flake-parts, nixpkgs, clan-core, ... }:
42 let
43 clan = clan-core.lib.buildClan {
44 clanName = "superconfig";
45 directory = self;
46 specialArgs.self = self;
47 machines = nixpkgs.lib.mapAttrs (machineName: _: {
48
49 imports = [
50 ./machines/${machineName}/physical.nix
51 ({ config, pkgs, ... }: {
52 clanCore.machineName = machineName;
53 clanCore.facts.secretStore = "password-store";
54 clanCore.facts.secretUploadDirectory = "/etc/secrets";
55 clanCore.facts.secretDirectory = pkgs.lib.mkForce config.clanCore.facts.secretUploadDirectory;
56 clan.networking.targetHost = "root@${machineName}";
57 krebs.secret.directory = config.clanCore.facts.secretUploadDirectory;
58 nixpkgs.overlays = [
59 self.inputs.stockholm.overlays.default
60 (import (self.inputs.stockholm.inputs.nix-writers + "/pkgs")) # TODO get rid of that overlay
61 ];
62 })
63 ./2configs
64 ./3modules
65 self.inputs.stockholm.nixosModules.krebs
66 ];
67 }) (builtins.readDir ./machines);
68 };
69 in
70 flake-parts.lib.mkFlake { inherit inputs; } {
71 systems = [ "x86_64-linux" "aarch64-linux" "aarch64-darwin" "x86_64-darwin" ];
72 imports = [
73 # ./tools/nvim.nix
74 ./tools/astronvim/flake-module.nix
75 ./tools/zsh.nix
76 ./tools/get-spora-hosts.nix
77 ];
78 flake.nixosConfigurations = clan.nixosConfigurations;
79 flake.clanInternals = clan.clanInternals;
80 perSystem = { config, lib, pkgs, system, ... }: {
81 packages = lib.mapAttrs (name: v_: pkgs.callPackage ./5pkgs/${name} {}) (builtins.readDir ./5pkgs);
82 devShells.default = pkgs.mkShell {
83 packages = [
84 clan-core.packages.${system}.clan-cli
85 ];
86 };
87 };
88 };
89}