Skip to content

Commit 0f83788

Browse files
committed
init
1 parent 930e348 commit 0f83788

File tree

118 files changed

+10426
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

118 files changed

+10426
-0
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
result/

.sops.yaml

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# AUTOMATICALLY GENERATED WITH:
2+
# $ inv update-sops-files
3+
creation_rules:
4+
- key_groups:
5+
- age:
6+
- age1g0n43n40s35j0pyuzpsnx2z5y7axwwcm2f7wgsmma5ypefavgsts2xkywx
7+
- age1se1qgt5pcy7zlwvwp8jenpqv7kca2lxjuwjsfvu854x2w76vxfta408qss76f4
8+
path_regex: hosts/host1.cypis.ovh/secrets/.+$

dev/shell.nix

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
{ pkgs, lib, ... }:
2+
{
3+
devShells = {
4+
default = with pkgs; mkShellNoCC {
5+
packages = [
6+
jq
7+
yq-go
8+
# mkpasswd # TODO: macos
9+
python3.pkgs.deploykit
10+
python3.pkgs.invoke
11+
12+
# moja wersja pached'ed, bo sops official jeszcze nie wspiera pluginow TPM/yubikey/SecureEnclave
13+
(pkgs.buildGoModule {
14+
pname = "sops";
15+
version = "3.8.1";
16+
src = fetchFromGitHub {
17+
owner = "patryk4815";
18+
repo = "sops";
19+
rev = "6e657582c528dcc75580d3824c3b11824b816a30";
20+
hash = "sha256-Mznq7ev2uhBRzOotIeoCkc1l6KadTjnSO4hW20IaptQ=";
21+
};
22+
vendorHash = null;
23+
subPackages = [ "cmd/sops" ];
24+
ldflags = [ "-s" "-w" "-X github.com/getsops/sops/v3/version.Version=3.8.1" ];
25+
})
26+
ssh-to-age
27+
];
28+
};
29+
sotp = with pkgs; mkShellNoCC {
30+
packages = [
31+
(buildGoModule rec {
32+
pname = "sotp";
33+
version = "e7f7c804b1641169ce850d8352fb07294881609e";
34+
src = pkgs.fetchFromGitHub {
35+
owner = "getsops";
36+
repo = "sotp";
37+
rev = version;
38+
hash = "sha256-Cu8cZCmM19G5zeMIiiaCwVJee8wrBZP3Ltk1jWKb2vs=";
39+
};
40+
vendorHash = "sha256-vQruuohwi53By8UZLrPbRtUrmNbmPt+Sku9hI5J3Dlc=";
41+
ldflags = [ "-s" "-w" ];
42+
doCheck = false;
43+
})
44+
];
45+
};
46+
};
47+
}

flake.lock

+164
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

flake.nix

+76
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
{
2+
# nixConfig.extra-substituters = [
3+
# "https://todo.pl"
4+
# ];
5+
# nixConfig.extra-trusted-public-keys = [
6+
# "todo.pl-1:1337+/1337="
7+
# ];
8+
9+
inputs = {
10+
nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.11";
11+
12+
flake-parts = {
13+
url = "github:hercules-ci/flake-parts";
14+
inputs.nixpkgs-lib.follows = "nixpkgs";
15+
};
16+
17+
disko = {
18+
url = "github:nix-community/disko";
19+
inputs.nixpkgs.follows = "nixpkgs";
20+
};
21+
22+
sops-nix = {
23+
url = "github:Mic92/sops-nix";
24+
inputs.nixpkgs.follows = "nixpkgs";
25+
inputs.nixpkgs-stable.follows = "";
26+
};
27+
28+
nix-index-database = {
29+
url = "github:Mic92/nix-index-database";
30+
inputs.nixpkgs.follows = "nixpkgs";
31+
};
32+
33+
nixos-images = {
34+
url = "github:nix-community/nixos-images";
35+
};
36+
37+
};
38+
39+
outputs = inputs @ { flake-parts, self, ... }:
40+
flake-parts.lib.mkFlake
41+
{ inherit inputs; }
42+
{
43+
systems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
44+
45+
perSystem = { config, inputs', lib, pkgs, self', system, ... }: let
46+
systemCross = if pkgs.stdenv.isLinux then system else "x86_64-linux";
47+
kexec-installer = nixpkgs: modules: (nixpkgs.legacyPackages.${systemCross}.nixos (modules ++ [
48+
inputs.nixos-images.nixosModules.kexec-installer
49+
])).config.system.build.kexecTarball;
50+
# netboot-installer = nixpkgs: (nixpkgs.legacyPackages.${system}.nixos [ inputs.nixos-images.nixosModules.netboot-installer ]).config.system.build.netboot;
51+
in {
52+
imports = [
53+
./dev/shell.nix
54+
];
55+
56+
packages = {
57+
kexec-installer-nixos-noninteractive = kexec-installer inputs.nixpkgs [
58+
{
59+
system.kexec-installer.name = "nixos-kexec-installer-noninteractive";
60+
}
61+
inputs.nixos-images.nixosModules.noninteractive
62+
# self.nixosModules.custom
63+
];
64+
};
65+
};
66+
67+
flake.darwinConfigurations = {}; # TODO: darwin
68+
flake.nixosConfigurations = import ./hosts { inherit inputs; };
69+
70+
flake.darwinModules = import ./modules/darwin;
71+
flake.nixosModules = import ./modules/nixos;
72+
73+
flake.lib.darwinSystem = args: inputs.nix-darwin.lib.darwinSystem ({ specialArgs = { inherit inputs; }; } // args);
74+
flake.lib.nixosSystem = args: inputs.nixpkgs.lib.nixosSystem ({ specialArgs = { inherit inputs; }; } // args);
75+
};
76+
}

hosts/default.nix

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{ inputs, ... }:
2+
let
3+
inherit (inputs.self.lib) nixosSystem;
4+
inherit (inputs.nixpkgs.lib) makeOverridable;
5+
6+
buildX86_64 = name: makeOverridable nixosSystem {
7+
# TODO: jakos lepiej
8+
pkgs = inputs.nixpkgs.legacyPackages.x86_64-linux;
9+
modules = [ ./${name}/configuration.nix ];
10+
};
11+
12+
hosts = builtins.removeAttrs (builtins.readDir ./.) [ "default.nix" ];
13+
in
14+
builtins.mapAttrs (name: value: (buildX86_64 name)) hosts
+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
2+
{ inputs, pkgs, lib, config, ... }:
3+
{
4+
imports = [
5+
# ./hardware-configuration.nix # auto generate by command: inv ssh-hardware --hostname [email protected]
6+
# ./networking.nix # auto generate by command: inv ssh-networking --hostname [email protected]
7+
inputs.self.nixosModules.common
8+
inputs.self.nixosModules.disko
9+
];
10+
11+
system.stateVersion = "23.11"; # Don't change after deploy! Read docs.
12+
}
+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
ssh_host_ed25519_key: ENC[AES256_GCM,data:qA0fvrqxpa7OFvRcl4Yd67OayoRetmCJl6AF0uoCnQ8o3nvGTHR7+I/GWILK+IEHX0wmbVP3M4T69Ugyc17TnC/VArAzJ0PJG/h0APZcRd1B4x+LF1eFKMX2nuXPIj+7zfQHE9mWdqhCvhVH8aNiwTYdaoV08OQnNvDFpDyfpcoNSQLY2Lz3nGNkrBqB20I4dXRBZuMfFuf4LuRj27j9ZSlcE22VuYev95zCblRhZIAbvSfK+Q6SbWx8/A67VHVU61sW7W3JE1oZtYMCSp07fZsrrgJLwcdtRsW/6Q87y/MJ41/szZvQTZV3sCPNkWYpwsLxGe/MwCSuEQI2rWwBVc264ATH2M5leo7kiRqIXYfJZTmI8rGA8DYAek9yAf0E5j1FdY6XQT+T84kG1vFHHSCh9i9U1oi6VJPrGmmXNnDBnqSlF3V36ZZfA7EcYozpnixgne4+/36fnaKj/zxpmsVvG8pnPhXCvRCe3b4eIVtN7Haom6/0H7qnupgvic24eY8p,iv:sZBirJr5B7wIO1K3OCp3R0lppB/po9l20qTyI23VJmM=,tag:3FdSaM7ospS8feJtdgPgUg==,type:str]
2+
ssh_host_ed25519_key.pub: ENC[AES256_GCM,data:bWNikR3nPpW6V90y58Gz8Oa1flhAIPJ8GkKD9jOw5yICV5Me7mm1zuQmIB1B8PrFwhMxCu8bSRI6a6SUoLXJNG+rdRXuoptLL6uHqG4weqBGgA==,iv:HPo/D1oZwb7zfubcMA2ugs818nGor5IoxbmwYYWNu1w=,tag:1w7797H1nuem0ZuGex1HPQ==,type:str]
3+
ssh_host_rsa_key: ENC[AES256_GCM,data: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,iv:g/YeyZLVNKwsCn0UstvgEjHCzlWJAEcdpZBa+YqhI8Q=,tag:S32QLyPHBrZo5tNRpediog==,type:str]
4+
ssh_host_rsa_key.pub: ENC[AES256_GCM,data:S+1z0Ayvg8bMrzFzmeMMTwjPngwO9DrkF8H3OSBWdJ9BVmpo/Gt+AK8pCmoUzh247sODwBt0bPAasaXLomggDfFoYeo/QYwfyiFHURDOvuDPoduBtMf0ZAxYdGLIaU0LESGBSOnRKtHaRH0ZqmeDPGME7TCRCBMlVVyTiCwIKsOeJqI2Rc+4VMLzgl5k6HlR1CdDfC0e+2gpnzrJi3FCNTfkFsL65rJfHFXP94uELUYZWOJV6YZ1YVGCMHW/ps/sRHU/T6WZuXv2JscmKK5bftudvG8a9YbNhyGLjics4mUL8p8IM/2Omoye6ohGP/0uCzi0Cb25dTMzaQPxjWTfg1GDakP0oh6pPPRO3Y4EztoqHAbqXwC5LyxK3xtwzuf0eETIUwmum/OQrXmMjEKqd2UFzBTUgutUJnKQma+82YFCfHI2+2MtRXtKQ+RBLCHFPFMAJZ0NOs5fkbNufygm3+N3PE4xzL7bLLic/RS/kInFT7AVCVnKYgRF+3JOc4YFcOqPcO0j61NL7OUidZb9QTISedT6DMJjT/fPXp2Q20e4C0Gic5J6Cp2qAX1VytalEoFOyry+OyT4KDxMjMNiKYEPSTHzmfsBi5hE1+EsbqYPy6kgkAPVeTgpNju68QDErnm14WSt6f12CXSZgrgkddfStZDM8WxgTJcLK8gOyjOkltND+nVKEkMEEWgK9Zp08SWSFOdgyEzsBtevcOp7Kg/vVB+rz8vJp2V2rkgk4okvxDYhoPhdfcU0NuXrStr00xta49y157kiWUSbiKC6GtmIfc6JnbDD4NjYMQ5hnItPCTQKOsNyPcvzB8OVb//gDhDZzZ9rLCPxkbZlCiqeNmWp2f5l/0rEaz5jzABRQ3L+cnSAHpwkR+KyvmR88xi5BPEXnVJVmb9gmxpxhqomGur+o2/Rw0qiP2oK7B/sz5zqL6sS9QHaIHoCx88RwjPMJOwksg0+,iv:9pK7isbX/uvoMic4Yt72D+MuL/1KrJudjBEnSHmIyBA=,tag:ysAtACR0KeAvO7tlH5/YPQ==,type:str]
5+
root-password: ENC[AES256_GCM,data:/exBlShDq4ASYRtAWtU=,iv:M194Cpsl300vaHgk0e3Yq0oXKX4AznEmYCHATJCjnzo=,tag:HgU2Kml4dFlZwDR/cIzx/g==,type:str]
6+
root-password-hash: ENC[AES256_GCM,data:shUaIEHe6BWseCzNXC0+MVgtyo5zTzhLWcu7xkf28563aXaRdaj+3FQmdd4auN1WDeQliSwF8UR5Jch03Mg1,iv:qc2BMp8QzbgnnXd4cAZUUWnDnL5dQOJfV7JFyKnitDo=,tag:HQ/CprZV/l6k1c1qOOGCLA==,type:str]
7+
sops:
8+
kms: []
9+
gcp_kms: []
10+
azure_kv: []
11+
hc_vault: []
12+
age:
13+
- recipient: age1g0n43n40s35j0pyuzpsnx2z5y7axwwcm2f7wgsmma5ypefavgsts2xkywx
14+
enc: |
15+
-----BEGIN AGE ENCRYPTED FILE-----
16+
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4NjV1aXcrZ3VaRjFNaGZJ
17+
aHZCc0xRL01mRE1TT2VxbTRxUkx0aDNKZTFRCnlJY1ZYM29CUW41TEE4bTl0RkVq
18+
YkI1VGcvRk14NlEzQi9VVFpCUllJY3MKLS0tIHg5R3BtRHYwOG9NWjhqdEg5aTgz
19+
UXVrbTJaS3RaTHJFQWhwdVN6bWVCTVEKQ/I6N2tgzg5TM2m7cpP6+TsDNXqK8d/Z
20+
3D0F8aqcCGLNg+1RiRVZ5S98su5DeOb101vr1B3Ro6++XBCV9mNaQQ==
21+
-----END AGE ENCRYPTED FILE-----
22+
- recipient: age1se1qgt5pcy7zlwvwp8jenpqv7kca2lxjuwjsfvu854x2w76vxfta408qss76f4
23+
enc: |
24+
-----BEGIN AGE ENCRYPTED FILE-----
25+
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHBpdi1wMjU2IEhZOVkzQSBBcXFteFVy
26+
NHd0azRjaTJmbXZNZFRQTEhIVTRldUxyc0pSYTk1MVU1bXFXMQpEbkY1MGFuN25j
27+
d1FEc2xZSVUwVFJsMyt4WE9SNW10cUpTRjNxdWZxaGNRCi0tLSB4ek40MFVkekFZ
28+
SXVjRHlDNFA2eVRDQktxSWdMbTdZcWJXUDk2ZmJBbjlBCt/V60sQAsmHGtcQrZeu
29+
AUpMq2jgVKZ7kLCDvBCRJ1VBDBytzk6WmSfXYO6VYEUcyWB2mEtSm83MNSMBV+nz
30+
8m4=
31+
-----END AGE ENCRYPTED FILE-----
32+
lastmodified: "2024-02-24T20:00:22Z"
33+
mac: ENC[AES256_GCM,data:EChXOeVUYCpt60fLOQd+X7OPFUhBxfwvaKoki3AntcJlI8ns0wSCNbNdCRYizwUSXnG8EVIbqdMndJ4xzB4FIfKOqYqYFePyHI4we+quu1C8/1EIj607UBYAGWr9haGxPDFaYneYxTiHwZSWMSFd779/5SMwM9QdspIuwQuUJ/0=,iv:Xn/vB2EtLCIA0aOPLhjsQPbNbOn2W50R8STPTYWE8FU=,tag:klM+IAySWyJu7T0RZnI4Yw==,type:str]
34+
pgp: []
35+
unencrypted_suffix: _unencrypted
36+
version: 3.8.1

inv

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/usr/bin/env bash
2+
3+
nix develop -c inv "${@:---list}"

modules/darwin/default.nix

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
let
2+
files = builtins.removeAttrs (builtins.readDir ./.) [ "default.nix" ];
3+
in
4+
builtins.mapAttrs (name: value: (./. + ("/" + name))) files

0 commit comments

Comments
 (0)