Compare commits
10 commits
4faa251a6e
...
7f3441fc76
Author | SHA1 | Date | |
---|---|---|---|
7f3441fc76 | |||
cb0a071ee6 | |||
8e7cd06fc4 | |||
40573a4477 | |||
231a662dc8 | |||
3cd9a3e4e9 | |||
![]() |
095ff99b18 | ||
44d42ea5d1 | |||
![]() |
2ed9253820 | ||
![]() |
aca6ba18dc |
15 changed files with 296 additions and 65 deletions
170
flake.lock
generated
170
flake.lock
generated
|
@ -36,11 +36,11 @@
|
||||||
"nixpkgs": "nixpkgs_4"
|
"nixpkgs": "nixpkgs_4"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1706092909,
|
"lastModified": 1706523465,
|
||||||
"narHash": "sha256-VYb4NbVZKQDnW8TTD2ivJAaF9nyXv5bElJi9+oBt4xw=",
|
"narHash": "sha256-AKlrSRyoMLRUlN2fGWSWWr1nj46JUgjWDPAG/CdPZhQ=",
|
||||||
"owner": "aciceri",
|
"owner": "aciceri",
|
||||||
"repo": "emacs",
|
"repo": "emacs",
|
||||||
"rev": "588f7b1696d3b7da77a5ea94e921def43529cb70",
|
"rev": "9ad27b6ea82ebaa3dfd635ccc0ce618d9a5ec006",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -78,11 +78,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1706145859,
|
"lastModified": 1706491084,
|
||||||
"narHash": "sha256-+iGHKwzKVW6aGAWfUmUSJW1KiE6WLYhKyTyWZMTw/cg=",
|
"narHash": "sha256-eaEv+orTmr2arXpoE4aFZQMVPOYXCBEbLgK22kOtkhs=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "disko",
|
"repo": "disko",
|
||||||
"rev": "5a2dc95464080764b9ca1b82b5d6d981157522be",
|
"rev": "f67ba6552845ea5d7f596a24d57c33a8a9dc8de9",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -118,11 +118,11 @@
|
||||||
"nixpkgs-stable": "nixpkgs-stable"
|
"nixpkgs-stable": "nixpkgs-stable"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1706086435,
|
"lastModified": 1706519192,
|
||||||
"narHash": "sha256-e+BqXkquFW7LtC+LCbVrVWTXXr/dCEfNAN9wmdyVJ8k=",
|
"narHash": "sha256-xnlbEJxtRR6hjmRJopRe2TBAWIvEB/S/w1V6613u9Nk=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "emacs-overlay",
|
"repo": "emacs-overlay",
|
||||||
"rev": "46d30fdef02008e5f1856d4039a0b48d20a3bca6",
|
"rev": "380a2b909774bc47385dfa9556f28f243ea87c71",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -199,11 +199,11 @@
|
||||||
"extra-package-indent-bars": {
|
"extra-package-indent-bars": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1704855682,
|
"lastModified": 1706410940,
|
||||||
"narHash": "sha256-ie7yF8rlnuJ0j6caKvxwdYH6++1Yik6UnedOg3uHKiM=",
|
"narHash": "sha256-8qi7RVjQvOJnt1ziBVPK7vQhlx93nRkomu8rEcW3Pp0=",
|
||||||
"owner": "jdtsmith",
|
"owner": "jdtsmith",
|
||||||
"repo": "indent-bars",
|
"repo": "indent-bars",
|
||||||
"rev": "8a4ea0ab83016f87acb94ebf3816a02382b82cad",
|
"rev": "269774df6d5030832d04c5cf067d7a3a2568a46f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -317,6 +317,27 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-parts_3": {
|
"flake-parts_3": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": [
|
||||||
|
"hercules-ci-agent",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1704982712,
|
||||||
|
"narHash": "sha256-2Ptt+9h8dczgle2Oo6z5ni5rt/uLMG47UFTR1ry/wgg=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "07f6395285469419cf9d078f59b5b49993198c00",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-parts_4": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": [
|
"nixpkgs-lib": [
|
||||||
"hercules-ci-effects",
|
"hercules-ci-effects",
|
||||||
|
@ -336,7 +357,7 @@
|
||||||
"type": "indirect"
|
"type": "indirect"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-parts_4": {
|
"flake-parts_5": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": "nixpkgs-lib_3"
|
"nixpkgs-lib": "nixpkgs-lib_3"
|
||||||
},
|
},
|
||||||
|
@ -395,11 +416,11 @@
|
||||||
"nixpkgs-lib": "nixpkgs-lib_2"
|
"nixpkgs-lib": "nixpkgs-lib_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1704982712,
|
"lastModified": 1706569497,
|
||||||
"narHash": "sha256-2Ptt+9h8dczgle2Oo6z5ni5rt/uLMG47UFTR1ry/wgg=",
|
"narHash": "sha256-oixb0IDb5eZYw6BaVr/R/1pSoMh4rfJHkVnlgeRIeZs=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "07f6395285469419cf9d078f59b5b49993198c00",
|
"rev": "60c614008eed1d0383d21daac177a3e036192ed8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -429,6 +450,42 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"haskell-flake": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1684780604,
|
||||||
|
"narHash": "sha256-2uMZsewmRn7rRtAnnQNw1lj0uZBMh4m6Cs/7dV5YF08=",
|
||||||
|
"owner": "srid",
|
||||||
|
"repo": "haskell-flake",
|
||||||
|
"rev": "74210fa80a49f1b6f67223debdbf1494596ff9f2",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "srid",
|
||||||
|
"ref": "0.3.0",
|
||||||
|
"repo": "haskell-flake",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"hercules-ci-agent": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-parts": "flake-parts_3",
|
||||||
|
"haskell-flake": "haskell-flake",
|
||||||
|
"nixpkgs": "nixpkgs_6"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1706307588,
|
||||||
|
"narHash": "sha256-t46dB7XCBwj2FOwhFWyMOfriGny1bEOgak24fylo5j4=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "hercules-ci-agent",
|
||||||
|
"rev": "f01ae96b022bb12d35d7223548a0b05623a55ddf",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "hercules-ci-agent",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"hercules-ci-effects": {
|
"hercules-ci-effects": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts_2",
|
"flake-parts": "flake-parts_2",
|
||||||
|
@ -450,8 +507,8 @@
|
||||||
},
|
},
|
||||||
"hercules-ci-effects_2": {
|
"hercules-ci-effects_2": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts_3",
|
"flake-parts": "flake-parts_4",
|
||||||
"nixpkgs": "nixpkgs_6"
|
"nixpkgs": "nixpkgs_7"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1704029560,
|
"lastModified": 1704029560,
|
||||||
|
@ -495,11 +552,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1706134977,
|
"lastModified": 1706473109,
|
||||||
"narHash": "sha256-KwNb1Li3K6vuVwZ77tFjZ89AWBo7AiCs9t0Cens4BsM=",
|
"narHash": "sha256-iyuAvpKTsq2u23Cr07RcV5XlfKExrG8gRpF75hf1uVc=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "6359d40f6ec0b72a38e02b333f343c3d4929ec10",
|
"rev": "d634c3abafa454551f2083b054cd95c3f287be61",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -670,11 +727,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-stable": {
|
"nixpkgs-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1705916986,
|
"lastModified": 1706373441,
|
||||||
"narHash": "sha256-iBpfltu6QvN4xMpen6jGGEb6jOqmmVQKUrXdOJ32u8w=",
|
"narHash": "sha256-S1hbgNbVYhuY2L05OANWqmRzj4cElcbLuIkXTb69xkk=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "d7f206b723e42edb09d9d753020a84b3061a79d8",
|
"rev": "56911ef3403a9318b7621ce745f5452fb9ef6867",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -686,11 +743,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgsStable": {
|
"nixpkgsStable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1706098335,
|
"lastModified": 1706515015,
|
||||||
"narHash": "sha256-r3dWjT8P9/Ah5m5ul4WqIWD8muj5F+/gbCdjiNVBKmU=",
|
"narHash": "sha256-eFfY5A7wlYy3jD/75lx6IJRueg4noE+jowl0a8lIlVo=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "a77ab169a83a4175169d78684ddd2e54486ac651",
|
"rev": "f4a8d6d5324c327dcc2d863eb7f3cc06ad630df4",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -702,11 +759,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgsUnstable": {
|
"nixpkgsUnstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1705856552,
|
"lastModified": 1706371002,
|
||||||
"narHash": "sha256-JXfnuEf5Yd6bhMs/uvM67/joxYKoysyE3M2k6T3eWbg=",
|
"narHash": "sha256-dwuorKimqSYgyu8Cw6ncKhyQjUDOyuXoxDTVmAXq88s=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "612f97239e2cc474c13c9dafa0df378058c5ad8d",
|
"rev": "c002c6aa977ad22c60398daaa9be52f2203d0006",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -718,11 +775,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1705856552,
|
"lastModified": 1706191920,
|
||||||
"narHash": "sha256-JXfnuEf5Yd6bhMs/uvM67/joxYKoysyE3M2k6T3eWbg=",
|
"narHash": "sha256-eLihrZAPZX0R6RyM5fYAWeKVNuQPYjAkCUBr+JNvtdE=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "612f97239e2cc474c13c9dafa0df378058c5ad8d",
|
"rev": "ae5c332cbb5827f6b1f02572496b141021de335f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -750,11 +807,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_4": {
|
"nixpkgs_4": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1705856552,
|
"lastModified": 1706191920,
|
||||||
"narHash": "sha256-JXfnuEf5Yd6bhMs/uvM67/joxYKoysyE3M2k6T3eWbg=",
|
"narHash": "sha256-eLihrZAPZX0R6RyM5fYAWeKVNuQPYjAkCUBr+JNvtdE=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "612f97239e2cc474c13c9dafa0df378058c5ad8d",
|
"rev": "ae5c332cbb5827f6b1f02572496b141021de335f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -781,6 +838,22 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_6": {
|
"nixpkgs_6": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1705856552,
|
||||||
|
"narHash": "sha256-JXfnuEf5Yd6bhMs/uvM67/joxYKoysyE3M2k6T3eWbg=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "612f97239e2cc474c13c9dafa0df378058c5ad8d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_7": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1703637592,
|
"lastModified": 1703637592,
|
||||||
"narHash": "sha256-8MXjxU0RfFfzl57Zy3OfXCITS0qWDNLzlBAdwxGZwfY=",
|
"narHash": "sha256-8MXjxU0RfFfzl57Zy3OfXCITS0qWDNLzlBAdwxGZwfY=",
|
||||||
|
@ -796,7 +869,7 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_7": {
|
"nixpkgs_8": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1678470307,
|
"lastModified": 1678470307,
|
||||||
"narHash": "sha256-OEeMUr3ueLIXyW/OaFUX5jUdimyQwMg/7e+/Q0gC/QE=",
|
"narHash": "sha256-OEeMUr3ueLIXyW/OaFUX5jUdimyQwMg/7e+/Q0gC/QE=",
|
||||||
|
@ -814,11 +887,11 @@
|
||||||
},
|
},
|
||||||
"nur": {
|
"nur": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1706174248,
|
"lastModified": 1706643926,
|
||||||
"narHash": "sha256-VNN7md+kJhBvl5bINEXybSG4jHavrQIlXdywpcaEEwc=",
|
"narHash": "sha256-GOBRsUCZ3a9GgaLvbm2wpmsnZGY41IvEp9C3rQLXaTI=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "NUR",
|
"repo": "NUR",
|
||||||
"rev": "20f64c7125413fc19372f11b45db99363bea7c1f",
|
"rev": "68b210c7240de86b3639cf9542df9dcb9c504914",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -856,11 +929,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1705757126,
|
"lastModified": 1706424699,
|
||||||
"narHash": "sha256-Eksr+n4Q8EYZKAN0Scef5JK4H6FcHc+TKNHb95CWm+c=",
|
"narHash": "sha256-Q3RBuOpZNH2eFA1e+IHgZLAOqDD9SKhJ/sszrL8bQD4=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "pre-commit-hooks.nix",
|
"repo": "pre-commit-hooks.nix",
|
||||||
"rev": "f56597d53fd174f796b5a7d3ee0b494f9e2285cc",
|
"rev": "7c54e08a689b53c8a1e5d70169f2ec9e2a68ffaf",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -911,9 +984,9 @@
|
||||||
"rock5b": {
|
"rock5b": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"fan-control": "fan-control",
|
"fan-control": "fan-control",
|
||||||
"flake-parts": "flake-parts_4",
|
"flake-parts": "flake-parts_5",
|
||||||
"kernel-src": "kernel-src",
|
"kernel-src": "kernel-src",
|
||||||
"nixpkgs": "nixpkgs_7",
|
"nixpkgs": "nixpkgs_8",
|
||||||
"nixpkgs-kernel": "nixpkgs-kernel",
|
"nixpkgs-kernel": "nixpkgs-kernel",
|
||||||
"panfork": "panfork",
|
"panfork": "panfork",
|
||||||
"tow-boot": "tow-boot",
|
"tow-boot": "tow-boot",
|
||||||
|
@ -940,6 +1013,7 @@
|
||||||
"disko": "disko",
|
"disko": "disko",
|
||||||
"dream2nix": "dream2nix",
|
"dream2nix": "dream2nix",
|
||||||
"flakeParts": "flakeParts",
|
"flakeParts": "flakeParts",
|
||||||
|
"hercules-ci-agent": "hercules-ci-agent",
|
||||||
"hercules-ci-effects": "hercules-ci-effects_2",
|
"hercules-ci-effects": "hercules-ci-effects_2",
|
||||||
"homeManager": "homeManager",
|
"homeManager": "homeManager",
|
||||||
"homeManagerGitWorkspace": "homeManagerGitWorkspace",
|
"homeManagerGitWorkspace": "homeManagerGitWorkspace",
|
||||||
|
@ -1065,11 +1139,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1706111218,
|
"lastModified": 1706462057,
|
||||||
"narHash": "sha256-ueC4DvzFzN9Ft3kLSv8g6uuT3Ghz+jZ7UlGQFPZxBrg=",
|
"narHash": "sha256-7dG1D4iqqt0bEbBqUWk6lZiSqqwwAO0Hd1L5opVyhNM=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "treefmt-nix",
|
"repo": "treefmt-nix",
|
||||||
"rev": "23f601bfdef75e21fe8854e24a043bb642201794",
|
"rev": "c6153c2a3ff4c38d231e3ae99af29b87f1df5901",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
@ -43,6 +43,7 @@
|
||||||
};
|
};
|
||||||
hercules-ci-effects.url = "github:hercules-ci/hercules-ci-effects";
|
hercules-ci-effects.url = "github:hercules-ci/hercules-ci-effects";
|
||||||
dream2nix.url = "github:nix-community/dream2nix";
|
dream2nix.url = "github:nix-community/dream2nix";
|
||||||
|
hercules-ci-agent.url = "github:hercules-ci/hercules-ci-agent";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = inputs @ {flakeParts, ...}:
|
outputs = inputs @ {flakeParts, ...}:
|
||||||
|
|
|
@ -99,6 +99,7 @@
|
||||||
};
|
};
|
||||||
extraModules = [
|
extraModules = [
|
||||||
inputs.disko.nixosModules.disko
|
inputs.disko.nixosModules.disko
|
||||||
|
# inputs.hercules-ci-agent.nixosModules.agent-service
|
||||||
];
|
];
|
||||||
extraHmModules = [
|
extraHmModules = [
|
||||||
inputs.ccrEmacs.hmModules.default
|
inputs.ccrEmacs.hmModules.default
|
||||||
|
@ -127,6 +128,7 @@
|
||||||
};
|
};
|
||||||
extraModules = with inputs; [
|
extraModules = with inputs; [
|
||||||
disko.nixosModules.disko
|
disko.nixosModules.disko
|
||||||
|
# inputs.hercules-ci-agent.nixosModules.agent-service;
|
||||||
# rock5b.nixosModules.default
|
# rock5b.nixosModules.default
|
||||||
];
|
];
|
||||||
secrets = {
|
secrets = {
|
||||||
|
@ -140,6 +142,8 @@
|
||||||
"restic-hetzner-password" = {};
|
"restic-hetzner-password" = {};
|
||||||
"minio-credentials".owner = "minio";
|
"minio-credentials".owner = "minio";
|
||||||
"aws-credentials".owner = "hercules-ci-agent";
|
"aws-credentials".owner = "hercules-ci-agent";
|
||||||
|
"hass-ssh-key".owner = "hass";
|
||||||
|
"matrix-registration-shared-secret".owner = "matrix-synapse";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
fleetModules,
|
fleetModules,
|
||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
imports =
|
imports =
|
||||||
|
@ -32,6 +33,7 @@
|
||||||
"binfmt"
|
"binfmt"
|
||||||
"greetd"
|
"greetd"
|
||||||
"syncthing"
|
"syncthing"
|
||||||
|
"hass-poweroff"
|
||||||
]
|
]
|
||||||
++ [
|
++ [
|
||||||
./disko.nix
|
./disko.nix
|
||||||
|
@ -106,6 +108,6 @@
|
||||||
# TODO move away from here (how can the interface name be retrieved programmatically?)
|
# TODO move away from here (how can the interface name be retrieved programmatically?)
|
||||||
networking.interfaces.enp11s0.wakeOnLan = {
|
networking.interfaces.enp11s0.wakeOnLan = {
|
||||||
enable = true;
|
enable = true;
|
||||||
policy = ["broadcast" "magic"];
|
policy = ["magic"];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
"restic"
|
"restic"
|
||||||
"syncthing"
|
"syncthing"
|
||||||
"minio"
|
"minio"
|
||||||
|
"matrix"
|
||||||
]
|
]
|
||||||
++ [
|
++ [
|
||||||
./disko.nix
|
./disko.nix
|
||||||
|
|
|
@ -2,15 +2,17 @@
|
||||||
services.cloudflare-dyndns = {
|
services.cloudflare-dyndns = {
|
||||||
enable = true;
|
enable = true;
|
||||||
ipv4 = true;
|
ipv4 = true;
|
||||||
ipv6 = true;
|
ipv6 = false; # not anymore 😭
|
||||||
domains = [
|
domains = [
|
||||||
# "sevenofnix.aciceri.dev"
|
"aciceri.dev"
|
||||||
|
"git.aciceri.dev"
|
||||||
"home.aciceri.dev"
|
"home.aciceri.dev"
|
||||||
"torrent.aciceri.dev"
|
"torrent.aciceri.dev"
|
||||||
"search.aciceri.dev"
|
"search.aciceri.dev"
|
||||||
"invidious.aciceri.dev"
|
"invidious.aciceri.dev"
|
||||||
"vpn.aciceri.dev"
|
"vpn.aciceri.dev"
|
||||||
"cache.aciceri.dev"
|
"cache.aciceri.dev"
|
||||||
|
"matrix.aciceri.dev"
|
||||||
];
|
];
|
||||||
apiTokenFile = config.age.secrets.cloudflare-dyndns-api-token.path;
|
apiTokenFile = config.age.secrets.cloudflare-dyndns-api-token.path;
|
||||||
};
|
};
|
||||||
|
|
16
modules/hass-poweroff/default.nix
Normal file
16
modules/hass-poweroff/default.nix
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
{pkgs, ...}: {
|
||||||
|
# Creates an user that home assistant can log in as to power off the system
|
||||||
|
users.users.hass = {
|
||||||
|
openssh.authorizedKeys.keys = ["ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFcoVVrMFili8UBjziIu2wyFgcDGTlT1avBh2nLTa9aM"];
|
||||||
|
isNormalUser = true;
|
||||||
|
isSystemUser = false;
|
||||||
|
group = "hass";
|
||||||
|
createHome = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
users.groups.hass = {};
|
||||||
|
|
||||||
|
security.sudo.extraConfig = ''
|
||||||
|
hass ALL=NOPASSWD:${pkgs.systemd}/bin/systemctl
|
||||||
|
'';
|
||||||
|
}
|
|
@ -21,12 +21,6 @@
|
||||||
rev = "9a40a2fa09b0f74aee0b278e2858f5600b3487a9";
|
rev = "9a40a2fa09b0f74aee0b278e2858f5600b3487a9";
|
||||||
hash = "sha256-i+82EUamV1Fhwhb1vhRqn9aA9dJ0FxSSMD734domyhw=";
|
hash = "sha256-i+82EUamV1Fhwhb1vhRqn9aA9dJ0FxSSMD734domyhw=";
|
||||||
};
|
};
|
||||||
localtuya = pkgs.fetchFromGitHub {
|
|
||||||
owner = "rospogrigio";
|
|
||||||
repo = "localtuya";
|
|
||||||
rev = "f06e4848e67997edfa696aa9a89372fb17077bd0";
|
|
||||||
hash = "sha256-hA/1FxH0wfM0jz9VqGCT95rXlrWjxV5oIkSiBf0G0ac=";
|
|
||||||
};
|
|
||||||
in {
|
in {
|
||||||
services.home-assistant = {
|
services.home-assistant = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -58,6 +52,7 @@ in {
|
||||||
"webostv"
|
"webostv"
|
||||||
"media_player"
|
"media_player"
|
||||||
"wyoming"
|
"wyoming"
|
||||||
|
"wake_on_lan"
|
||||||
];
|
];
|
||||||
extraPackages = python3Packages:
|
extraPackages = python3Packages:
|
||||||
with python3Packages; [
|
with python3Packages; [
|
||||||
|
@ -99,6 +94,18 @@ in {
|
||||||
# data.mac = "20:28:bc:74:14:c2";
|
# data.mac = "20:28:bc:74:14:c2";
|
||||||
# };
|
# };
|
||||||
# }];
|
# }];
|
||||||
|
wake_on_lan = {};
|
||||||
|
switch = [
|
||||||
|
{
|
||||||
|
name = "Picard";
|
||||||
|
platform = "wake_on_lan";
|
||||||
|
mac = "74:56:3c:37:17:bd"; # this shouldn't be public
|
||||||
|
host = "picard.fleet";
|
||||||
|
turn_off.service = "shell_command.turn_off_picard";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
shell_command.turn_off_picard = ''${pkgs.openssh}/bin/ssh -i /var/lib/hass/.ssh/id_ed25519 -o StrictHostKeyChecking=no hass@picard.fleet "exec sudo \$(readlink \$(which systemctl)) poweroff"'';
|
||||||
|
# shell_command.turn_off_picard = ''whoami'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -114,10 +121,12 @@ in {
|
||||||
systemd.tmpfiles.rules = [
|
systemd.tmpfiles.rules = [
|
||||||
"d ${config.services.home-assistant.configDir}/custom_components 770 hass hass"
|
"d ${config.services.home-assistant.configDir}/custom_components 770 hass hass"
|
||||||
"L+ ${config.services.home-assistant.configDir}/custom_components/pun_sensor - - - - ${pun_sensor}/custom_components/pun_sensor"
|
"L+ ${config.services.home-assistant.configDir}/custom_components/pun_sensor - - - - ${pun_sensor}/custom_components/pun_sensor"
|
||||||
"L+ ${config.services.home-assistant.configDir}/custom_components/cozy_life - - - - ${cozy_life}/custom_components/cozylife"
|
|
||||||
"L+ ${config.services.home-assistant.configDir}/custom_components/localtuya - - - - ${localtuya}/custom_components/localtuya"
|
"d ${config.services.home-assistant.configDir}/.ssh 770 hass hass"
|
||||||
|
"C ${config.services.home-assistant.configDir}/.ssh/id_ed25519 700 hass hass - ${config.age.secrets.hass-ssh-key.path}"
|
||||||
|
|
||||||
"d ${config.services.home-assistant.configDir}/www 770 hass hass"
|
"d ${config.services.home-assistant.configDir}/www 770 hass hass"
|
||||||
"C ${config.services.home-assistant.configDir}/www/home.png - - - - ${config.age.secrets.home-planimetry.path}"
|
"C ${config.services.home-assistant.configDir}/www/home.png 770 hass hass - - ${config.age.secrets.home-planimetry.path}"
|
||||||
];
|
];
|
||||||
|
|
||||||
networking.firewall.interfaces."wg0" = {
|
networking.firewall.interfaces."wg0" = {
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 550 KiB |
77
modules/matrix/default.nix
Normal file
77
modules/matrix/default.nix
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
clientConfig."m.homeserver".base_url = "https://matrix.aciceri.dev";
|
||||||
|
serverConfig."m.server" = "matrix.aciceri.dev:443";
|
||||||
|
mkWellKnown = data: ''
|
||||||
|
default_type application/json;
|
||||||
|
add_header Access-Control-Allow-Origin *;
|
||||||
|
return 200 '${builtins.toJSON data}';
|
||||||
|
'';
|
||||||
|
in {
|
||||||
|
imports = [../nginx-base];
|
||||||
|
|
||||||
|
services.nginx.virtualHosts = {
|
||||||
|
"aciceri.dev" = {
|
||||||
|
enableACME = true;
|
||||||
|
forceSSL = true;
|
||||||
|
locations."= /.well-known/matrix/server".extraConfig = mkWellKnown serverConfig;
|
||||||
|
locations."= /.well-known/matrix/client".extraConfig = mkWellKnown clientConfig;
|
||||||
|
};
|
||||||
|
"matrix.aciceri.dev" = {
|
||||||
|
forceSSL = true;
|
||||||
|
enableACME = true;
|
||||||
|
locations."/".proxyPass = "http://127.0.0.1:${builtins.toString (lib.head config.services.matrix-synapse.settings.listeners).port}";
|
||||||
|
locations."/_matrix".proxyPass = "http://localhost:8008";
|
||||||
|
locations."/_synapse/client".proxyPass = "http://localhost:8008";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.postgresql = {
|
||||||
|
enable = true;
|
||||||
|
initialScript = pkgs.writeText "synapse-init.sql" ''
|
||||||
|
CREATE ROLE "matrix-synapse" WITH LOGIN PASSWORD 'synapse';
|
||||||
|
CREATE DATABASE "matrix-synapse" WITH OWNER "matrix-synapse"
|
||||||
|
TEMPLATE template0
|
||||||
|
LC_COLLATE = "C"
|
||||||
|
LC_CTYPE = "C";
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
services.matrix-synapse = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
server_name = "aciceri.dev";
|
||||||
|
public_baseurl = "https://matrix.aciceri.dev";
|
||||||
|
listeners = [
|
||||||
|
{
|
||||||
|
port = 8008;
|
||||||
|
bind_addresses = ["127.0.0.1"];
|
||||||
|
type = "http";
|
||||||
|
tls = false;
|
||||||
|
x_forwarded = true;
|
||||||
|
resources = [
|
||||||
|
{
|
||||||
|
names = ["client" "federation"];
|
||||||
|
compress = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
extraConfigFiles = [config.age.secrets.matrix-registration-shared-secret.path];
|
||||||
|
};
|
||||||
|
|
||||||
|
backup.paths = [
|
||||||
|
"/var/lib/matrix-synapse"
|
||||||
|
"/var/backup/postgresql/matrix-synapse.sql.gz"
|
||||||
|
];
|
||||||
|
|
||||||
|
services.postgresqlBackup = {
|
||||||
|
enable = true;
|
||||||
|
databases = ["matrix-synapse"];
|
||||||
|
};
|
||||||
|
}
|
|
@ -16,7 +16,7 @@
|
||||||
];
|
];
|
||||||
netrc-file = "/etc/nix/netrc";
|
netrc-file = "/etc/nix/netrc";
|
||||||
substituters = [
|
substituters = [
|
||||||
"https://cache.aciceri.dev"
|
"s3://cache?profile=default®ion=eu-south-1&scheme=https&endpoint=cache.aciceri.dev"
|
||||||
];
|
];
|
||||||
trusted-public-keys = [
|
trusted-public-keys = [
|
||||||
"cache.aciceri.dev~1:nJMfcBnYieY2WMbYDG0s9S5qUhU+V4RPL+X9zcxXxZY="
|
"cache.aciceri.dev~1:nJMfcBnYieY2WMbYDG0s9S5qUhU+V4RPL+X9zcxXxZY="
|
||||||
|
|
|
@ -1,24 +1,38 @@
|
||||||
{config, ...}: {
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
# For unlocking the disk connect using ssh and type
|
# For unlocking the disk connect using ssh and type
|
||||||
# systemctl start initrd-nixos-activation
|
# systemctl start initrd-nixos-activation
|
||||||
boot.initrd = {
|
boot.initrd = {
|
||||||
network = {
|
network = {
|
||||||
enable = true;
|
|
||||||
ssh = {
|
ssh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
ignoreEmptyHostKeys = true;
|
ignoreEmptyHostKeys = true;
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
HostKey /ssh_initrd_host_ed25519_key
|
HostKey /ssh_initrd_host_ed25519_key
|
||||||
'';
|
'';
|
||||||
|
authorizedKeys = with (import ../../lib).keys.users; [
|
||||||
|
ccr-gpg
|
||||||
|
ccr-ssh
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
systemd = {
|
systemd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
storePaths = ["${config.programs.ssh.package}/bin/ssh-keygen"];
|
network.enable = true;
|
||||||
|
storePaths = [
|
||||||
|
"${config.programs.ssh.package}/bin/ssh-keygen"
|
||||||
|
"${pkgs.bashInteractive}/bin/bash"
|
||||||
|
];
|
||||||
services.sshd.preStart = ''
|
services.sshd.preStart = ''
|
||||||
${config.programs.ssh.package}/bin/ssh-keygen -t ed25519 -N "" -f /ssh_initrd_host_ed25519_key
|
[ ! -f /ssh_initrd_host_ed25519_key ] && ${config.programs.ssh.package}/bin/ssh-keygen -t ed25519 -N "" -f /ssh_initrd_host_ed25519_key
|
||||||
chmod 600 /ssh_initrd_host_ed25519_key
|
chmod 600 /ssh_initrd_host_ed25519_key
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
boot.initrd.systemd.additionalUpstreamUnits = ["debug-shell.service"];
|
||||||
|
boot.kernelParams = ["rd.systemd.debug_shell"];
|
||||||
}
|
}
|
||||||
|
|
BIN
secrets/hass-ssh-key.age
Normal file
BIN
secrets/hass-ssh-key.age
Normal file
Binary file not shown.
29
secrets/matrix-registration-shared-secret.age
Normal file
29
secrets/matrix-registration-shared-secret.age
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
age-encryption.org/v1
|
||||||
|
-> ssh-rsa /AagBw
|
||||||
|
UlR5iCI7jZnIqgfUm7fHrwgJroFYlqA+F8aZudS/i/RjJ6b8ldqdZnefydc+XY9i
|
||||||
|
PeAAqAdEVpC0Dae5q4BoWFb0uS5PQPOBmnYqnSm0NMEcGizzpnF+XJL1wPLur/J9
|
||||||
|
TRUHHA9MRvVF5QoXrm2wsqQxstnUPZU4ObA+JgnXArMw31aTPOc8KmZWTQKPg2YM
|
||||||
|
PyH1Q2Vc3HHKi4CyY2rl18e8JaJGiifrIATl0+/hsfJnOT8o54HcT11b096hiRqU
|
||||||
|
NEdH92y4x+hF0dStTPBIEwzLiM2CVght5lR89Lvh3ZP7b10yswB+EKkH1kwcziyn
|
||||||
|
3Hq7RM0+jNKbedyViCAuVeis5PezQlFe3yf9eR9YMJdSjhgflLU2KQ3NnXHYoJJ/
|
||||||
|
A1XitzFOwKTSEQqHQs2yjTNa3XcoyNDxH49q/svECHmYZamPsc1Ac8cIJOeFf+Id
|
||||||
|
xoa0zKJhSZOBwIz5+PrbNN4lYD88sbT6wspQoJwFOvqCx87kwb3HouG0rwDq57BN
|
||||||
|
QxybvD7Vz7JPr6D15uWGhNldabvhr+pMt+17wS+DmdjO08iHrwxTrzyvvc86vxhg
|
||||||
|
9IvAF3mhIQvBuV9yLSTGE+J8ngp3f6PUfj0CHZTpLpsBvmr83b1gqjVIpxnmJwIW
|
||||||
|
MZpPv/x3o81kxyibFA75T+PhGlOPOybZpleRwmLazy4
|
||||||
|
-> ssh-rsa QHr3/A
|
||||||
|
HjOVYJ5qow3EL+ccqD/8azBdhynKeoSYDMOf9etmemrnBLigJzpoFFjlqyMmfFVj
|
||||||
|
vjGvVok/iPO6rrmA27UpEiU6arW8IO1N0IUTulpMYNoDUEWPUHdCQv0pHfArEMi0
|
||||||
|
KN37mpm22nusOL3bm8goIcyVFzqP83wGsQXamVjwYLI34XlD2d4ugxWtejoYK/rR
|
||||||
|
4xbpgnQv3KuyWuxa5eehBuSPZVcBTwzF3sE9/7UFWZxSeHIpV+S8qoj/kfezqVUl
|
||||||
|
lUoXC1uupwT5iNYs7NJ3WZZxWjYdpZdR01K8Z8GAh2BDsVXBBZfxmPZwcr+Ri7Gk
|
||||||
|
Ai3AGyw7JyO7YeVXeiGze52fkxzxZmCuN8fKoxi5fgrt3sJMUurXnsCTOAPPj9oE
|
||||||
|
FCUT9eGO3mxf213XHEySfhS1C0yEruCtJnmclr3bkFNKVFyM71ABOp8sQwsNuBeB
|
||||||
|
3WeufPGCXliV7w+NuNBfa0NAemqDOWmTqZHQEv/D3gLBAiUxtm3Rd5wVkcY0Qy3X
|
||||||
|
nq0VyMU+LEcC5h9HvJNnEbUzADR0bab/5jbKfbTrJVimCr6fQmkd8+ua6oGa++Jh
|
||||||
|
7BrHauQnVKp5tKnvgUaMWfOp40pjMxUzb1JQMkVD5+uKqD+aUD2SDKODC/FKOLC0
|
||||||
|
wNoSoE4m5vNy3SLjY66cVT2Mh80fs6GULqE05k2r5SQ
|
||||||
|
-> ssh-ed25519 OgJHCw OjjSmtLRB+pMtn+5NfDQ1FGMgQttjkoN04gs0aIuRHM
|
||||||
|
vRwkDC8EewSDLTbB3ZNZO1d3TjulShkeDjjrAFpu2Cc
|
||||||
|
--- 4q2bfImq0xXD0apHMUgoP+oNRg9Yr8t1SXpHYtCW0ZE
|
||||||
|
[jlE<6C>泠;
Co訰婞窌&l侾<6C>5Z>t苐 h/掠遫烌~r3<72>+縆Lg9P厯 萳▼#F揘駕7顃Sg鉀+躖)靕餿
T╁>p<><70>
|
|
@ -20,6 +20,8 @@ in
|
||||||
"chatgpt-token.age".publicKeys = [ccr-ssh ccr-gpg kirk mothership picard];
|
"chatgpt-token.age".publicKeys = [ccr-ssh ccr-gpg kirk mothership picard];
|
||||||
"cloudflare-dyndns-api-token.age".publicKeys = [ccr-ssh ccr-gpg sisko];
|
"cloudflare-dyndns-api-token.age".publicKeys = [ccr-ssh ccr-gpg sisko];
|
||||||
"restic-hetzner-password.age".publicKeys = [ccr-ssh ccr-gpg picard sisko kirk];
|
"restic-hetzner-password.age".publicKeys = [ccr-ssh ccr-gpg picard sisko kirk];
|
||||||
|
"hass-ssh-key.age".publicKeys = [ccr-ssh ccr-gpg sisko];
|
||||||
|
"matrix-registration-shared-secret.age".publicKeys = [ccr-ssh ccr-gpg sisko];
|
||||||
|
|
||||||
# WireGuard
|
# WireGuard
|
||||||
"picard-wireguard-private-key.age".publicKeys = [ccr-ssh ccr-gpg picard];
|
"picard-wireguard-private-key.age".publicKeys = [ccr-ssh ccr-gpg picard];
|
||||||
|
|
Loading…
Add table
Reference in a new issue