this repo has no description
30
fork

Configure Feed

Select the types of activity you want to include in your feed.

at master 149 lines 4.5 kB view raw
1{ 2 description = "nix infra for tangled"; 3 4 inputs = { 5 nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11"; 6 tangled.url = "git+https://tangled.org/tangled.org/core?ref=master"; 7 tangled-mirror.url = "git+https://tangled.org/tangled.org/core?ref=master"; 8 colmena.url = "github:zhaofengli/colmena/release-0.4.x"; 9 disko = { 10 url = "github:nix-community/disko"; 11 inputs.nixpkgs.follows = "nixpkgs"; 12 }; 13 nixery-flake = { 14 type = "github"; 15 owner = "tazjin"; 16 repo = "nixery"; 17 flake = false; 18 }; 19 atlogin.url = "git+https://tangled.org/anirudh.fi/atlogin"; 20 }; 21 22 outputs = { nixpkgs, disko, colmena, nixery-flake, tangled, tangled-mirror, atlogin, ... }: 23 let 24 lib = nixpkgs.lib; 25 system = "x86_64-linux"; 26 commonArgs = import ./common/ssh.nix; 27 28 baseModules = [ 29 disko.nixosModules.disko 30 ./common/base.nix 31 ./common/tailscale.nix 32 ]; 33 34 mkHost = hostname: extraModules: 35 lib.nixosSystem { 36 inherit system; 37 specialArgs = { inherit commonArgs; }; 38 modules = baseModules ++ [ ./hosts/${hostname}/configuration.nix ] ++ extraModules; 39 }; 40 41 mkColmenaHost = hostname: targetHost: targetPort: extraModules: { 42 deployment = { 43 inherit targetHost targetPort; 44 targetUser = "tangler"; 45 buildOnTarget = true; 46 }; 47 nixpkgs.system = system; 48 time.timeZone = "Europe/Helsinki"; 49 imports = baseModules ++ [ ./hosts/${hostname}/configuration.nix ] ++ extraModules; 50 }; 51 52 hosts = { 53 appview = { 54 modules = [ 55 tangled.nixosModules.appview 56 ./hosts/appview/services/appview.nix 57 ./hosts/appview/services/nginx.nix 58 ./hosts/appview/services/litestream.nix 59 ]; 60 target = "appview-arn"; 61 port = 2222; 62 }; 63 64 pds = { 65 modules = [ 66 ./hosts/pds/services/nginx.nix 67 ./hosts/pds/services/pds.nix 68 ]; 69 target = "tngl.sh"; 70 }; 71 72 nixery = { 73 modules = [ 74 tangled.nixosModules.spindle 75 ./hosts/nixery/services/nginx.nix 76 ./hosts/nixery/services/openbao/openbao.nix 77 ./hosts/nixery/services/openbao/proxy.nix 78 ./hosts/nixery/services/nixery.nix 79 ]; 80 target = "nixery.tangled.sh"; 81 }; 82 83 spindle = { 84 modules = [ 85 tangled.nixosModules.spindle 86 ./hosts/spindle/services/openbao/openbao.nix 87 ./hosts/spindle/services/openbao/proxy.nix 88 ./hosts/spindle/services/spindle.nix 89 ./hosts/spindle/services/nginx.nix 90 ]; 91 target = "spindle.alpha.tangled.sh"; 92 }; 93 94 spindle-hel = { 95 modules = [ 96 tangled.nixosModules.spindle 97 ./hosts/spindle-hel/services/openbao/openbao.nix 98 ./hosts/spindle-hel/services/openbao/proxy.nix 99 ./hosts/spindle-hel/services/spindle.nix 100 ./hosts/spindle-hel/services/nginx.nix 101 ]; 102 target = "135.181.240.228"; 103 }; 104 105 knot1 = { 106 modules = [ 107 tangled.nixosModules.knot 108 ./hosts/knot1/services/knot.nix 109 ./hosts/knot1/services/nginx.nix 110 ]; 111 target = "85.9.211.103"; 112 }; 113 114 mirror = { 115 modules = [ 116 tangled-mirror.nixosModules.knotmirror 117 atlogin.nixosModules.default 118 ./hosts/mirror/services/knotmirror.nix 119 ./hosts/mirror/services/nginx.nix 120 ./hosts/mirror/services/atlogin.nix 121 ./hosts/mirror/services/prometheus.nix 122 ]; 123 target = "81.27.110.122"; 124 }; 125 }; 126 in 127 { 128 nixosConfigurations = lib.mapAttrs 129 (name: host: mkHost name host.modules) 130 hosts; 131 132 colmenaHive = colmena.lib.makeHive ( 133 { 134 meta = { 135 nixpkgs = nixpkgs.legacyPackages.${system}; 136 specialArgs = { 137 inherit commonArgs; 138 nixery-pkgs = import nixery-flake.outPath { 139 pkgs = import nixpkgs { inherit system; }; 140 }; 141 tangled-pkgs = tangled.packages.x86_64-linux; 142 }; 143 }; 144 } // lib.mapAttrs 145 (name: host: mkColmenaHost name host.target (host.port or 22) host.modules) 146 hosts 147 ); 148 }; 149}