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