Compare commits
144 Commits
4182e1e771
...
refactor
| Author | SHA1 | Date | |
|---|---|---|---|
|
0249d17ac1
|
|||
|
a3f253bd53
|
|||
|
034bc1e4e0
|
|||
|
bd07e688fc
|
|||
|
32133438d9
|
|||
|
d95cca9908
|
|||
|
6f278377d7
|
|||
|
731e4e33c5
|
|||
|
bca0dddb1f
|
|||
|
b88a5b9a2a
|
|||
|
f864f543b8
|
|||
|
941276e83f
|
|||
|
f54df874d4
|
|||
|
a83c214180
|
|||
|
8e7629da2e
|
|||
|
941e8a5dca
|
|||
|
522966f808
|
|||
|
62acac7285
|
|||
|
08aa2cd458
|
|||
|
d65b9b558d
|
|||
|
64545e3086
|
|||
|
02267d4825
|
|||
|
0a0ba2b5a1
|
|||
|
1f7f453fc3
|
|||
|
a667691f49
|
|||
|
d296306cb6
|
|||
|
b1574ab9e1
|
|||
|
55b518345b
|
|||
|
b4892083e8
|
|||
|
8d4d1e4be8
|
|||
|
653476ec32
|
|||
|
949691b4c2
|
|||
|
ed60b8cc2b
|
|||
|
9ee26c983e
|
|||
|
21ecad4db0
|
|||
|
a77d2243bf
|
|||
|
51b596ea83
|
|||
|
909e2bb494
|
|||
|
ff56f1d4ab
|
|||
|
a86dbd6253
|
|||
|
c285b75264
|
|||
|
893d31d52c
|
|||
|
7bdc00290e
|
|||
|
b70620ae99
|
|||
|
62ac639d08
|
|||
|
9de2d29400
|
|||
|
a0d72f98b9
|
|||
|
fa778a6040
|
|||
|
3b886aa6ad
|
|||
|
2277c363dd
|
|||
|
d31042fef5
|
|||
|
edb0ca235e
|
|||
|
db3a1d9ee9
|
|||
|
f3388b4dbf
|
|||
|
5b63ced9e5
|
|||
|
2a17f98a00
|
|||
|
77bba122a5
|
|||
|
e1168e2a77
|
|||
|
df5fecb899
|
|||
|
a574bcf8fe
|
|||
|
f7ef0aff13
|
|||
|
b1e9a4fb94
|
|||
|
32e7e7eb02
|
|||
|
438717fdf2
|
|||
|
e6b35bfc2a
|
|||
|
aaff72d9f0
|
|||
|
8c6d79ca6f
|
|||
|
d3101d88c9
|
|||
|
80178917bb
|
|||
|
e51e3095a1
|
|||
|
37547460ff
|
|||
|
10f2f33cae
|
|||
|
7b0cfb5dfa
|
|||
|
98320fd0bd
|
|||
|
e6d6049c08
|
|||
|
b4e573b9f2
|
|||
|
dab2e8b0ac
|
|||
|
ef91ffd016
|
|||
|
10c0d47c79
|
|||
|
b37e0cdda5
|
|||
|
f750968224
|
|||
|
88c2a62223
|
|||
|
9ed74e74d2
|
|||
|
ab8ad96c3e
|
|||
|
04ae6d8317
|
|||
|
557aa480ee
|
|||
|
853ee2a917
|
|||
|
4a876f27d3
|
|||
|
f4eb08097a
|
|||
|
1ff3ab8af9
|
|||
|
fc026c4157
|
|||
|
e2f0c80e31
|
|||
|
747a9abd01
|
|||
|
c3ff05b262
|
|||
|
9fea252f2c
|
|||
|
5f925a20a4
|
|||
|
7123d72902
|
|||
|
8a5ad571bc
|
|||
|
21386d4a63
|
|||
|
ec7c4cc55b
|
|||
|
fb04e18343
|
|||
|
69c050bef6
|
|||
|
05ac2e175c
|
|||
|
89c5878f9f
|
|||
|
ac8178476e
|
|||
|
fff7506433
|
|||
|
89eb52b102
|
|||
|
5b810ae614
|
|||
|
1466895a1e
|
|||
|
2aa2c10ff2
|
|||
|
2171e29570
|
|||
|
bc8c07914a
|
|||
|
1cd51d2034
|
|||
|
a965485be6
|
|||
|
785c95e52c
|
|||
|
ab8c079ef5
|
|||
|
616b1154a4
|
|||
|
38c4f44dc5
|
|||
|
3c0089c26f
|
|||
|
b7a5d90616
|
|||
|
3bb1e6c8fe
|
|||
|
7dece1e338
|
|||
|
883522adf5
|
|||
|
c018da4b11
|
|||
|
ba41252e6f
|
|||
|
5370c7eaf1
|
|||
|
09cdbad9ab
|
|||
|
100e491bfb
|
|||
|
93bde6beca
|
|||
|
3168ec01b9
|
|||
|
9aef89016d
|
|||
|
cace245e16
|
|||
|
e16d4b5af7
|
|||
|
0d17cf5cde
|
|||
|
f64deda645
|
|||
|
39e710b4d9
|
|||
|
1f5a4bbebb
|
|||
|
b705237cb4
|
|||
|
264ff86a68
|
|||
|
4ca6bd329e
|
|||
|
795ff8a1b1
|
|||
|
21376db87b
|
|||
|
91f8856a97
|
|||
|
771b59ea2d
|
32
README.md
32
README.md
@@ -1,2 +1,34 @@
|
|||||||
# nixos-config
|
# nixos-config
|
||||||
|
|
||||||
|
## Install
|
||||||
|
|
||||||
|
### Patitioning
|
||||||
|
|
||||||
|
- Easiest is to run [disko](https://git.kabtop.de/Kabbone/nixos-config/src/branch/main/disko)
|
||||||
|
- **Classic way:**
|
||||||
|
Partition disk with gdisk:
|
||||||
|
1. EFI Partition, size 512M, type "EF00", Label "NIXBOOT"
|
||||||
|
|
||||||
|
2. Root Partition, size 100%, type "8300", Label "NIXROOT"
|
||||||
|
|
||||||
|
### Installing
|
||||||
|
|
||||||
|
1. mount all the partitions and subvolumes to /mnt
|
||||||
|
|
||||||
|
2. generate initial nixos config
|
||||||
|
```
|
||||||
|
# nixos-generate-config --root /mnt
|
||||||
|
```
|
||||||
|
|
||||||
|
3. clone flake and check config
|
||||||
|
```
|
||||||
|
# cd /mnt/etc/nixos/
|
||||||
|
# git clone https://git.kabtop.de/Kabbone/nixos-config.git
|
||||||
|
```
|
||||||
|
|
||||||
|
4. install system
|
||||||
|
```
|
||||||
|
# nixos-install --flake .#<host>
|
||||||
|
```
|
||||||
|
|
||||||
|
5. reboot
|
||||||
|
|||||||
37
disko/README.md
Normal file
37
disko/README.md
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
## Step by step
|
||||||
|
1. Boot the [installer](https://nixos.org/download.html#nixos-iso)
|
||||||
|
|
||||||
|
2. Get disk name
|
||||||
|
```
|
||||||
|
$ lsblk
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Get disko config
|
||||||
|
```
|
||||||
|
$ curl https://git.kabtop.de/Kabbone/nixos-config/raw/branch/main/disko/btrfs_luks.nix -o /tmp/disko-config.nix
|
||||||
|
```
|
||||||
|
|
||||||
|
4. Adjust device name
|
||||||
|
|
||||||
|
5. Let disko partition the disk
|
||||||
|
```
|
||||||
|
$ sudo nix --experimental-features "nix-command flakes" run github:nix-community/disko -- --mode disko /tmp/disko-config.nix
|
||||||
|
```
|
||||||
|
|
||||||
|
6. Check if it got mounted
|
||||||
|
```
|
||||||
|
$ mount | grep /mnt
|
||||||
|
```
|
||||||
|
|
||||||
|
7. Continue with NixOS installation
|
||||||
|
Filesystem definitions come from disko, hence "--no-filesystems"
|
||||||
|
```
|
||||||
|
$ nixos-generate-config --no-filesystems --root /mnt
|
||||||
|
$ mv /tmp/disko-config.nix /mnt/etc/nixos
|
||||||
|
```
|
||||||
|
|
||||||
|
**Alternative:** continue with normal hardware-config
|
||||||
|
```
|
||||||
|
$ nixos-generate-config --root /mnt
|
||||||
|
```
|
||||||
|
|
||||||
65
disko/btrfs.nix
Normal file
65
disko/btrfs.nix
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
{
|
||||||
|
disko.devices = {
|
||||||
|
disk = {
|
||||||
|
nvme0n1 = {
|
||||||
|
type = "disk";
|
||||||
|
device = "/dev/nvme0n1";
|
||||||
|
content = {
|
||||||
|
type = "gpt";
|
||||||
|
partitions = {
|
||||||
|
ESP = {
|
||||||
|
size = "512M";
|
||||||
|
type = "EF00";
|
||||||
|
content = {
|
||||||
|
type = "filesystem";
|
||||||
|
format = "vfat";
|
||||||
|
extraArgs = [ "-n NIXBOOT" ];
|
||||||
|
mountpoint = "/boot";
|
||||||
|
mountOptions = [
|
||||||
|
"defaults"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
root = {
|
||||||
|
size = "100%";
|
||||||
|
content = {
|
||||||
|
type = "btrfs";
|
||||||
|
extraArgs = [ "-f -L NIXROOT" ];
|
||||||
|
subvolumes = {
|
||||||
|
"@" = {
|
||||||
|
mountpoint = "/";
|
||||||
|
mountOptions = [ "compress=zstd" "noatime" "ssd" "discard=async" ];
|
||||||
|
};
|
||||||
|
"@home" = {
|
||||||
|
mountpoint = "/home";
|
||||||
|
mountOptions = [ "compress=zstd" "noatime" "ssd" "discard=async" ];
|
||||||
|
};
|
||||||
|
"@nix" = {
|
||||||
|
mountpoint = "/nix";
|
||||||
|
mountOptions = [ "compress=zstd" "noatime" "ssd" "discard=async" ];
|
||||||
|
};
|
||||||
|
"@snapshots" = {
|
||||||
|
mountpoint = "/mnt";
|
||||||
|
mountOptions = [ "compress=zstd" "noatime" "ssd" "discard=async" ];
|
||||||
|
};
|
||||||
|
"@srv" = {
|
||||||
|
mountpoint = "/srv";
|
||||||
|
mountOptions = [ "compress=zstd" "noatime" "ssd" "discard=async" ];
|
||||||
|
};
|
||||||
|
"@var" = {
|
||||||
|
mountpoint = "/var";
|
||||||
|
mountOptions = [ "compress=zstd" "noatime" "ssd" "discard=async" ];
|
||||||
|
};
|
||||||
|
"@swap" = {
|
||||||
|
mountpoint = "/swap";
|
||||||
|
swap.swapfile.size = "8G";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
75
disko/btrfs_luks.nix
Normal file
75
disko/btrfs_luks.nix
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
{
|
||||||
|
disko.devices = {
|
||||||
|
disk = {
|
||||||
|
nvme0n1 = {
|
||||||
|
type = "disk";
|
||||||
|
device = "/dev/nvme0n1";
|
||||||
|
content = {
|
||||||
|
type = "gpt";
|
||||||
|
partitions = {
|
||||||
|
ESP = {
|
||||||
|
size = "512M";
|
||||||
|
type = "EF00";
|
||||||
|
content = {
|
||||||
|
type = "filesystem";
|
||||||
|
format = "vfat";
|
||||||
|
extraArgs = [ "-n NIXBOOT" ];
|
||||||
|
mountpoint = "/boot";
|
||||||
|
mountOptions = [
|
||||||
|
"defaults"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
luks = {
|
||||||
|
size = "100%";
|
||||||
|
content = {
|
||||||
|
type = "luks";
|
||||||
|
name = "crypted";
|
||||||
|
askPassword = true;
|
||||||
|
# disable settings.keyFile if you want to use interactive password entry
|
||||||
|
#passwordFile = "/tmp/secret.key"; # Interactive
|
||||||
|
settings = {
|
||||||
|
allowDiscards = true;
|
||||||
|
};
|
||||||
|
content = {
|
||||||
|
type = "btrfs";
|
||||||
|
extraArgs = [ "-f -L NIXROOT" ];
|
||||||
|
subvolumes = {
|
||||||
|
"@" = {
|
||||||
|
mountpoint = "/";
|
||||||
|
mountOptions = [ "compress=zstd" "noatime" "ssd" "discard=async" ];
|
||||||
|
};
|
||||||
|
"@home" = {
|
||||||
|
mountpoint = "/home";
|
||||||
|
mountOptions = [ "compress=zstd" "noatime" "ssd" "discard=async" ];
|
||||||
|
};
|
||||||
|
"@nix" = {
|
||||||
|
mountpoint = "/nix";
|
||||||
|
mountOptions = [ "compress=zstd" "noatime" "ssd" "discard=async" ];
|
||||||
|
};
|
||||||
|
"@snapshots" = {
|
||||||
|
mountpoint = "/mnt";
|
||||||
|
mountOptions = [ "compress=zstd" "noatime" "ssd" "discard=async" ];
|
||||||
|
};
|
||||||
|
"@srv" = {
|
||||||
|
mountpoint = "/srv";
|
||||||
|
mountOptions = [ "compress=zstd" "noatime" "ssd" "discard=async" ];
|
||||||
|
};
|
||||||
|
"@var" = {
|
||||||
|
mountpoint = "/var";
|
||||||
|
mountOptions = [ "compress=zstd" "noatime" "ssd" "discard=async" ];
|
||||||
|
};
|
||||||
|
"@swap" = {
|
||||||
|
mountpoint = "/swap";
|
||||||
|
swap.swapfile.size = "8G";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
47
disko/nas_luks.nix
Normal file
47
disko/nas_luks.nix
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
{
|
||||||
|
disko.devices = {
|
||||||
|
disk = {
|
||||||
|
sda = {
|
||||||
|
type = "disk";
|
||||||
|
device = "/dev/sda";
|
||||||
|
content = {
|
||||||
|
type = "gpt";
|
||||||
|
partitions = {
|
||||||
|
luks = {
|
||||||
|
size = "100%";
|
||||||
|
content = {
|
||||||
|
type = "luks";
|
||||||
|
name = "NAS-RAID";
|
||||||
|
askPassword = true;
|
||||||
|
# disable settings.keyFile if you want to use interactive password entry
|
||||||
|
#passwordFile = "/tmp/secret.key"; # Interactive
|
||||||
|
settings = {
|
||||||
|
allowDiscards = true;
|
||||||
|
};
|
||||||
|
content = {
|
||||||
|
type = "btrfs";
|
||||||
|
extraArgs = [ "-f -L NAS-RAID" ];
|
||||||
|
subvolumes = {
|
||||||
|
"@" = {
|
||||||
|
mountpoint = "/mnt/Pluto";
|
||||||
|
mountOptions = [ "compress=zstd" "noatime" "ssd" "discard=async" ];
|
||||||
|
};
|
||||||
|
"@/Backups";
|
||||||
|
"@/Media";
|
||||||
|
"@/Games";
|
||||||
|
"@/IT";
|
||||||
|
"@/Rest";
|
||||||
|
"@snapshots" = {
|
||||||
|
mountpoint = "/mnt";
|
||||||
|
mountOptions = [ "compress=zstd" "noatime" "ssd" "discard=async" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
664
flake.lock
generated
664
flake.lock
generated
@@ -6,14 +6,15 @@
|
|||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
],
|
||||||
|
"systems": "systems"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1696775529,
|
"lastModified": 1715290355,
|
||||||
"narHash": "sha256-TYlE4B0ktPtlJJF9IFxTWrEeq+XKG8Ny0gc2FGEAdj0=",
|
"narHash": "sha256-2T7CHTqBXJJ3ZC6R/4TXTcKoXWHcvubKNj9SfomURnw=",
|
||||||
"owner": "ryantm",
|
"owner": "ryantm",
|
||||||
"repo": "agenix",
|
"repo": "agenix",
|
||||||
"rev": "daf42cb35b2dc614d1551e37f96406e4c4a2d3e4",
|
"rev": "8d37c5bdeade12b6479c85acd133063ab53187a0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -22,6 +23,27 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"crane": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"lanzaboote",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1711299236,
|
||||||
|
"narHash": "sha256-6/JsyozOMKN8LUGqWMopKTSiK8N79T8Q+hcxu2KkTXg=",
|
||||||
|
"owner": "ipetkov",
|
||||||
|
"repo": "crane",
|
||||||
|
"rev": "880573f80d09e18a11713f402b9e6172a085449f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "ipetkov",
|
||||||
|
"repo": "crane",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"darwin": {
|
"darwin": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@@ -30,11 +52,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1673295039,
|
"lastModified": 1700795494,
|
||||||
"narHash": "sha256-AsdYgE8/GPwcelGgrntlijMg4t3hLFJFCRF3tL5WVjA=",
|
"narHash": "sha256-gzGLZSiOhf155FW7262kdHo2YDeugp3VuIFb4/GGng0=",
|
||||||
"owner": "lnl7",
|
"owner": "lnl7",
|
||||||
"repo": "nix-darwin",
|
"repo": "nix-darwin",
|
||||||
"rev": "87b9d090ad39b25b2400029c64825fc2a8868943",
|
"rev": "4b9b83d5a92e8c1fbfd8eb27eda375908c11ec4d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -44,16 +66,141 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils": {
|
"devshell": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems"
|
"flake-utils": "flake-utils_3",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixvim",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1694529238,
|
"lastModified": 1713532798,
|
||||||
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
|
"narHash": "sha256-wtBhsdMJA3Wa32Wtm1eeo84GejtI43pMrFrmwLXrsEc=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "devshell",
|
||||||
|
"rev": "12e914740a25ea1891ec619bb53cf5e6ca922e40",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "devshell",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1696426674,
|
||||||
|
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1696426674,
|
||||||
|
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||||
|
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||||
|
"revCount": 57,
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat_3": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1696426674,
|
||||||
|
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-parts": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": [
|
||||||
|
"lanzaboote",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1709336216,
|
||||||
|
"narHash": "sha256-Dt/wOWeW6Sqm11Yh+2+t0dfEWxoMxGBvv3JpIocFl9E=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "f7b3c975cf067e56e7cda6cb098ebe3fb4d74ca2",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-parts_2": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": [
|
||||||
|
"nixvim",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1715865404,
|
||||||
|
"narHash": "sha256-/GJvTdTpuDjNn84j82cU6bXztE0MSkdnTWClUCRub78=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "8dc45382d5206bd292f9c2768b8058a8fd8311d9",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-root": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1713493429,
|
||||||
|
"narHash": "sha256-ztz8JQkI08tjKnsTpfLqzWoKFQF4JGu2LRz8bkdnYUk=",
|
||||||
|
"owner": "srid",
|
||||||
|
"repo": "flake-root",
|
||||||
|
"rev": "bc748b93b86ee76e2032eecda33440ceb2532fcd",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "srid",
|
||||||
|
"repo": "flake-root",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1710146030,
|
||||||
|
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
|
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -62,6 +209,86 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"flake-utils_2": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems_3"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1705309234,
|
||||||
|
"narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils_3": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems_4"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1701680307,
|
||||||
|
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"gitignore": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"lanzaboote",
|
||||||
|
"pre-commit-hooks-nix",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1709087332,
|
||||||
|
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "gitignore.nix",
|
||||||
|
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "gitignore.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"gitignore_2": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixvim",
|
||||||
|
"pre-commit-hooks",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1709087332,
|
||||||
|
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "gitignore.nix",
|
||||||
|
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "gitignore.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@@ -70,11 +297,31 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1682203081,
|
"lastModified": 1703113217,
|
||||||
"narHash": "sha256-kRL4ejWDhi0zph/FpebFYhzqlOBrk0Pl3dzGEKSAlEw=",
|
"narHash": "sha256-7ulcXOk63TIT2lVDSExj7XzFx09LpdSAPtvgtM7yQPE=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "32d3e39c491e2f91152c84f8ad8b003420eab0a1",
|
"rev": "3bfaacf46133c037bb356193bd2f1765d9dc82c1",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"home-manager-unstable": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs-unstable"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1715930644,
|
||||||
|
"narHash": "sha256-W9pyM3/vePxrffHtzlJI6lDS3seANQ+Nqp+i58O46LI=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"rev": "e3ad5108f54177e6520535768ddbf1e6af54b59d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -90,11 +337,33 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1698479159,
|
"lastModified": 1715381426,
|
||||||
"narHash": "sha256-rJHBDwW4LbADEfhkgGHjKGfL2dF44NrlyXdXeZrQahs=",
|
"narHash": "sha256-wPuqrAQGdv3ISs74nJfGb+Yprm23U/rFpcHFFNWgM94=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "f92a54fef4eacdbe86b0a2054054dd58b0e2a2a4",
|
"rev": "ab5542e9dbd13d0100f8baae2bc2d68af901f4b4",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"ref": "release-23.11",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"home-manager_3": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixvim",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1715930644,
|
||||||
|
"narHash": "sha256-W9pyM3/vePxrffHtzlJI6lDS3seANQ+Nqp+i58O46LI=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"rev": "e3ad5108f54177e6520535768ddbf1e6af54b59d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -103,36 +372,83 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"jovian-nixos": {
|
"impermanence": {
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1698438847,
|
"lastModified": 1708968331,
|
||||||
"narHash": "sha256-QguDrNEu5pRxzh4l1dRsbi5wPiSqRPdY1vYY5qHuaR4=",
|
"narHash": "sha256-VUXLaPusCBvwM3zhGbRIJVeYluh2uWuqtj4WirQ1L9Y=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "impermanence",
|
||||||
|
"rev": "a33ef102a02ce77d3e39c25197664b7a636f9c30",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "impermanence",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"jovian-nixos": {
|
||||||
|
"inputs": {
|
||||||
|
"nix-github-actions": "nix-github-actions",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs-unstable"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1716107076,
|
||||||
|
"narHash": "sha256-aB15oIMUv6N/UFsLHzgcGRUvU4YfOjE3gEirIP/k82s=",
|
||||||
"owner": "Jovian-Experiments",
|
"owner": "Jovian-Experiments",
|
||||||
"repo": "Jovian-NixOS",
|
"repo": "Jovian-NixOS",
|
||||||
"rev": "cfddf9e15b756c6cb454baca8cf06312023f2db9",
|
"rev": "e8de93b7b4c384650977a20c1f192e23c6e7a12f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "Jovian-Experiments",
|
"owner": "Jovian-Experiments",
|
||||||
"ref": "development",
|
|
||||||
"repo": "Jovian-NixOS",
|
"repo": "Jovian-NixOS",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"lanzaboote": {
|
||||||
|
"inputs": {
|
||||||
|
"crane": "crane",
|
||||||
|
"flake-compat": "flake-compat",
|
||||||
|
"flake-parts": "flake-parts",
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"pre-commit-hooks-nix": "pre-commit-hooks-nix",
|
||||||
|
"rust-overlay": "rust-overlay"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1713369831,
|
||||||
|
"narHash": "sha256-G4OGxvlIIjphpkxcRAkf1QInYsAeqbfNh6Yl1JLy2uM=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "lanzaboote",
|
||||||
|
"rev": "850f27322239f8cfa56b122cc9a278ab99a49015",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"ref": "master",
|
||||||
|
"repo": "lanzaboote",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"microvm": {
|
"microvm": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils",
|
"flake-utils": "flake-utils_2",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
],
|
||||||
|
"spectrum": "spectrum"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1697662468,
|
"lastModified": 1715787097,
|
||||||
"narHash": "sha256-BAryFkJiF8x9s76QDDdmR8l7ocAsBVa1z6p/pIPcdy4=",
|
"narHash": "sha256-TPp2j0ttvBvkk4oXidvo8Y071zEab0BtcNsC3ZEkluI=",
|
||||||
"owner": "astro",
|
"owner": "astro",
|
||||||
"repo": "microvm.nix",
|
"repo": "microvm.nix",
|
||||||
"rev": "cd3a9cd0fcd30b55b9950ddcaec2d5271c0b78df",
|
"rev": "fa673bf8656fe6f28253b83971a36999bc9995d2",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -141,13 +457,56 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nix-darwin": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixvim",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1715901937,
|
||||||
|
"narHash": "sha256-eMyvWP56ZOdraC2IOvZo0/RTDcrrsqJ0oJWDC76JTak=",
|
||||||
|
"owner": "lnl7",
|
||||||
|
"repo": "nix-darwin",
|
||||||
|
"rev": "ffc01182f90118119930bdfc528c1ee9a39ecef8",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "lnl7",
|
||||||
|
"repo": "nix-darwin",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nix-github-actions": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"jovian-nixos",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1690328911,
|
||||||
|
"narHash": "sha256-fxtExYk+aGf2YbjeWQ8JY9/n9dwuEt+ma1eUFzF8Jeo=",
|
||||||
|
"owner": "zhaofengli",
|
||||||
|
"repo": "nix-github-actions",
|
||||||
|
"rev": "96df4a39c52f53cb7098b923224d8ce941b64747",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "zhaofengli",
|
||||||
|
"ref": "matrix-name",
|
||||||
|
"repo": "nix-github-actions",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1698053470,
|
"lastModified": 1716034089,
|
||||||
"narHash": "sha256-sP8D/41UiwC2qn0X40oi+DfuVzNHMROqIWdSdCI/AYA=",
|
"narHash": "sha256-QBfab6V4TeQ6Y4NiXVrEATdQuhCNFNaXt/L1K/Zw+zc=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "80d98a7d55c6e27954a166cb583a41325e9512d7",
|
"rev": "b55712de78725c8fcde422ee0a0fe682046e73c3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -159,11 +518,43 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1698318101,
|
"lastModified": 1716061101,
|
||||||
"narHash": "sha256-gUihHt3yPD7bVqg+k/UVHgngyaJ3DMEBchbymBMvK1E=",
|
"narHash": "sha256-H0eCta7ahEgloGIwE/ihkyGstOGu+kQwAiHvwVoXaA0=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "e7cc61784ddf51c81487637b3031a6dd2d6673a2",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-23.11",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-stable": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1710695816,
|
||||||
|
"narHash": "sha256-3Eh7fhEID17pv9ZxrPwCLfqXnYP006RKzSs0JptsN84=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "614b4613980a522ba49f0d194531beddbb7220d3",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-23.11",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-unstable": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1715961556,
|
||||||
|
"narHash": "sha256-+NpbZRCRisUHKQJZF3CT+xn14ZZQO+KjxIIanH3Pvn4=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "63678e9f3d3afecfeafa0acead6239cdb447574c",
|
"rev": "4a6b83b05df1a8bd7d99095ec4b4d271f2956b64",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -173,34 +564,89 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-stable": {
|
"nixvim": {
|
||||||
|
"inputs": {
|
||||||
|
"devshell": "devshell",
|
||||||
|
"flake-compat": "flake-compat_2",
|
||||||
|
"flake-parts": "flake-parts_2",
|
||||||
|
"flake-root": "flake-root",
|
||||||
|
"home-manager": "home-manager_3",
|
||||||
|
"nix-darwin": "nix-darwin",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs-unstable"
|
||||||
|
],
|
||||||
|
"pre-commit-hooks": "pre-commit-hooks",
|
||||||
|
"treefmt-nix": "treefmt-nix"
|
||||||
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1698288402,
|
"lastModified": 1716125991,
|
||||||
"narHash": "sha256-jIIjApPdm+4yt8PglX8pUOexAdEiAax/DXW3S/Mb21E=",
|
"narHash": "sha256-PmB9vmp383foiVi64RawbnkC+6SiYiWUjdzw2xgl3eM=",
|
||||||
"owner": "NixOS",
|
"owner": "nix-community",
|
||||||
"repo": "nIxpkgs",
|
"repo": "nixvim",
|
||||||
"rev": "60b9db998f71ea49e1a9c41824d09aa274be1344",
|
"rev": "88ade1dfaa017499326103a078c66dd5d4d0606e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "nix-community",
|
||||||
"ref": "nixos-23.05",
|
"repo": "nixvim",
|
||||||
"repo": "nIxpkgs",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nur": {
|
"pre-commit-hooks": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat_3",
|
||||||
|
"gitignore": "gitignore_2",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixvim",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"nixpkgs-stable": [
|
||||||
|
"nixvim",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1698479881,
|
"lastModified": 1715870890,
|
||||||
"narHash": "sha256-1tECyhfEe7KPs47DjP2vLD4uqkq5iIPGo2elpyrecPs=",
|
"narHash": "sha256-nacSOeXtUEM77Gn0G4bTdEOeFIrkCBXiyyFZtdGwuH0=",
|
||||||
"owner": "nix-community",
|
"owner": "cachix",
|
||||||
"repo": "NUR",
|
"repo": "pre-commit-hooks.nix",
|
||||||
"rev": "9700207021a6611091001f53cfed2435cf2f48b9",
|
"rev": "fa606cccd7b0ccebe2880051208e4a0f61bfc8c1",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "cachix",
|
||||||
"repo": "NUR",
|
"repo": "pre-commit-hooks.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pre-commit-hooks-nix": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": [
|
||||||
|
"lanzaboote",
|
||||||
|
"flake-compat"
|
||||||
|
],
|
||||||
|
"flake-utils": [
|
||||||
|
"lanzaboote",
|
||||||
|
"flake-utils"
|
||||||
|
],
|
||||||
|
"gitignore": "gitignore",
|
||||||
|
"nixpkgs": [
|
||||||
|
"lanzaboote",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"nixpkgs-stable": "nixpkgs-stable"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1710923068,
|
||||||
|
"narHash": "sha256-6hOpUiuxuwpXXc/xfJsBUJeqqgGI+JMJuLo45aG3cKc=",
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "pre-commit-hooks.nix",
|
||||||
|
"rev": "e611897ddfdde3ed3eaac4758635d7177ff78673",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "pre-commit-hooks.nix",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -208,12 +654,56 @@
|
|||||||
"inputs": {
|
"inputs": {
|
||||||
"agenix": "agenix",
|
"agenix": "agenix",
|
||||||
"home-manager": "home-manager_2",
|
"home-manager": "home-manager_2",
|
||||||
|
"home-manager-unstable": "home-manager-unstable",
|
||||||
|
"impermanence": "impermanence",
|
||||||
"jovian-nixos": "jovian-nixos",
|
"jovian-nixos": "jovian-nixos",
|
||||||
|
"lanzaboote": "lanzaboote",
|
||||||
"microvm": "microvm",
|
"microvm": "microvm",
|
||||||
"nixos-hardware": "nixos-hardware",
|
"nixos-hardware": "nixos-hardware",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
"nixpkgs-stable": "nixpkgs-stable",
|
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||||
"nur": "nur"
|
"nixvim": "nixvim"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rust-overlay": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": [
|
||||||
|
"lanzaboote",
|
||||||
|
"flake-utils"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"lanzaboote",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1711246447,
|
||||||
|
"narHash": "sha256-g9TOluObcOEKewFo2fR4cn51Y/jSKhRRo4QZckHLop0=",
|
||||||
|
"owner": "oxalica",
|
||||||
|
"repo": "rust-overlay",
|
||||||
|
"rev": "dcc802a6ec4e9cc6a1c8c393327f0c42666f22e4",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "oxalica",
|
||||||
|
"repo": "rust-overlay",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"spectrum": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1708358594,
|
||||||
|
"narHash": "sha256-e71YOotu2FYA67HoC/voJDTFsiPpZNRwmiQb4f94OxQ=",
|
||||||
|
"ref": "refs/heads/main",
|
||||||
|
"rev": "6d0e73864d28794cdbd26ab7b37259ab0e1e044c",
|
||||||
|
"revCount": 614,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://spectrum-os.org/git/spectrum"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://spectrum-os.org/git/spectrum"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems": {
|
"systems": {
|
||||||
@@ -230,6 +720,72 @@
|
|||||||
"repo": "default",
|
"repo": "default",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"systems_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems_4": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"treefmt-nix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixvim",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1715940852,
|
||||||
|
"narHash": "sha256-wJqHMg/K6X3JGAE9YLM0LsuKrKb4XiBeVaoeMNlReZg=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"rev": "2fba33a182602b9d49f0b2440513e5ee091d838b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
|
|||||||
41
flake.nix
41
flake.nix
@@ -11,19 +11,25 @@
|
|||||||
|
|
||||||
inputs = # All flake references used to build my NixOS setup. These are dependencies.
|
inputs = # All flake references used to build my NixOS setup. These are dependencies.
|
||||||
{
|
{
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; # Nix Packages
|
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; # Nix Packages
|
||||||
nixpkgs-stable.url = "github:NixOS/nIxpkgs/nixos-23.05";
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.11";
|
||||||
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
||||||
microvm.url = "github:astro/microvm.nix";
|
|
||||||
microvm.inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
|
|
||||||
home-manager = { # User Package Management
|
microvm = {
|
||||||
url = "github:nix-community/home-manager";
|
url = "github:astro/microvm.nix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
nur = {
|
impermanence.url = "github:nix-community/impermanence";
|
||||||
url = "github:nix-community/NUR"; # NUR Packages
|
|
||||||
|
home-manager = { # User Package Management
|
||||||
|
url = "github:nix-community/home-manager/release-23.11";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
home-manager-unstable = { # User Package Management
|
||||||
|
url = "github:nix-community/home-manager";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
||||||
};
|
};
|
||||||
|
|
||||||
agenix = {
|
agenix = {
|
||||||
@@ -32,12 +38,22 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
jovian-nixos = {
|
jovian-nixos = {
|
||||||
url = "github:Jovian-Experiments/Jovian-NixOS/development";
|
url = "github:Jovian-Experiments/Jovian-NixOS";
|
||||||
flake = false;
|
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
lanzaboote = {
|
||||||
|
url = "github:nix-community/lanzaboote/master";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
nixvim = {
|
||||||
|
url = "github:nix-community/nixvim";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = inputs @ { self, nixpkgs, nixpkgs-stable, nixos-hardware, home-manager, nur, agenix, jovian-nixos, microvm, ... }: # Function that tells my flake which to use and what do what to do with the dependencies.
|
outputs = inputs @ { self, nixpkgs, nixpkgs-unstable, nixos-hardware, home-manager, home-manager-unstable, agenix, jovian-nixos, microvm, impermanence, lanzaboote, nixvim, ... }: # Function that tells my flake which to use and what do what to do with the dependencies.
|
||||||
let # Variables that can be used in the config files
|
let # Variables that can be used in the config files
|
||||||
user = "kabbone";
|
user = "kabbone";
|
||||||
userdmz = "diablo";
|
userdmz = "diablo";
|
||||||
@@ -48,10 +64,11 @@
|
|||||||
nixosConfigurations = ( # NixOS configurations
|
nixosConfigurations = ( # NixOS configurations
|
||||||
import ./hosts { # Imports ./hosts/default.nix
|
import ./hosts { # Imports ./hosts/default.nix
|
||||||
inherit (nixpkgs) lib;
|
inherit (nixpkgs) lib;
|
||||||
inherit inputs nixpkgs nixpkgs-stable nixos-hardware home-manager nur user userdmz userserver location agenix jovian-nixos microvm; # Also inherit home-manager so it does not need to be defined here.
|
inherit inputs nixpkgs nixpkgs-unstable nixos-hardware home-manager home-manager-unstable user userdmz userserver location agenix jovian-nixos microvm impermanence lanzaboote nixvim; # Also inherit home-manager so it does not need to be defined here.
|
||||||
nix.allowedUsers = [ "@wheel" ];
|
nix.allowedUsers = [ "@wheel" ];
|
||||||
security.sudo.execWheelOnly = true;
|
security.sudo.execWheelOnly = true;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -69,12 +69,11 @@
|
|||||||
carlito # NixOS
|
carlito # NixOS
|
||||||
vegur # NixOS
|
vegur # NixOS
|
||||||
source-code-pro
|
source-code-pro
|
||||||
jetbrains-mono
|
|
||||||
font-awesome # Icons
|
font-awesome # Icons
|
||||||
hack-font
|
hack-font
|
||||||
corefonts # MS
|
corefonts # MS
|
||||||
intel-one-mono
|
intel-one-mono
|
||||||
office-code-pro
|
cascadia-code
|
||||||
(nerdfonts.override { # Nerdfont Icons override
|
(nerdfonts.override { # Nerdfont Icons override
|
||||||
fonts = [
|
fonts = [
|
||||||
"FiraCode"
|
"FiraCode"
|
||||||
@@ -115,6 +114,8 @@
|
|||||||
tree
|
tree
|
||||||
direnv
|
direnv
|
||||||
linuxPackages_latest.cpupower
|
linuxPackages_latest.cpupower
|
||||||
|
btop
|
||||||
|
sbctl
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -176,25 +177,24 @@
|
|||||||
options = "--delete-older-than 7d";
|
options = "--delete-older-than 7d";
|
||||||
};
|
};
|
||||||
package = pkgs.nixVersions.stable; # Enable nixFlakes on system
|
package = pkgs.nixVersions.stable; # Enable nixFlakes on system
|
||||||
registry.nixpkgs.flake = inputs.nixpkgs;
|
|
||||||
extraOptions = ''
|
extraOptions = ''
|
||||||
experimental-features = nix-command flakes
|
experimental-features = nix-command flakes
|
||||||
keep-outputs = true
|
|
||||||
keep-derivations = true
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
nixpkgs.config.allowUnfree = true; # Allow proprietary software.
|
nixpkgs.config.allowUnfree = true; # Allow proprietary software.
|
||||||
nixpkgs.config.packageOverrides = pkgs: {
|
|
||||||
nur = import (builtins.fetchTarball "https://github.com/nix-community/NUR/archive/master.tar.gz") {
|
|
||||||
inherit pkgs;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
system = { # NixOS settings
|
system = { # NixOS settings
|
||||||
# autoUpgrade = { # Allow auto update
|
autoUpgrade = { # Allow auto update
|
||||||
# enable = true;
|
enable = true;
|
||||||
# channel = "https://nixos.org/channels/nixos-unstable";
|
flake = "git+https://git.kabtop.de/Kabbone/nixos-config";
|
||||||
# };
|
randomizedDelaySec = "5m";
|
||||||
|
allowReboot = true;
|
||||||
|
rebootWindow = {
|
||||||
|
lower = "02:00";
|
||||||
|
upper = "05:00";
|
||||||
|
};
|
||||||
|
#channel = "https://nixos.org/channels/nixos-unstable";
|
||||||
|
};
|
||||||
stateVersion = "23.05";
|
stateVersion = "23.05";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -58,7 +58,7 @@
|
|||||||
carlito # NixOS
|
carlito # NixOS
|
||||||
vegur # NixOS
|
vegur # NixOS
|
||||||
source-code-pro
|
source-code-pro
|
||||||
jetbrains-mono
|
cascadia-code
|
||||||
font-awesome # Icons
|
font-awesome # Icons
|
||||||
hack-font
|
hack-font
|
||||||
corefonts # MS
|
corefonts # MS
|
||||||
@@ -94,6 +94,9 @@
|
|||||||
powerline-fonts
|
powerline-fonts
|
||||||
powerline-symbols
|
powerline-symbols
|
||||||
tree
|
tree
|
||||||
|
btop
|
||||||
|
htop
|
||||||
|
direnv
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -122,7 +125,6 @@
|
|||||||
options = "--delete-older-than 7d";
|
options = "--delete-older-than 7d";
|
||||||
};
|
};
|
||||||
package = pkgs.nixVersions.stable; # Enable nixFlakes on system
|
package = pkgs.nixVersions.stable; # Enable nixFlakes on system
|
||||||
registry.nixpkgs.flake = inputs.nixpkgs;
|
|
||||||
extraOptions = ''
|
extraOptions = ''
|
||||||
experimental-features = nix-command flakes
|
experimental-features = nix-command flakes
|
||||||
keep-outputs = true
|
keep-outputs = true
|
||||||
@@ -130,17 +132,18 @@
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
nixpkgs.config.allowUnfree = true; # Allow proprietary software.
|
nixpkgs.config.allowUnfree = true; # Allow proprietary software.
|
||||||
nixpkgs.config.packageOverrides = pkgs: {
|
|
||||||
nur = import (builtins.fetchTarball "https://github.com/nix-community/NUR/archive/master.tar.gz") {
|
|
||||||
inherit pkgs;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
system = { # NixOS settings
|
system = { # NixOS settings
|
||||||
# autoUpgrade = { # Allow auto update
|
autoUpgrade = { # Allow auto update
|
||||||
# enable = true;
|
enable = true;
|
||||||
# channel = "https://nixos.org/channels/nixos-unstable";
|
flake = "git+https://git.kabtop.de/Kabbone/nixos-config";
|
||||||
# };
|
randomizedDelaySec = "5m";
|
||||||
stateVersion = "22.05";
|
allowReboot = true;
|
||||||
|
rebootWindow = {
|
||||||
|
lower = "02:00";
|
||||||
|
upper = "05:00";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
stateVersion = "23.05";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
# └─ ./home.nix
|
# └─ ./home.nix
|
||||||
#
|
#
|
||||||
|
|
||||||
{ lib, inputs, nixpkgs, nixos-hardware, home-manager, nur, user, userdmz, userserver, location, agenix, jovian-nixos, microvm, ... }:
|
{ lib, inputs, nixpkgs, nixpkgs-unstable, nixos-hardware, home-manager, home-manager-unstable, user, userdmz, userserver, location, agenix, jovian-nixos, microvm, impermanence, lanzaboote, nixvim, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
system = "x86_64-linux"; # System architecture
|
system = "x86_64-linux"; # System architecture
|
||||||
@@ -28,11 +28,12 @@ in
|
|||||||
{
|
{
|
||||||
desktop = lib.nixosSystem { # Desktop profile
|
desktop = lib.nixosSystem { # Desktop profile
|
||||||
inherit system;
|
inherit system;
|
||||||
specialArgs = { inherit inputs user location nixos-hardware nur agenix microvm nixpkgs; };
|
specialArgs = { inherit inputs user location nixos-hardware agenix microvm nixpkgs lanzaboote nixvim; };
|
||||||
modules = [
|
modules = [
|
||||||
agenix.nixosModules.default
|
agenix.nixosModules.default
|
||||||
nur.nixosModules.nur
|
|
||||||
microvm.nixosModules.host
|
microvm.nixosModules.host
|
||||||
|
lanzaboote.nixosModules.lanzaboote
|
||||||
|
#nixvim.nixosModules.nixvim
|
||||||
./desktop
|
./desktop
|
||||||
./configuration_desktop.nix
|
./configuration_desktop.nix
|
||||||
../modules/hardware/remoteBuilder.nix
|
../modules/hardware/remoteBuilder.nix
|
||||||
@@ -42,9 +43,6 @@ in
|
|||||||
|
|
||||||
|
|
||||||
home-manager.nixosModules.home-manager {
|
home-manager.nixosModules.home-manager {
|
||||||
nixpkgs.overlays = [
|
|
||||||
nur.overlay
|
|
||||||
];
|
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
home-manager.useUserPackages = true;
|
home-manager.useUserPackages = true;
|
||||||
home-manager.extraSpecialArgs = { inherit user; };
|
home-manager.extraSpecialArgs = { inherit user; };
|
||||||
@@ -57,10 +55,9 @@ in
|
|||||||
|
|
||||||
laptop = lib.nixosSystem { # Laptop profile
|
laptop = lib.nixosSystem { # Laptop profile
|
||||||
inherit system;
|
inherit system;
|
||||||
specialArgs = { inherit inputs user location nixos-hardware nur agenix; };
|
specialArgs = { inherit inputs user location nixos-hardware agenix; };
|
||||||
modules = [
|
modules = [
|
||||||
agenix.nixosModules.default
|
agenix.nixosModules.default
|
||||||
nur.nixosModules.nur
|
|
||||||
./laptop
|
./laptop
|
||||||
./configuration_desktop.nix
|
./configuration_desktop.nix
|
||||||
../modules/hardware/remoteClient.nix
|
../modules/hardware/remoteClient.nix
|
||||||
@@ -69,9 +66,6 @@ in
|
|||||||
nixos-hardware.nixosModules.common-pc-ssd
|
nixos-hardware.nixosModules.common-pc-ssd
|
||||||
|
|
||||||
home-manager.nixosModules.home-manager {
|
home-manager.nixosModules.home-manager {
|
||||||
nixpkgs.overlays = [
|
|
||||||
nur.overlay
|
|
||||||
];
|
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
home-manager.useUserPackages = true;
|
home-manager.useUserPackages = true;
|
||||||
home-manager.extraSpecialArgs = { inherit user; };
|
home-manager.extraSpecialArgs = { inherit user; };
|
||||||
@@ -82,12 +76,13 @@ in
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
steamdeck = lib.nixosSystem { # Laptop profile
|
steamdeck = nixpkgs-unstable.lib.nixosSystem { # steamdeck profile
|
||||||
inherit system;
|
inherit system;
|
||||||
specialArgs = { inherit inputs user location nixos-hardware nur agenix jovian-nixos; };
|
specialArgs = { inherit inputs user location nixos-hardware agenix jovian-nixos lanzaboote; };
|
||||||
modules = [
|
modules = [
|
||||||
agenix.nixosModules.default
|
agenix.nixosModules.default
|
||||||
nur.nixosModules.nur
|
jovian-nixos.nixosModules.default
|
||||||
|
lanzaboote.nixosModules.lanzaboote
|
||||||
./steamdeck
|
./steamdeck
|
||||||
./configuration_desktop.nix
|
./configuration_desktop.nix
|
||||||
../modules/hardware/remoteClient.nix
|
../modules/hardware/remoteClient.nix
|
||||||
@@ -95,10 +90,7 @@ in
|
|||||||
nixos-hardware.nixosModules.common-gpu-amd
|
nixos-hardware.nixosModules.common-gpu-amd
|
||||||
nixos-hardware.nixosModules.common-pc-ssd
|
nixos-hardware.nixosModules.common-pc-ssd
|
||||||
|
|
||||||
home-manager.nixosModules.home-manager {
|
home-manager-unstable.nixosModules.home-manager {
|
||||||
nixpkgs.overlays = [
|
|
||||||
nur.overlay
|
|
||||||
];
|
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
home-manager.useUserPackages = true;
|
home-manager.useUserPackages = true;
|
||||||
home-manager.extraSpecialArgs = { inherit user; };
|
home-manager.extraSpecialArgs = { inherit user; };
|
||||||
@@ -111,19 +103,16 @@ in
|
|||||||
|
|
||||||
server = lib.nixosSystem { # Desktop profile
|
server = lib.nixosSystem { # Desktop profile
|
||||||
inherit system;
|
inherit system;
|
||||||
specialArgs = { inherit inputs user location nixos-hardware nur agenix; };
|
specialArgs = { inherit inputs user location nixos-hardware agenix nixpkgs impermanence; };
|
||||||
modules = [
|
modules = [
|
||||||
agenix.nixosModules.default
|
agenix.nixosModules.default
|
||||||
nur.nixosModules.nur
|
microvm.nixosModules.host
|
||||||
./server
|
./server
|
||||||
./configuration_server.nix
|
./configuration_server.nix
|
||||||
nixos-hardware.nixosModules.common-cpu-amd
|
nixos-hardware.nixosModules.common-cpu-amd
|
||||||
nixos-hardware.nixosModules.common-pc-ssd
|
nixos-hardware.nixosModules.common-pc-ssd
|
||||||
|
|
||||||
home-manager.nixosModules.home-manager {
|
home-manager.nixosModules.home-manager {
|
||||||
nixpkgs.overlays = [
|
|
||||||
nur.overlay
|
|
||||||
];
|
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
home-manager.useUserPackages = true;
|
home-manager.useUserPackages = true;
|
||||||
home-manager.extraSpecialArgs = { inherit user; };
|
home-manager.extraSpecialArgs = { inherit user; };
|
||||||
@@ -134,38 +123,33 @@ in
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
dmz = lib.nixosSystem { # Desktop profile
|
kabtop = lib.nixosSystem { # Desktop profile
|
||||||
inherit system;
|
inherit system;
|
||||||
specialArgs = { inherit inputs user location nixos-hardware nur agenix nixpkgs; };
|
specialArgs = { inherit inputs user location nixos-hardware agenix nixpkgs impermanence; };
|
||||||
modules = [
|
modules = [
|
||||||
agenix.nixosModules.default
|
agenix.nixosModules.default
|
||||||
nur.nixosModules.nur
|
|
||||||
microvm.nixosModules.host
|
microvm.nixosModules.host
|
||||||
./dmz
|
./kabtop
|
||||||
./configuration_server.nix
|
./configuration_server.nix
|
||||||
|
nixos-hardware.nixosModules.common-cpu-amd
|
||||||
nixos-hardware.nixosModules.common-pc-ssd
|
nixos-hardware.nixosModules.common-pc-ssd
|
||||||
|
|
||||||
home-manager.nixosModules.home-manager {
|
home-manager.nixosModules.home-manager {
|
||||||
nixpkgs.overlays = [
|
|
||||||
nur.overlay
|
|
||||||
];
|
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
home-manager.useUserPackages = true;
|
home-manager.useUserPackages = true;
|
||||||
home-manager.extraSpecialArgs = { inherit user; };
|
home-manager.extraSpecialArgs = { inherit user; };
|
||||||
home-manager.users.${user} = {
|
home-manager.users.${user} = {
|
||||||
imports = [(import ./home_server.nix)] ++ [(import ./dmz/home.nix)];
|
imports = [(import ./home_server.nix)] ++ [(import ./server/home.nix)];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
nasbackup = lib.nixosSystem { # Desktop profile
|
nasbak = lib.nixosSystem { # Desktop profile
|
||||||
inherit system;
|
inherit system;
|
||||||
#user = "dmz-user";
|
specialArgs = { inherit inputs user location nixos-hardware agenix; };
|
||||||
specialArgs = { inherit inputs user location nixos-hardware nur agenix; };
|
|
||||||
modules = [
|
modules = [
|
||||||
agenix.nixosModules.default
|
agenix.nixosModules.default
|
||||||
nur.nixosModules.nur
|
|
||||||
./nasbackup
|
./nasbackup
|
||||||
./configuration_desktop.nix
|
./configuration_desktop.nix
|
||||||
../modules/hardware/remoteClient.nix
|
../modules/hardware/remoteClient.nix
|
||||||
@@ -173,9 +157,6 @@ in
|
|||||||
nixos-hardware.nixosModules.common-pc-ssd
|
nixos-hardware.nixosModules.common-pc-ssd
|
||||||
|
|
||||||
home-manager.nixosModules.home-manager {
|
home-manager.nixosModules.home-manager {
|
||||||
nixpkgs.overlays = [
|
|
||||||
nur.overlay
|
|
||||||
];
|
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
home-manager.useUserPackages = true;
|
home-manager.useUserPackages = true;
|
||||||
home-manager.extraSpecialArgs = { inherit user; };
|
home-manager.extraSpecialArgs = { inherit user; };
|
||||||
@@ -188,10 +169,9 @@ in
|
|||||||
|
|
||||||
jupiter = lib.nixosSystem { # Desktop profile
|
jupiter = lib.nixosSystem { # Desktop profile
|
||||||
inherit system;
|
inherit system;
|
||||||
specialArgs = { inherit inputs user location nixos-hardware nur agenix; };
|
specialArgs = { inherit inputs user location nixos-hardware agenix; };
|
||||||
modules = [
|
modules = [
|
||||||
agenix.nixosModules.default
|
agenix.nixosModules.default
|
||||||
nur.nixosModules.nur
|
|
||||||
./jupiter
|
./jupiter
|
||||||
./configuration_desktop.nix
|
./configuration_desktop.nix
|
||||||
../modules/hardware/remoteClient.nix
|
../modules/hardware/remoteClient.nix
|
||||||
@@ -199,9 +179,6 @@ in
|
|||||||
nixos-hardware.nixosModules.common-pc-ssd
|
nixos-hardware.nixosModules.common-pc-ssd
|
||||||
|
|
||||||
home-manager.nixosModules.home-manager {
|
home-manager.nixosModules.home-manager {
|
||||||
nixpkgs.overlays = [
|
|
||||||
nur.overlay
|
|
||||||
];
|
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
home-manager.useUserPackages = true;
|
home-manager.useUserPackages = true;
|
||||||
home-manager.extraSpecialArgs = { inherit user; };
|
home-manager.extraSpecialArgs = { inherit user; };
|
||||||
@@ -212,39 +189,42 @@ in
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
q920 = lib.nixosSystem { # Laptop profile
|
dmz = lib.nixosSystem { # Desktop profile
|
||||||
inherit system;
|
inherit system;
|
||||||
specialArgs = { inherit inputs user location ; };
|
specialArgs = { inherit inputs user location nixos-hardware agenix nixpkgs impermanence; };
|
||||||
modules = [
|
modules = [
|
||||||
./q920
|
agenix.nixosModules.default
|
||||||
./configuration.nix
|
microvm.nixosModules.host
|
||||||
|
./dmz
|
||||||
|
./configuration_server.nix
|
||||||
|
nixos-hardware.nixosModules.common-pc-ssd
|
||||||
|
|
||||||
home-manager.nixosModules.home-manager {
|
home-manager.nixosModules.home-manager {
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
home-manager.useUserPackages = true;
|
home-manager.useUserPackages = true;
|
||||||
home-manager.extraSpecialArgs = { inherit user; };
|
home-manager.extraSpecialArgs = { inherit user; };
|
||||||
home-manager.users.${user} = {
|
home-manager.users.${user} = {
|
||||||
imports = [(import ./home.nix)] ++ [(import ./q920/home.nix)];
|
imports = [(import ./home_server.nix)] ++ [(import ./dmz/home.nix)];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
vm = lib.nixosSystem { # VM profile
|
# vm = lib.nixosSystem { # VM profile
|
||||||
inherit system;
|
# inherit system;
|
||||||
specialArgs = { inherit inputs user location; };
|
# specialArgs = { inherit inputs user location; };
|
||||||
modules = [
|
# modules = [
|
||||||
./vm
|
# ./vm
|
||||||
./configuration.nix
|
# ./configuration.nix
|
||||||
|
#
|
||||||
home-manager.nixosModules.home-manager {
|
# home-manager.nixosModules.home-manager {
|
||||||
home-manager.useGlobalPkgs = true;
|
# home-manager.useGlobalPkgs = true;
|
||||||
home-manager.useUserPackages = true;
|
# home-manager.useUserPackages = true;
|
||||||
home-manager.extraSpecialArgs = { inherit user; };
|
# home-manager.extraSpecialArgs = { inherit user; };
|
||||||
home-manager.users.${user} = {
|
# home-manager.users.${user} = {
|
||||||
imports = [(import ./home.nix)] ++ [(import ./vm/home.nix)];
|
# imports = [(import ./home.nix)] ++ [(import ./vm/home.nix)];
|
||||||
};
|
# };
|
||||||
}
|
# }
|
||||||
];
|
# ];
|
||||||
};
|
# };
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,27 +17,32 @@
|
|||||||
# └─ default.nix
|
# └─ default.nix
|
||||||
#
|
#
|
||||||
|
|
||||||
{ config, nixpkgs, pkgs, user, ... }:
|
{ config, nixpkgs, pkgs, user, lib, nixvim, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = # For now, if applying to other system, swap files
|
imports = # For now, if applying to other system, swap files
|
||||||
[(import ./hardware-configuration.nix)] ++ # Current system hardware config @ /etc/nixos/hardware-configuration.nix
|
[(import ./hardware-configuration.nix)] ++ # Current system hardware config @ /etc/nixos/hardware-configuration.nix
|
||||||
#[(import ../../modules/desktop/hyprland/default.nix)] ++ # Window Manager
|
[(import ../../modules/wm/sway/default.nix)] ++ # Window Manager
|
||||||
[(import ../../modules/desktop/sway/default.nix)] ++ # Window Manager
|
(import ../../modules/wm/virtualisation) ++ # libvirt + Docker
|
||||||
(import ../../modules/desktop/virtualisation) ++ # Docker
|
[(import ../../modules/wm/virtualisation/kvm-amd.nix)] ++ # kvm module options
|
||||||
(import ../../modules/hardware); # Hardware devices
|
(import ../../modules/hardware); # Hardware devices
|
||||||
|
|
||||||
boot = { # Boot options
|
boot = { # Boot options
|
||||||
kernelPackages = pkgs.linuxPackages_latest;
|
kernelPackages = pkgs.linuxPackages_latest;
|
||||||
|
|
||||||
loader = { # EFI Boot
|
loader = { # EFI Boot
|
||||||
systemd-boot.enable = true;
|
systemd-boot.enable = lib.mkForce false;
|
||||||
efi = {
|
efi = {
|
||||||
canTouchEfiVariables = true;
|
canTouchEfiVariables = true;
|
||||||
efiSysMountPoint = "/boot";
|
efiSysMountPoint = "/boot";
|
||||||
};
|
};
|
||||||
timeout = 1; # Grub auto select time
|
timeout = 1; # Grub auto select time
|
||||||
};
|
};
|
||||||
|
|
||||||
|
lanzaboote = {
|
||||||
|
enable = true;
|
||||||
|
pkiBundle = "/etc/secureboot";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# hardware.sane = { # Used for scanning with Xsane
|
# hardware.sane = { # Used for scanning with Xsane
|
||||||
@@ -74,15 +79,15 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
drivers = [ pkgs.gutenprint ];
|
drivers = [ pkgs.gutenprint ];
|
||||||
};
|
};
|
||||||
avahi = { # Needed to find wireless printer
|
#avahi = { # Needed to find wireless printer
|
||||||
enable = true;
|
# enable = true;
|
||||||
nssmdns = true;
|
# nssmdns = true;
|
||||||
publish = { # Needed for detecting the scanner
|
# publish = { # Needed for detecting the scanner
|
||||||
enable = true;
|
# enable = true;
|
||||||
addresses = true;
|
# addresses = true;
|
||||||
userServices = true;
|
# userServices = true;
|
||||||
};
|
# };
|
||||||
};
|
#};
|
||||||
hardware.openrgb = {
|
hardware.openrgb = {
|
||||||
enable = true;
|
enable = true;
|
||||||
motherboard = "amd";
|
motherboard = "amd";
|
||||||
|
|||||||
@@ -14,8 +14,8 @@
|
|||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
imports =
|
||||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
[ (modulesPath + "/installer/scan/not-detected.nix")] ++
|
||||||
];
|
[( import ../../modules/hardware/backup.nix )];
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "usbhid" "sd_mod" ];
|
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "usbhid" "sd_mod" ];
|
||||||
boot.initrd.kernelModules = [ "vfio_pci" "vfio" "vfio_iommu_type1" ];
|
boot.initrd.kernelModules = [ "vfio_pci" "vfio" "vfio_iommu_type1" ];
|
||||||
@@ -60,43 +60,43 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/" =
|
fileSystems."/" =
|
||||||
{ device = "/dev/disk/by-label/NIXROOT";
|
{ device = "/dev/disk/by-id/nvme-ADATA_SX8200PNP_2J3320119186-part2";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvol=@,discard=async" ];
|
options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvol=@,discard=async" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/home" =
|
fileSystems."/home" =
|
||||||
{ device = "/dev/disk/by-label/NIXROOT";
|
{ device = "/dev/disk/by-id/nvme-ADATA_SX8200PNP_2J3320119186-part2";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvol=@home,discard=async" ];
|
options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvol=@home,discard=async" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/srv" =
|
fileSystems."/srv" =
|
||||||
{ device = "/dev/disk/by-label/NIXROOT";
|
{ device = "/dev/disk/by-id/nvme-ADATA_SX8200PNP_2J3320119186-part2";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvol=@srv,discard=async" ];
|
options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvol=@srv,discard=async" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/nix" =
|
fileSystems."/nix" =
|
||||||
{ device = "/dev/disk/by-label/NIXROOT";
|
{ device = "/dev/disk/by-id/nvme-ADATA_SX8200PNP_2J3320119186-part2";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvol=@nix,discard=async" ];
|
options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvol=@nix,discard=async" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/swap" =
|
fileSystems."/swap" =
|
||||||
{ device = "/dev/disk/by-label/NIXROOT";
|
{ device = "/dev/disk/by-id/nvme-ADATA_SX8200PNP_2J3320119186-part2";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvol=@swap,discard=async" ];
|
options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvol=@swap,discard=async" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/mnt/snapshots/root" =
|
fileSystems."/mnt/snapshots/root" =
|
||||||
{ device = "/dev/disk/by-label/NIXROOT";
|
{ device = "/dev/disk/by-id/nvme-ADATA_SX8200PNP_2J3320119186-part2";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvolid=5,discard=async" ];
|
options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvolid=5,discard=async" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/boot" =
|
fileSystems."/boot" =
|
||||||
{ device = "/dev/disk/by-label/NIXBOOT";
|
{ device = "/dev/disk/by-id/nvme-ADATA_SX8200PNP_2J3320119186-part1";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -16,8 +16,8 @@
|
|||||||
{
|
{
|
||||||
imports =
|
imports =
|
||||||
[
|
[
|
||||||
#../../modules/desktop/hyprland/home.nix # Window Manager
|
#../../modules/wm/hyprland/home.nix # Window Manager
|
||||||
../../modules/desktop/sway/home.nix # Window Manager
|
../../modules/wm/sway/home.nix # Window Manager
|
||||||
../../modules/home.nix # Window Manager
|
../../modules/home.nix # Window Manager
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -35,6 +35,8 @@
|
|||||||
pulsemixer
|
pulsemixer
|
||||||
#yubioath-flutter
|
#yubioath-flutter
|
||||||
nitrokey-app
|
nitrokey-app
|
||||||
|
kicad
|
||||||
|
yuzu-mainline
|
||||||
|
|
||||||
# Display
|
# Display
|
||||||
#light # xorg.xbacklight not supported. Other option is just use xrandr.
|
#light # xorg.xbacklight not supported. Other option is just use xrandr.
|
||||||
|
|||||||
@@ -17,12 +17,13 @@
|
|||||||
# └─ default.nix
|
# └─ default.nix
|
||||||
#
|
#
|
||||||
|
|
||||||
{ config, pkgs, user, agenix, ... }:
|
{ config, pkgs, user, agenix, impermanence, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = # For now, if applying to other system, swap files
|
imports = # For now, if applying to other system, swap files
|
||||||
[(import ./hardware-configuration.nix)] ++ # Current system hardware config @ /etc/nixos/hardware-configuration.nix
|
[(import ./hardware-configuration.nix)] ++ # Current system hardware config @ /etc/nixos/hardware-configuration.nix
|
||||||
[(import ../../modules/desktop/virtualisation/docker.nix)] ++ # Docker
|
[(import ../../modules/wm/virtualisation/docker.nix)] ++ # Docker
|
||||||
|
[(import ../../modules/wm/virtualisation/kvm-intel.nix)] ++ # Docker
|
||||||
(import ../../modules/services/dmz) ++ # Server Services
|
(import ../../modules/services/dmz) ++ # Server Services
|
||||||
(import ../../modules/hardware); # Hardware devices
|
(import ../../modules/hardware); # Hardware devices
|
||||||
|
|
||||||
|
|||||||
@@ -31,13 +31,13 @@
|
|||||||
|
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
# Terminal
|
# Terminal
|
||||||
btop # Resource Manager
|
|
||||||
pfetch # Minimal fetch
|
pfetch # Minimal fetch
|
||||||
ranger # File Manager
|
ranger # File Manager
|
||||||
gnupg # sign and authorize 2nd Fac
|
gnupg # sign and authorize 2nd Fac
|
||||||
|
|
||||||
xdg-utils
|
xdg-utils
|
||||||
steam
|
steam
|
||||||
|
wakelan
|
||||||
|
|
||||||
# dev ols
|
# dev ols
|
||||||
gcc
|
gcc
|
||||||
@@ -63,11 +63,12 @@
|
|||||||
calibre
|
calibre
|
||||||
mtpfs
|
mtpfs
|
||||||
vimiv-qt
|
vimiv-qt
|
||||||
#freecad
|
freecad
|
||||||
|
|
||||||
# Fileanagement
|
# Fileanagement
|
||||||
#okular # PDF viewer
|
#okular # PDF viewer
|
||||||
#gnome.file-roller # Archive Manager
|
#gnome.file-roller # Archive Manager
|
||||||
|
ark
|
||||||
pcmanfm # File Manager
|
pcmanfm # File Manager
|
||||||
rsync # Syncer $ rsync -r dir1/ dir2/
|
rsync # Syncer $ rsync -r dir1/ dir2/
|
||||||
unzip # Zip files
|
unzip # Zip files
|
||||||
@@ -79,7 +80,7 @@
|
|||||||
libreoffice
|
libreoffice
|
||||||
|
|
||||||
# Flatpak
|
# Flatpak
|
||||||
super-slicer-latest
|
prusa-slicer
|
||||||
#vscodium
|
#vscodium
|
||||||
(vscode-with-extensions.override {
|
(vscode-with-extensions.override {
|
||||||
vscode = vscodium;
|
vscode = vscodium;
|
||||||
@@ -111,20 +112,20 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
gtk = { # Theming
|
# gtk = { # Theming
|
||||||
enable = true;
|
# enable = true;
|
||||||
theme = {
|
# theme = {
|
||||||
name = "Dracula";
|
# name = "Dracula";
|
||||||
package = pkgs.dracula-theme;
|
# package = pkgs.dracula-theme;
|
||||||
};
|
# };
|
||||||
iconTheme = {
|
# iconTheme = {
|
||||||
name = "Papirus-Dark";
|
# name = "Papirus-Dark";
|
||||||
package = pkgs.papirus-icon-theme;
|
# package = pkgs.papirus-icon-theme;
|
||||||
};
|
# };
|
||||||
font = {
|
# font = {
|
||||||
name = "FiraCode Nerd Font"; # or FiraCode Nerd Font Mono Medium
|
# name = "Cascadia Code"; # or FiraCode Nerd Font Mono Medium
|
||||||
}; # Cursor is declared under home.pointerCursor
|
# }; # Cursor is declared under home.pointerCursor
|
||||||
};
|
# };
|
||||||
systemd.user.services.mpris-proxy = {
|
systemd.user.services.mpris-proxy = {
|
||||||
Unit.Description = "Mpris proxy";
|
Unit.Description = "Mpris proxy";
|
||||||
Unit.After = [ "network.target" "sound.target" ];
|
Unit.After = [ "network.target" "sound.target" ];
|
||||||
|
|||||||
@@ -31,7 +31,6 @@
|
|||||||
|
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
# Terminal
|
# Terminal
|
||||||
btop # Resource Manager
|
|
||||||
pfetch # Minimal fetch
|
pfetch # Minimal fetch
|
||||||
ranger # File Manager
|
ranger # File Manager
|
||||||
gnupg # sign and authorize 2nd Fac
|
gnupg # sign and authorize 2nd Fac
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
{
|
{
|
||||||
imports = # For now, if applying to other ssystem, swap files
|
imports = # For now, if applying to other ssystem, swap files
|
||||||
[(import ./hardware-configuration.nix)] ++ # Current system hardware config @ /etc/nixos/hardware-configuration.nix
|
[(import ./hardware-configuration.nix)] ++ # Current system hardware config @ /etc/nixos/hardware-configuration.nix
|
||||||
#(import ../../modules/desktop/virtualisation) ++ # Docker
|
#(import ../../modules/wm/virtualisation) ++ # Docker
|
||||||
(import ../../modules/services/nas) ++ # Server Services
|
(import ../../modules/services/nas) ++ # Server Services
|
||||||
(import ../../modules/hardware); # Hardware devices
|
(import ../../modules/hardware); # Hardware devices
|
||||||
|
|
||||||
|
|||||||
@@ -14,8 +14,8 @@
|
|||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
imports =
|
||||||
[ (modulesPath + "/profiles/qemu-guest.nix")
|
[(modulesPath + "/profiles/qemu-guest.nix")] ++
|
||||||
];
|
[( import ../../modules/hardware/backup.nix )];
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "uhci_hcd" "ehci_pci" "ahci" "virtio_pci" "virtio_scsi" "sr_mod" "virtio_blk" ];
|
boot.initrd.availableKernelModules = [ "uhci_hcd" "ehci_pci" "ahci" "virtio_pci" "virtio_scsi" "sr_mod" "virtio_blk" ];
|
||||||
boot.initrd.kernelModules = [ ];
|
boot.initrd.kernelModules = [ ];
|
||||||
@@ -25,7 +25,11 @@
|
|||||||
};
|
};
|
||||||
boot.initrd.luks.devices = {
|
boot.initrd.luks.devices = {
|
||||||
NAS-RAID1 = {
|
NAS-RAID1 = {
|
||||||
device = "/dev/disk/by-uuid/57e6446d-faca-4b67-9063-e8d9afb80088";
|
device = "/dev/disk/by-uuid/78c74410-c840-49b0-8a29-456d60c38217";
|
||||||
|
keyFile = "/root/NASKeyfile";
|
||||||
|
};
|
||||||
|
NAS-RAID1_2 = {
|
||||||
|
device = "/dev/disk/by-uuid/dda6e698-4f0a-4d71-a06c-656b87374ed7";
|
||||||
keyFile = "/root/NASKeyfile";
|
keyFile = "/root/NASKeyfile";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -152,13 +156,13 @@
|
|||||||
fileSystems."/mnt/snapshots/Pluto" =
|
fileSystems."/mnt/snapshots/Pluto" =
|
||||||
{ device = "/dev/disk/by-label/NAS-RAID";
|
{ device = "/dev/disk/by-label/NAS-RAID";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "compress=zstd,space_cache=v2,noatime,subvolid=5" ];
|
options = [ "compress=zstd:8,noatime,subvolid=5" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/mnt/Pluto" =
|
fileSystems."/mnt/Pluto" =
|
||||||
{ device = "/dev/disk/by-label/NAS-RAID";
|
{ device = "/dev/disk/by-label/NAS-RAID";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "compress=zstd,space_cache=v2,noatime,subvol=@" ];
|
options = [ "compress=zstd:8,noatime,subvol=@" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/mnt/Mars" =
|
fileSystems."/mnt/Mars" =
|
||||||
|
|||||||
112
hosts/kabtop/default.nix
Normal file
112
hosts/kabtop/default.nix
Normal file
@@ -0,0 +1,112 @@
|
|||||||
|
#
|
||||||
|
# Specific system configuration settings for desktop
|
||||||
|
#
|
||||||
|
# flake.nix
|
||||||
|
# ├─ ./hosts
|
||||||
|
# │ └─ ./laptop
|
||||||
|
# │ ├─ default.nix *
|
||||||
|
# │ └─ hardware-configuration.nix
|
||||||
|
# └─ ./modules
|
||||||
|
# ├─ ./desktop
|
||||||
|
# │ └─ ./hyprland
|
||||||
|
# │ └─ hyprland.nix
|
||||||
|
# ├─ ./modules
|
||||||
|
# │ └─ ./programs
|
||||||
|
# │ └─ waybar.nix
|
||||||
|
# └─ ./hardware
|
||||||
|
# └─ default.nix
|
||||||
|
#
|
||||||
|
|
||||||
|
{ config, pkgs, user, agenix, impermanence, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = # For now, if applying to other system, swap files
|
||||||
|
[(import ./hardware-configuration.nix)] ++ # Current system hardware config @ /etc/nixos/hardware-configuration.nix
|
||||||
|
[(import ../../modules/wm/virtualisation/docker.nix)] ++ # Docker
|
||||||
|
[(import ../../modules/wm/virtualisation/kvm-amd.nix)] ++ # kvm module options
|
||||||
|
(import ../../modules/services/server) ++ # Server Services
|
||||||
|
(import ../../modules/hardware); # Hardware devices
|
||||||
|
|
||||||
|
boot = { # Boot options
|
||||||
|
kernelPackages = pkgs.linuxPackages_latest;
|
||||||
|
|
||||||
|
loader = { # EFI Boot
|
||||||
|
grub = {
|
||||||
|
enable = true;
|
||||||
|
device = "/dev/sda";
|
||||||
|
};
|
||||||
|
timeout = 1; # Grub auto select time
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
environment = {
|
||||||
|
etc = {
|
||||||
|
"fail2ban/filter.d/open-webui.conf" = {
|
||||||
|
source = ../../modules/services/server/fail2ban/filter/open-webui.conf;
|
||||||
|
mode = "0444";
|
||||||
|
};
|
||||||
|
"fail2ban/filter.d/gitea.conf" = {
|
||||||
|
source = ../../modules/services/server/fail2ban/filter/gitea.conf;
|
||||||
|
mode = "0444";
|
||||||
|
};
|
||||||
|
"fail2ban/filter.d/nextcloud.conf" = {
|
||||||
|
source = ../../modules/services/server/fail2ban/filter/nextcloud.conf;
|
||||||
|
mode = "0444";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs = { # No xbacklight, this is the alterantive
|
||||||
|
zsh.enable = true;
|
||||||
|
ssh.startAgent = false;
|
||||||
|
gnupg.agent = {
|
||||||
|
enable = true;
|
||||||
|
enableSSHSupport = true;
|
||||||
|
pinentryFlavor = "curses";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services = {
|
||||||
|
#auto-cpufreq.enable = true;
|
||||||
|
qemuGuest.enable = true;
|
||||||
|
avahi = { # Needed to find wireless printer
|
||||||
|
enable = true;
|
||||||
|
nssmdns = true;
|
||||||
|
publish = { # Needed for detecting the scanner
|
||||||
|
enable = true;
|
||||||
|
addresses = true;
|
||||||
|
userServices = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
fail2ban = {
|
||||||
|
enable = true;
|
||||||
|
maxretry = 5;
|
||||||
|
jails.DEFAULT.settings = {
|
||||||
|
findtime = "15m";
|
||||||
|
};
|
||||||
|
jails = {
|
||||||
|
open-webui = ''
|
||||||
|
enabled = true
|
||||||
|
filter = open-webui
|
||||||
|
backend = systemd
|
||||||
|
action = iptables-allports
|
||||||
|
'';
|
||||||
|
gitea = ''
|
||||||
|
enabled = true
|
||||||
|
filter = gitea
|
||||||
|
backend = systemd
|
||||||
|
action = iptables-allports
|
||||||
|
'';
|
||||||
|
nextcloud = ''
|
||||||
|
backend = auto
|
||||||
|
enabled = true
|
||||||
|
filter = nextcloud
|
||||||
|
logpath = /var/lib/nextcloud/data/nextcloud.log
|
||||||
|
action = iptables-allports
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
144
hosts/kabtop/hardware-configuration.nix
Normal file
144
hosts/kabtop/hardware-configuration.nix
Normal file
@@ -0,0 +1,144 @@
|
|||||||
|
#
|
||||||
|
# Hardware settings for Teclast F5 10" Laptop
|
||||||
|
# NixOS @ sda2
|
||||||
|
#
|
||||||
|
# flake.nix
|
||||||
|
# └─ ./hosts
|
||||||
|
# └─ ./laptop
|
||||||
|
# └─ hardware-configuration.nix *
|
||||||
|
#
|
||||||
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
|
# and may be overwritten by future invocations. Please make changes
|
||||||
|
# to /etc/nixos/configuration.nix instead.
|
||||||
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
[ (modulesPath + "/profiles/qemu-guest.nix")
|
||||||
|
];
|
||||||
|
|
||||||
|
boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "ahci" "sd_mod" "sr_mod" ];
|
||||||
|
boot.initrd.kernelModules = [ "vfio_pci" "vfio" "vfio_iommu_type1" ];
|
||||||
|
boot.kernelModules = [ "kvm-amd" ];
|
||||||
|
boot.extraModulePackages = [ ];
|
||||||
|
boot.tmp.useTmpfs = false;
|
||||||
|
boot.tmp.cleanOnBoot = true;
|
||||||
|
zramSwap.enable = true;
|
||||||
|
|
||||||
|
services.btrfs.autoScrub = {
|
||||||
|
enable = true;
|
||||||
|
interval = "monthly";
|
||||||
|
fileSystems = [
|
||||||
|
"/"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
services.btrbk = {
|
||||||
|
instances = {
|
||||||
|
hf = {
|
||||||
|
onCalendar = "hourly";
|
||||||
|
settings = {
|
||||||
|
incremental = "yes";
|
||||||
|
snapshot_create = "ondemand";
|
||||||
|
snapshot_dir = "@snapshots";
|
||||||
|
timestamp_format = "long";
|
||||||
|
|
||||||
|
snapshot_preserve = "2m 2w 5d 5h";
|
||||||
|
snapshot_preserve_min = "latest";
|
||||||
|
|
||||||
|
volume = {
|
||||||
|
"/mnt/snapshots/root" = {
|
||||||
|
snapshot_create = "always";
|
||||||
|
subvolume = {
|
||||||
|
"@" = {};
|
||||||
|
"@home" = {};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/" =
|
||||||
|
{ device = "/dev/disk/by-label/NIXROOT";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvol=@,discard=async" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/home" =
|
||||||
|
{ device = "/dev/disk/by-label/NIXROOT";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvol=@home,discard=async" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/srv" =
|
||||||
|
{ device = "/dev/disk/by-label/NIXROOT";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvol=@srv,discard=async" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/var" =
|
||||||
|
{ device = "/dev/disk/by-label/NIXROOT";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "space_cache=v2,ssd,noatime,subvol=@var,discard=async" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/nix" =
|
||||||
|
{ device = "/dev/disk/by-label/NIXROOT";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvol=@nix,discard=async" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/swap" =
|
||||||
|
{ device = "/dev/disk/by-label/NIXROOT";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvol=@swap,discard=async" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/mnt/snapshots/root" =
|
||||||
|
{ device = "/dev/disk/by-label/NIXROOT";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvolid=5,discard=async" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#swapDevices = [ { device = "/swap/swapfile"; } ];
|
||||||
|
swapDevices = [ ];
|
||||||
|
|
||||||
|
networking = {
|
||||||
|
useDHCP = false; # Deprecated
|
||||||
|
hostName = "kabtop";
|
||||||
|
domain = "kabtop.de";
|
||||||
|
networkmanager = {
|
||||||
|
enable = false;
|
||||||
|
};
|
||||||
|
interfaces = {
|
||||||
|
ens18 = {
|
||||||
|
useDHCP = false; # For versatility sake, manually edit IP on nm-applet.
|
||||||
|
ipv4.addresses = [ {
|
||||||
|
address = "37.44.215.182";
|
||||||
|
prefixLength = 24;
|
||||||
|
} ];
|
||||||
|
ipv6.addresses = [ {
|
||||||
|
address = "2a13:7e80:0:ef::2";
|
||||||
|
prefixLength = 64;
|
||||||
|
} ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
defaultGateway = "37.44.215.1";
|
||||||
|
defaultGateway6 = {
|
||||||
|
address = "fe80::1";
|
||||||
|
interface = "ens18";
|
||||||
|
};
|
||||||
|
|
||||||
|
nameservers = [ "9.9.9.9" "2620:fe::fe" ];
|
||||||
|
firewall = {
|
||||||
|
enable = true;
|
||||||
|
allowedUDPPorts = [ ];
|
||||||
|
allowedTCPPorts = [ 80 443 ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
}
|
||||||
@@ -16,19 +16,18 @@
|
|||||||
{
|
{
|
||||||
imports =
|
imports =
|
||||||
[
|
[
|
||||||
../../modules/desktop/hyprland/home.nix # Window Manager
|
../../modules/home.nix # Window Manager
|
||||||
];
|
];
|
||||||
|
|
||||||
home = { # Specific packages for laptop
|
home = { # Specific packages for laptop
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
# Applications
|
# Applications
|
||||||
libreoffice # Office packages
|
|
||||||
|
|
||||||
# Display
|
# Display
|
||||||
#light # xorg.xbacklight not supported. Other option is just use xrandr.
|
#light # xorg.xbacklight not supported. Other option is just use xrandr.
|
||||||
|
|
||||||
# Power Management
|
# Power Management
|
||||||
auto-cpufreq # Power management
|
#auto-cpufreq # Power management
|
||||||
#tlp # Power management
|
#tlp # Power management
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
@@ -37,14 +36,4 @@
|
|||||||
alacritty.settings.font.size = 11;
|
alacritty.settings.font.size = 11;
|
||||||
};
|
};
|
||||||
|
|
||||||
services = { # Applets
|
|
||||||
blueman-applet.enable = true; # Bluetooth
|
|
||||||
network-manager-applet.enable = true; # Network
|
|
||||||
# cbatticon = {
|
|
||||||
# enable = true;
|
|
||||||
# criticalLevelPercent = 10;
|
|
||||||
# lowLevelPercent = 20;
|
|
||||||
# iconType = null;
|
|
||||||
# };
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
@@ -22,9 +22,10 @@
|
|||||||
{
|
{
|
||||||
imports = # For now, if applying to other system, swap files
|
imports = # For now, if applying to other system, swap files
|
||||||
[(import ./hardware-configuration.nix)] ++ # Current system hardware config @ /etc/nixos/hardware-configuration.nix
|
[(import ./hardware-configuration.nix)] ++ # Current system hardware config @ /etc/nixos/hardware-configuration.nix
|
||||||
#[(import ../../modules/desktop/hyprland/default.nix)] ++ # Window Manager
|
#[(import ../../modules/wm/hyprland/default.nix)] ++ # Window Manager
|
||||||
[(import ../../modules/desktop/sway/default.nix)] ++ # Window Manager
|
[(import ../../modules/wm/sway/default.nix)] ++ # Window Manager
|
||||||
[(import ../../modules/desktop/virtualisation/docker.nix)] ++ # Docker
|
[(import ../../modules/wm/virtualisation/docker.nix)] ++ # Docker
|
||||||
|
[(import ../../modules/wm/virtualisation/kvm-intel.nix)] ++ # kvm module options
|
||||||
(import ../../modules/hardware); # Hardware devices
|
(import ../../modules/hardware); # Hardware devices
|
||||||
|
|
||||||
boot = { # Boot options
|
boot = { # Boot options
|
||||||
@@ -57,6 +58,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
programs = { # No xbacklight, this is the alterantive
|
programs = { # No xbacklight, this is the alterantive
|
||||||
|
zsh.enable = true;
|
||||||
dconf.enable = true;
|
dconf.enable = true;
|
||||||
light.enable = true;
|
light.enable = true;
|
||||||
ssh.startAgent = false;
|
ssh.startAgent = false;
|
||||||
|
|||||||
@@ -17,24 +17,29 @@
|
|||||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "usb_storage" "usbhid" "sd_mod" "sdhci_pci" "rtsx_usb_sdmmc" ];
|
boot = {
|
||||||
boot.initrd.kernelModules = [ "i915" "kvm_intel" ];
|
initrd = {
|
||||||
boot.kernelModules = [ "kvm-intel" ];
|
availableKernelModules = [ "ahci" "xhci_pci" "usb_storage" "usbhid" "sd_mod" "sdhci_pci" "rtsx_usb_sdmmc" ];
|
||||||
boot.extraModprobeConfig = ''
|
kernelModules = [ "i915" "kvm_intel" ];
|
||||||
options i915 enable_guc=3 enable_fbc=1 fastboot=1
|
systemd.enable = true;
|
||||||
'';
|
luks = {
|
||||||
boot.kernelParams = [ "mitigations=off" "luks.options=fido2-device=auto" ];
|
devices."root" = {
|
||||||
boot.tmp.useTmpfs = true;
|
device = "/dev/disk/by-uuid/75eccc7f-30b0-4fe8-8f82-90edaf284cd5";
|
||||||
zramSwap.enable = true;
|
allowDiscards = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
boot.initrd.luks = {
|
kernelModules = [ "kvm-intel" ];
|
||||||
fido2Support = true;
|
extraModprobeConfig = ''
|
||||||
devices."root" = {
|
options i915 enable_guc=3 enable_fbc=1 fastboot=1
|
||||||
device = "/dev/disk/by-uuid/75eccc7f-30b0-4fe8-8f82-90edaf284cd5";
|
'';
|
||||||
allowDiscards = true;
|
kernelParams = [ "mitigations=off" "luks.options=fido2-device=auto" ];
|
||||||
};
|
tmp.useTmpfs = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
zramSwap.enable = true;
|
||||||
|
|
||||||
services.btrfs.autoScrub = {
|
services.btrfs.autoScrub = {
|
||||||
enable = true;
|
enable = true;
|
||||||
interval = "monthly";
|
interval = "monthly";
|
||||||
|
|||||||
@@ -16,8 +16,8 @@
|
|||||||
{
|
{
|
||||||
imports =
|
imports =
|
||||||
[
|
[
|
||||||
#../../modules/desktop/hyprland/home.nix # Window Manager
|
#../../modules/wm/hyprland/home.nix # Window Manager
|
||||||
../../modules/desktop/sway/home.nix # Window Manager
|
../../modules/wm/sway/home.nix # Window Manager
|
||||||
../../modules/home.nix # Window Manager
|
../../modules/home.nix # Window Manager
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
{
|
{
|
||||||
imports = # For now, if applying to other system, swap files
|
imports = # For now, if applying to other system, swap files
|
||||||
[(import ./hardware-configuration.nix)] ++ # Current system hardware config @ /etc/nixos/hardware-configuration.nix
|
[(import ./hardware-configuration.nix)] ++ # Current system hardware config @ /etc/nixos/hardware-configuration.nix
|
||||||
(import ../../modules/desktop/virtualisation) ++ # Docker
|
(import ../../modules/wm/virtualisation) ++ # Docker
|
||||||
(import ../../modules/services/nas) ++ # Server Services
|
(import ../../modules/services/nas) ++ # Server Services
|
||||||
(import ../../modules/hardware); # Hardware devices
|
(import ../../modules/hardware); # Hardware devices
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
{
|
{
|
||||||
imports = # For now, if applying to other system, swap files
|
imports = # For now, if applying to other system, swap files
|
||||||
[(import ./hardware-configuration.nix)] ++ # Current system hardware config @ /etc/nixos/hardware-configuration.nix
|
[(import ./hardware-configuration.nix)] ++ # Current system hardware config @ /etc/nixos/hardware-configuration.nix
|
||||||
(import ../../modules/desktop/virtualisation) ++ # Docker
|
#[(import ../../modules/wm/virtualisation/docker.nix)] ++ # Docker
|
||||||
(import ../../modules/services/nasbackup) ++ # Server Services
|
(import ../../modules/services/nasbackup) ++ # Server Services
|
||||||
(import ../../modules/hardware); # Hardware devices
|
(import ../../modules/hardware); # Hardware devices
|
||||||
|
|
||||||
@@ -50,7 +50,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
#auto-cpufreq.enable = true;
|
qemuGuest.enable = true;
|
||||||
avahi = { # Needed to find wireless printer
|
avahi = { # Needed to find wireless printer
|
||||||
enable = true;
|
enable = true;
|
||||||
nssmdns = true;
|
nssmdns = true;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#
|
|
||||||
# Hardware settings for Teclast F5 10" Laptop
|
# Hardware settings for Teclast F5 10" Laptop
|
||||||
# NixOS @ sda2
|
# NixOS @ sda2
|
||||||
#
|
#
|
||||||
@@ -19,20 +19,22 @@
|
|||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "usbhid" "sd_mod" ];
|
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "usbhid" "sd_mod" ];
|
||||||
boot.initrd.kernelModules = [ "vfio_pci" "vfio" "vfio_iommu_type1" ];
|
boot.initrd.kernelModules = [ "vfio_pci" "vfio" "vfio_iommu_type1" ];
|
||||||
# boot.initrd.secrets = {
|
boot.initrd.secrets = {
|
||||||
# "/root/NASKeyfile" =
|
"/root/NASKeyfile" =
|
||||||
# /root/NASKeyfile;
|
/root/NASKeyfile;
|
||||||
# };
|
};
|
||||||
# boot.initrd.luks.devices = {
|
boot.initrd.luks.devices = {
|
||||||
# NAS-RAID1 = {
|
NAS-RAID1 = {
|
||||||
# device = "/dev/disk/by-uuid/57e6446d-faca-4b67-9063-e8d9afb80088";
|
device = "/dev/disk/by-uuid/57e6446d-faca-4b67-9063-e8d9afb80088";
|
||||||
# keyFile = "/root/NASKeyfile";
|
keyFile = "/root/NASKeyfile";
|
||||||
# };
|
bypassWorkqueues = true;
|
||||||
# NAS-RAID2 = {
|
};
|
||||||
# device = "/dev/disk/by-uuid/b9edc489-ac37-4b28-981d-442722df7ae2";
|
NAS-RAID2 = {
|
||||||
# keyFile = "/root/NASKeyfile";
|
device = "/dev/disk/by-uuid/b9edc489-ac37-4b28-981d-442722df7ae2";
|
||||||
# };
|
keyFile = "/root/NASKeyfile";
|
||||||
# };
|
bypassWorkqueues = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
boot.kernelModules = [ "kvm-intel" ];
|
boot.kernelModules = [ "kvm-intel" ];
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [ ];
|
||||||
boot.tmp.useTmpfs = false;
|
boot.tmp.useTmpfs = false;
|
||||||
@@ -44,11 +46,12 @@
|
|||||||
interval = "monthly";
|
interval = "monthly";
|
||||||
fileSystems = [
|
fileSystems = [
|
||||||
"/"
|
"/"
|
||||||
# "/mnt/Pluto"
|
"/mnt/nas"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
services.btrbk = {
|
services.btrbk = {
|
||||||
|
extraPackages = [ pkgs.lz4 ];
|
||||||
instances = {
|
instances = {
|
||||||
hf = {
|
hf = {
|
||||||
onCalendar = "hourly";
|
onCalendar = "hourly";
|
||||||
@@ -72,6 +75,44 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
bak = {
|
||||||
|
onCalendar = "weekly";
|
||||||
|
settings = {
|
||||||
|
stream_compress = "lz4";
|
||||||
|
incremental = "yes";
|
||||||
|
snapshot_create = "no";
|
||||||
|
snapshot_dir = "@snapshots";
|
||||||
|
timestamp_format = "long";
|
||||||
|
|
||||||
|
snapshot_preserve_min = "all";
|
||||||
|
target_preserve_min = "no";
|
||||||
|
target_preserve = "4w 2m";
|
||||||
|
|
||||||
|
ssh_identity = "/etc/btrbk/ssh/id_ed25519_btrbk";
|
||||||
|
ssh_user = "btrbk";
|
||||||
|
|
||||||
|
volume = {
|
||||||
|
"ssh://jupiter.home.opel-online.de/mnt/snapshots/Mars" = {
|
||||||
|
target = "/mnt/nas/Backups/Mars";
|
||||||
|
subvolume = {
|
||||||
|
"@nas" = {};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
volume = {
|
||||||
|
"ssh://jupiter.home.opel-online.de/mnt/snapshots/Pluto" = {
|
||||||
|
target = "/mnt/nas/Backups/Pluto";
|
||||||
|
subvolume = {
|
||||||
|
"@/Games" = {};
|
||||||
|
"@/IT" = {};
|
||||||
|
"@/Media" = {};
|
||||||
|
"@/Pictures" = {};
|
||||||
|
"@/Rest" = {};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
# lf = {
|
# lf = {
|
||||||
# onCalendar = "daily";
|
# onCalendar = "daily";
|
||||||
# settings = {
|
# settings = {
|
||||||
@@ -99,8 +140,8 @@
|
|||||||
# };
|
# };
|
||||||
# };
|
# };
|
||||||
# };
|
# };
|
||||||
# };
|
};
|
||||||
# };
|
};
|
||||||
|
|
||||||
fileSystems."/" =
|
fileSystems."/" =
|
||||||
{ device = "/dev/disk/by-label/NIXROOT";
|
{ device = "/dev/disk/by-label/NIXROOT";
|
||||||
@@ -132,24 +173,24 @@
|
|||||||
options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvol=@swap,discard=async" ];
|
options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvol=@swap,discard=async" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
# fileSystems."/mnt/snapshots/root" =
|
fileSystems."/mnt/snapshots/root" =
|
||||||
# { device = "/dev/disk/by-label/NIXROOT";
|
{ device = "/dev/disk/by-label/NIXROOT";
|
||||||
# fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
# options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvolid=5,discard=async" ];
|
options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvolid=5,discard=async" ];
|
||||||
# };
|
};
|
||||||
#
|
|
||||||
# fileSystems."/mnt/snapshots/Pluto" =
|
# fileSystems."/mnt/snapshots/Pluto" =
|
||||||
# { device = "/dev/disk/by-label/NAS-RAID";
|
# { device = "/dev/disk/by-label/NAS-RAID";
|
||||||
# fsType = "btrfs";
|
# fsType = "btrfs";
|
||||||
# options = [ "compress=zstd,space_cache=v2,noatime,subvolid=5" ];
|
# options = [ "compress=zstd,space_cache=v2,noatime,subvolid=5" ];
|
||||||
# };
|
# };
|
||||||
#
|
#
|
||||||
# fileSystems."/mnt/Pluto" =
|
fileSystems."/mnt/nas" =
|
||||||
# { device = "/dev/disk/by-label/NAS-RAID";
|
{ device = "/dev/disk/by-uuid/70523c79-ef5c-40f2-8782-60fc86bb445b";
|
||||||
# fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
# options = [ "compress=zstd,space_cache=v2,noatime,subvol=@" ];
|
options = [ "compress=zstd:9,space_cache=v2,noatime,subvol=@nasbak" ];
|
||||||
# };
|
};
|
||||||
#
|
|
||||||
fileSystems."/boot" =
|
fileSystems."/boot" =
|
||||||
{ device = "/dev/disk/by-label/NIXBOOT";
|
{ device = "/dev/disk/by-label/NIXBOOT";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
|
|||||||
@@ -1,111 +0,0 @@
|
|||||||
#
|
|
||||||
# Specific system configuration settings for desktop
|
|
||||||
#
|
|
||||||
# flake.nix
|
|
||||||
# ├─ ./hosts
|
|
||||||
# │ └─ ./laptop
|
|
||||||
# │ ├─ default.nix *
|
|
||||||
# │ └─ hardware-configuration.nix
|
|
||||||
# └─ ./modules
|
|
||||||
# ├─ ./desktop
|
|
||||||
# │ └─ ./hyprland
|
|
||||||
# │ └─ hyprland.nix
|
|
||||||
# ├─ ./modules
|
|
||||||
# │ └─ ./programs
|
|
||||||
# │ └─ waybar.nix
|
|
||||||
# └─ ./hardware
|
|
||||||
# └─ default.nix
|
|
||||||
#
|
|
||||||
|
|
||||||
{ config, pkgs, user, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = # For now, if applying to other system, swap files
|
|
||||||
[(import ./hardware-configuration.nix)] ++ # Current system hardware config @ /etc/nixos/hardware-configuration.nix
|
|
||||||
[(import ../../modules/desktop/hyprland/default.nix)] ++ # Window Manager
|
|
||||||
[(import ../../modules/desktop/virtualisation/docker.nix)]; # ++ # Docker
|
|
||||||
#(import ../../modules/hardware); # Hardware devices
|
|
||||||
|
|
||||||
boot = { # Boot options
|
|
||||||
kernelPackages = pkgs.linuxPackages_latest;
|
|
||||||
|
|
||||||
loader = { # EFI Boot
|
|
||||||
systemd-boot.enable = true;
|
|
||||||
efi = {
|
|
||||||
canTouchEfiVariables = true;
|
|
||||||
efiSysMountPoint = "/boot";
|
|
||||||
};
|
|
||||||
timeout = 1; # Grub auto select time
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# hardware.sane = { # Used for scanning with Xsane
|
|
||||||
# enable = false;
|
|
||||||
# extraBackends = [ pkgs.sane-airscan ];
|
|
||||||
# };
|
|
||||||
|
|
||||||
# environment = {
|
|
||||||
# systemPackages = with pkgs; [
|
|
||||||
# simple-scan
|
|
||||||
# ];
|
|
||||||
# };
|
|
||||||
|
|
||||||
programs = { # No xbacklight, this is the alterantive
|
|
||||||
# dconf.enable = true;
|
|
||||||
# light.enable = true;
|
|
||||||
ssh.startAgent = false;
|
|
||||||
gnupg.agent = {
|
|
||||||
enable = true;
|
|
||||||
enableSSHSupport = true;
|
|
||||||
pinentryFlavor = "curses";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services = {
|
|
||||||
# tlp.enable = true; # TLP and auto-cpufreq for power management
|
|
||||||
#logind.lidSwitch = "ignore"; # Laptop does not go to sleep when lid is closed
|
|
||||||
auto-cpufreq.enable = true;
|
|
||||||
blueman.enable = true;
|
|
||||||
pcscd.enable = true;
|
|
||||||
udev.packages = [
|
|
||||||
pkgs.nitrokey-udev-rules
|
|
||||||
];
|
|
||||||
printing = { # Printing and drivers for TS5300
|
|
||||||
enable = true;
|
|
||||||
drivers = [ pkgs.gutenprint ];
|
|
||||||
};
|
|
||||||
avahi = { # Needed to find wireless printer
|
|
||||||
enable = true;
|
|
||||||
nssmdns = true;
|
|
||||||
publish = { # Needed for detecting the scanner
|
|
||||||
enable = true;
|
|
||||||
addresses = true;
|
|
||||||
userServices = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
#xserver = {
|
|
||||||
# libinput = { # Trackpad support & gestures
|
|
||||||
# touchpad = {
|
|
||||||
# tapping = true;
|
|
||||||
# scrollMethod = "twofinger";
|
|
||||||
# naturalScrolling = true; # The correct way of scrolling
|
|
||||||
# accelProfile = "adaptive"; # Speed settings
|
|
||||||
# #accelSpeed = "-0.5";
|
|
||||||
# disableWhileTyping = true;
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
# resolutions = [
|
|
||||||
# { x = 1600; y = 920; }
|
|
||||||
# { x = 1280; y = 720; }
|
|
||||||
# { x = 1920; y = 1080; }
|
|
||||||
# ];
|
|
||||||
#};
|
|
||||||
};
|
|
||||||
|
|
||||||
#temporary bluetooth fix
|
|
||||||
# systemd.tmpfiles.rules = [
|
|
||||||
# "d /var/lib/bluetooth 700 root root - -"
|
|
||||||
# ];
|
|
||||||
# systemd.targets."bluetooth".after = ["systemd-tmpfiles-setup.service"];
|
|
||||||
}
|
|
||||||
@@ -1,82 +0,0 @@
|
|||||||
#
|
|
||||||
# Hardware settings for Teclast F5 10" Laptop
|
|
||||||
# NixOS @ sda2
|
|
||||||
#
|
|
||||||
# flake.nix
|
|
||||||
# └─ ./hosts
|
|
||||||
# └─ ./laptop
|
|
||||||
# └─ hardware-configuration.nix *
|
|
||||||
#
|
|
||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
|
||||||
# and may be overwritten by future invocations. Please make changes
|
|
||||||
# to /etc/nixos/configuration.nix instead.
|
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports =
|
|
||||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
|
||||||
];
|
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" "rtsx_usb_sdmmc" ];
|
|
||||||
boot.initrd.kernelModules = [ ];
|
|
||||||
boot.kernelModules = [ "kvm-intel" ];
|
|
||||||
boot.extraModulePackages = [ ];
|
|
||||||
|
|
||||||
fileSystems."/" =
|
|
||||||
{ device = "/dev/disk/by-label/ROOT";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvol=@" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/home" =
|
|
||||||
{ device = "/dev/disk/by-label/ROOT";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvol=@home" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/srv" =
|
|
||||||
{ device = "/dev/disk/by-label/ROOT";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvol=@srv" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/boot" =
|
|
||||||
{ device = "/dev/disk/by-label/BOOT";
|
|
||||||
fsType = "vfat";
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices = [ ];
|
|
||||||
|
|
||||||
networking = {
|
|
||||||
useDHCP = false; # Deprecated
|
|
||||||
hostName = "q920";
|
|
||||||
networkmanager.enable = true;
|
|
||||||
interfaces = {
|
|
||||||
enp0s25 = {
|
|
||||||
useDHCP = true; # For versatility sake, manually edit IP on nm-applet.
|
|
||||||
#ipv4.addresses = [ {
|
|
||||||
# address = "192.168.0.51";
|
|
||||||
# prefixLength = 24;
|
|
||||||
#} ];
|
|
||||||
};
|
|
||||||
# wlo1 = {
|
|
||||||
# useDHCP = true;
|
|
||||||
# #ipv4.addresses = [ {
|
|
||||||
# # address = "192.168.0.51";
|
|
||||||
# # prefixLength = 24;
|
|
||||||
# #} ];
|
|
||||||
# };
|
|
||||||
};
|
|
||||||
#defaultGateway = "192.168.0.1";
|
|
||||||
#nameservers = [ "192.168.0.4" ];
|
|
||||||
#firewall = {
|
|
||||||
# enable = false;
|
|
||||||
# #allowedUDPPorts = [ 53 67 ];
|
|
||||||
# #allowedTCPPorts = [ 53 80 443 9443 ];
|
|
||||||
#};
|
|
||||||
};
|
|
||||||
|
|
||||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
||||||
# high-resolution display
|
|
||||||
hardware.video.hidpi.enable = lib.mkDefault true;
|
|
||||||
}
|
|
||||||
@@ -17,12 +17,12 @@
|
|||||||
# └─ default.nix
|
# └─ default.nix
|
||||||
#
|
#
|
||||||
|
|
||||||
{ config, pkgs, user, ... }:
|
{ config, pkgs, user, agenix, impermanence, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = # For now, if applying to other system, swap files
|
imports = # For now, if applying to other system, swap files
|
||||||
[(import ./hardware-configuration.nix)] ++ # Current system hardware config @ /etc/nixos/hardware-configuration.nix
|
[(import ./hardware-configuration.nix)] ++ # Current system hardware config @ /etc/nixos/hardware-configuration.nix
|
||||||
[(import ../../modules/desktop/virtualisation/docker.nix)] ++ # Docker
|
[(import ../../modules/wm/virtualisation/docker.nix)] ++ # Docker
|
||||||
(import ../../modules/services/server) ++ # Server Services
|
(import ../../modules/services/server) ++ # Server Services
|
||||||
(import ../../modules/hardware); # Hardware devices
|
(import ../../modules/hardware); # Hardware devices
|
||||||
|
|
||||||
@@ -63,6 +63,7 @@
|
|||||||
|
|
||||||
services = {
|
services = {
|
||||||
#auto-cpufreq.enable = true;
|
#auto-cpufreq.enable = true;
|
||||||
|
qemuGuest.enable = true;
|
||||||
avahi = { # Needed to find wireless printer
|
avahi = { # Needed to find wireless printer
|
||||||
enable = true;
|
enable = true;
|
||||||
nssmdns = true;
|
nssmdns = true;
|
||||||
@@ -77,7 +78,6 @@
|
|||||||
maxretry = 5;
|
maxretry = 5;
|
||||||
jails.DEFAULT.settings = {
|
jails.DEFAULT.settings = {
|
||||||
findtime = "15m";
|
findtime = "15m";
|
||||||
bantime = "1h";
|
|
||||||
};
|
};
|
||||||
jails = {
|
jails = {
|
||||||
gitea = ''
|
gitea = ''
|
||||||
|
|||||||
@@ -134,5 +134,5 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
#hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,27 +17,31 @@
|
|||||||
# └─ default.nix
|
# └─ default.nix
|
||||||
#
|
#
|
||||||
|
|
||||||
{ config, pkgs, user, jovian-nixos, ... }:
|
{ config, pkgs, user, jovian-nixos, lib, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = # For now, if applying to other system, swap files
|
imports = # For now, if applying to other system, swap files
|
||||||
[(import ./hardware-configuration.nix)] ++ # Current system hardware config @ /etc/nixos/hardware-configuration.nix
|
[(import ./hardware-configuration.nix)] ++ # Current system hardware config @ /etc/nixos/hardware-configuration.nix
|
||||||
[(import ../../modules/desktop/steam/default.nix)] ++ # Window Manager
|
[(import ../../modules/wm/steam/default.nix)] ++ # jovian steam
|
||||||
[(import ../../modules/desktop/kde/default.nix)] ++ # Window Manager
|
[(import ../../modules/wm/kde/default.nix)] ++ # Window Manager
|
||||||
[(import ../../modules/desktop/virtualisation/docker.nix)] ++ # Docker
|
(import ../../modules/wm/virtualisation) ++ # libvirt + Docker
|
||||||
(import ../../modules/hardware); # Hardware devices
|
[(import ../../modules/wm/virtualisation/kvm-amd.nix)] ++ # kvm module options
|
||||||
|
(import ../../modules/hardware); # Hardware devices
|
||||||
|
|
||||||
boot = { # Boot options
|
boot = { # Boot options
|
||||||
kernelPackages = pkgs.linuxPackages_latest;
|
|
||||||
|
|
||||||
loader = { # EFI Boot
|
loader = { # EFI Boot
|
||||||
systemd-boot.enable = true;
|
systemd-boot.enable = lib.mkForce false;
|
||||||
efi = {
|
efi = {
|
||||||
canTouchEfiVariables = true;
|
canTouchEfiVariables = true;
|
||||||
efiSysMountPoint = "/boot";
|
efiSysMountPoint = "/boot";
|
||||||
};
|
};
|
||||||
timeout = 1; # Grub auto select time
|
timeout = 1; # Grub auto select time
|
||||||
};
|
};
|
||||||
|
|
||||||
|
lanzaboote = {
|
||||||
|
enable = true;
|
||||||
|
pkiBundle = "/etc/secureboot";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# hardware.sane = { # Used for scanning with Xsane
|
# hardware.sane = { # Used for scanning with Xsane
|
||||||
@@ -62,19 +66,19 @@
|
|||||||
gnupg.agent = {
|
gnupg.agent = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableSSHSupport = true;
|
enableSSHSupport = true;
|
||||||
pinentryFlavor = "curses";
|
#pinentryFlavor = "curses";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
blueman.enable = true;
|
# blueman.enable = true;
|
||||||
printing = { # Printing and drivers for TS5300
|
printing = { # Printing and drivers for TS5300
|
||||||
enable = true;
|
enable = true;
|
||||||
drivers = [ pkgs.gutenprint ];
|
drivers = [ pkgs.gutenprint ];
|
||||||
};
|
};
|
||||||
avahi = { # Needed to find wireless printer
|
avahi = { # Needed to find wireless printer
|
||||||
enable = true;
|
enable = true;
|
||||||
nssmdns = true;
|
nssmdns4 = true;
|
||||||
publish = { # Needed for detecting the scanner
|
publish = { # Needed for detecting the scanner
|
||||||
enable = true;
|
enable = true;
|
||||||
addresses = true;
|
addresses = true;
|
||||||
@@ -84,4 +88,5 @@
|
|||||||
tailscale.enable = true;
|
tailscale.enable = true;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
security.pam.sshAgentAuth.enable = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,82 +17,71 @@
|
|||||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "usb_storage" "usbhid" "sd_mod" "sdhci_pci" ];
|
boot = {
|
||||||
boot.initrd.kernelModules = [ ];
|
initrd = {
|
||||||
boot.kernelModules = [ "kvm-amd" ];
|
availableKernelModules = [ "nvme" "xhci_pci" "usb_storage" "usbhid" "sd_mod" "sdhci_pci" ];
|
||||||
boot.extraModulePackages = [ ];
|
kernelModules = [ ];
|
||||||
boot.tmp.useTmpfs = false;
|
systemd.enable = true;
|
||||||
boot.tmp.cleanOnBoot = true;
|
luks = {
|
||||||
|
devices."crypted" = {
|
||||||
|
device = "/dev/disk/by-partlabel/disk-nvme0n1-luks";
|
||||||
|
allowDiscards = true;
|
||||||
|
bypassWorkqueues = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
kernelModules = [ "kvm-amd" "amdgpu" ];
|
||||||
|
kernelParams = [ "luks.options=fido2-device=auto" ];
|
||||||
|
tmp.useTmpfs = false;
|
||||||
|
tmp.cleanOnBoot = true;
|
||||||
|
};
|
||||||
|
|
||||||
zramSwap.enable = true;
|
zramSwap.enable = true;
|
||||||
|
|
||||||
# services.btrfs.autoScrub = {
|
services = {
|
||||||
# enable = true;
|
btrfs.autoScrub = {
|
||||||
# interval = "monthly";
|
enable = true;
|
||||||
# fileSystems = [
|
interval = "monthly";
|
||||||
# "/"
|
fileSystems = [
|
||||||
# ];
|
"/"
|
||||||
# };
|
];
|
||||||
#
|
};
|
||||||
# services.btrbk = {
|
udev.extraRules = ''
|
||||||
# instances = {
|
ACTION=="add", SUBSYSTEM=="block", KERNEL=="mmcblk[0-9]p[0-9]", ENV{ID_FS_USAGE}=="filesystem", RUN{program}+="${pkgs.systemd}/bin/systemd-mount -o noatime,compress-force=zstd:15,ssd_spread,commit=120 --no-block --automount=yes --collect $devnode /run/media/mmcblk0p1"
|
||||||
# hf = {
|
'';
|
||||||
# onCalendar = "hourly";
|
};
|
||||||
# settings = {
|
|
||||||
# incremental = "yes";
|
|
||||||
# snapshot_create = "ondemand";
|
|
||||||
# snapshot_dir = "@snapshots";
|
|
||||||
# timestamp_format = "long";
|
|
||||||
#
|
|
||||||
# snapshot_preserve = "2m 2w 5d 5h";
|
|
||||||
# snapshot_preserve_min = "latest";
|
|
||||||
#
|
|
||||||
# volume = {
|
|
||||||
# "/mnt/snapshots/root" = {
|
|
||||||
# snapshot_create = "always";
|
|
||||||
# subvolume = {
|
|
||||||
# "@home" = {};
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
|
|
||||||
# fileSystems."/" =
|
services.btrbk = {
|
||||||
# { device = "/dev/disk/by-label/NIXROOT";
|
instances = {
|
||||||
# fsType = "btrfs";
|
hf = {
|
||||||
# options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvol=@,discard=async" ];
|
onCalendar = "hourly";
|
||||||
# };
|
settings = {
|
||||||
#
|
incremental = "yes";
|
||||||
# fileSystems."/home" =
|
snapshot_create = "ondemand";
|
||||||
# { device = "/dev/disk/by-label/NIXROOT";
|
snapshot_dir = "@snapshots";
|
||||||
# fsType = "btrfs";
|
timestamp_format = "long";
|
||||||
# options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvol=@home,discard=async" ];
|
|
||||||
# };
|
snapshot_preserve = "2m 2w 5d 5h";
|
||||||
#
|
snapshot_preserve_min = "latest";
|
||||||
# fileSystems."/srv" =
|
|
||||||
# { device = "/dev/disk/by-label/NIXROOT";
|
volume = {
|
||||||
# fsType = "btrfs";
|
"/mnt/snapshots/root" = {
|
||||||
# options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvol=@srv,discard=async" ];
|
snapshot_create = "always";
|
||||||
# };
|
subvolume = {
|
||||||
#
|
"@home" = {};
|
||||||
# fileSystems."/nix" =
|
};
|
||||||
# { device = "/dev/disk/by-label/NIXROOT";
|
};
|
||||||
# fsType = "btrfs";
|
};
|
||||||
# options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvol=@nix,discard=async" ];
|
};
|
||||||
# };
|
};
|
||||||
#
|
};
|
||||||
# fileSystems."/mnt/snapshots/root" =
|
};
|
||||||
# { device = "/dev/disk/by-label/NIXROOT";
|
|
||||||
# fsType = "btrfs";
|
|
||||||
# options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvolid=5,discard=async" ];
|
|
||||||
# };
|
|
||||||
|
|
||||||
fileSystems."/" =
|
fileSystems."/" =
|
||||||
{ device = "/dev/disk/by-label/NIXROOT";
|
{ device = "/dev/mapper/crypted";
|
||||||
fsType = "ext4";
|
fsType = "btrfs";
|
||||||
options = [ "defaults,noatime" ];
|
options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvol=@,discard=async" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/boot" =
|
fileSystems."/boot" =
|
||||||
@@ -100,12 +89,48 @@
|
|||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/sdcard" =
|
fileSystems."/home" =
|
||||||
{ device = "/dev/disk/by-label/sdcard";
|
{ device = "/dev/mapper/crypted";
|
||||||
fsType = "ext4";
|
fsType = "btrfs";
|
||||||
options = [ "nofail,x-systemd.automount" ];
|
options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvol=@home,discard=async" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
fileSystems."/nix" =
|
||||||
|
{ device = "/dev/mapper/crypted";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvol=@nix,discard=async" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/srv" =
|
||||||
|
{ device = "/dev/mapper/crypted";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvol=@srv,discard=async" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/swap" =
|
||||||
|
{ device = "/dev/mapper/crypted";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvol=@swap,discard=async" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/opt" =
|
||||||
|
{ device = "/dev/mapper/crypted";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvol=@opt,discard=async" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/mnt/snapshots/root" =
|
||||||
|
{ device = "/dev/mapper/crypted";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "compress=zstd,space_cache=v2,ssd,noatime,subvolid=5,discard=async" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
# fileSystems."/sdcard" =
|
||||||
|
# { device = "/dev/disk/by-label/sdcard";
|
||||||
|
# fsType = "ext4";
|
||||||
|
# options = [ "nofail,noauto,users,x-systemd.automount" ];
|
||||||
|
# };
|
||||||
|
|
||||||
fileSystems."/mnt/Pluto" =
|
fileSystems."/mnt/Pluto" =
|
||||||
{ device = "jupiter:/Pluto";
|
{ device = "jupiter:/Pluto";
|
||||||
fsType = "nfs";
|
fsType = "nfs";
|
||||||
@@ -118,20 +143,19 @@
|
|||||||
options = [ "nofail,noauto,users,x-systemd.automount,x-systemd.device-timeout=10,soft,timeo=14,x-systemd.idle-timeout=1min,sec=sys,exec,nfsvers=4.2" ];
|
options = [ "nofail,noauto,users,x-systemd.automount,x-systemd.device-timeout=10,soft,timeo=14,x-systemd.idle-timeout=1min,sec=sys,exec,nfsvers=4.2" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
swapDevices = [
|
|
||||||
{ device = "/dev/disk/by-label/NIXSWAP"; }
|
swapDevices = [ { device = "/swap/swapfile"; } ];
|
||||||
];
|
|
||||||
|
|
||||||
|
|
||||||
networking = {
|
networking = {
|
||||||
useDHCP = false; # Deprecated
|
useDHCP = false; # Deprecated
|
||||||
hostName = "nix-steamdeck";
|
hostName = "steamdeck";
|
||||||
wireless.iwd.enable = true;
|
wireless.iwd.enable = true;
|
||||||
networkmanager = {
|
networkmanager = {
|
||||||
enable = true;
|
enable = true;
|
||||||
wifi = {
|
wifi = {
|
||||||
backend = "iwd";
|
backend = "iwd";
|
||||||
powersave = true;
|
powersave = false;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
# interfaces = {
|
# interfaces = {
|
||||||
@@ -154,4 +178,8 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
#powerManagement.powertop.enable = true;
|
||||||
|
powerManagement = {
|
||||||
|
scsiLinkPolicy = "med_power_with_dipm";
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,8 +16,8 @@
|
|||||||
{
|
{
|
||||||
imports =
|
imports =
|
||||||
[
|
[
|
||||||
../../modules/desktop/steam/home.nix # Window Manager
|
../../modules/wm/steam/home.nix # Window Manager
|
||||||
../../modules/desktop/kde/home.nix # Window Manager
|
../../modules/wm/kde/home.nix # Window Manager
|
||||||
../../modules/home.nix # Window Manager
|
../../modules/home.nix # Window Manager
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -32,6 +32,7 @@
|
|||||||
streamlink-twitch-gui-bin
|
streamlink-twitch-gui-bin
|
||||||
element-desktop
|
element-desktop
|
||||||
pulsemixer
|
pulsemixer
|
||||||
|
#yuzu-early-access
|
||||||
|
|
||||||
# Display
|
# Display
|
||||||
light # xorg.xbacklight not supported. Other option is just use xrandr.
|
light # xorg.xbacklight not supported. Other option is just use xrandr.
|
||||||
|
|||||||
5
modules/editors/nvim/config/bufferline.nix
Normal file
5
modules/editors/nvim/config/bufferline.nix
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
plugins.bufferline = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
16
modules/editors/nvim/config/default.nix
Normal file
16
modules/editors/nvim/config/default.nix
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
{ nvim, ... }:
|
||||||
|
{
|
||||||
|
# Import all your configuration modules here
|
||||||
|
programs.nixvim = {
|
||||||
|
enable = true;
|
||||||
|
colorschemes.gruvbox.enable = true;
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
./bufferline.nix
|
||||||
|
./plugins.nix
|
||||||
|
./options.nix
|
||||||
|
./keymaps.nix
|
||||||
|
./highlight.nix
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
8
modules/editors/nvim/config/highlight.nix
Normal file
8
modules/editors/nvim/config/highlight.nix
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
highlight = {
|
||||||
|
Comment.fg = "#ff00ff";
|
||||||
|
Comment.bg = "#000000";
|
||||||
|
Comment.underline = true;
|
||||||
|
Comment.bold = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
8
modules/editors/nvim/config/keymaps.nix
Normal file
8
modules/editors/nvim/config/keymaps.nix
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
keymaps = [
|
||||||
|
{
|
||||||
|
action = "<cmd>Telescope live_grep<CR>";
|
||||||
|
key = "<leader>g";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
14
modules/editors/nvim/config/options.nix
Normal file
14
modules/editors/nvim/config/options.nix
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
config = {
|
||||||
|
globals.mapleader = " ";
|
||||||
|
viAlias = true;
|
||||||
|
vimAlias = true;
|
||||||
|
|
||||||
|
opts = {
|
||||||
|
number = true; # Show line numbers
|
||||||
|
relativenumber = true; # Show relative line numbers
|
||||||
|
|
||||||
|
shiftwidth = 2; # Tab width should be 2
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
51
modules/editors/nvim/config/plugins.nix
Normal file
51
modules/editors/nvim/config/plugins.nix
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
{
|
||||||
|
plugins = {
|
||||||
|
lualine.enable = true;
|
||||||
|
|
||||||
|
cmp = {
|
||||||
|
enable = true;
|
||||||
|
autoEnableSources = true;
|
||||||
|
settings = {
|
||||||
|
sources = [
|
||||||
|
{name = "nvim_lsp";}
|
||||||
|
{name = "path";}
|
||||||
|
{name = "buffer";}
|
||||||
|
{name = "luasnip";}
|
||||||
|
];
|
||||||
|
|
||||||
|
mapping = {
|
||||||
|
"<C-d>" = "cmp.mapping.scroll_docs(-4)";
|
||||||
|
"<C-f>" = "cmp.mapping.scroll_docs(4)";
|
||||||
|
"<C-Space>" = "cmp.mapping.complete()";
|
||||||
|
"<C-e>" = "cmp.mapping.close()";
|
||||||
|
"<CR>" = "cmp.mapping.confirm({ select = true })";
|
||||||
|
"<Tab>" = "cmp.mapping(cmp.mapping.select_next_item(), {'i', 's'})";
|
||||||
|
"<S-Tab>" = "cmp.mapping(cmp.mapping.select_prev_item(), {'i', 's'})";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
lsp = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
servers = {
|
||||||
|
tsserver.enable = true;
|
||||||
|
|
||||||
|
lua-ls = {
|
||||||
|
enable = true;
|
||||||
|
settings.telemetry.enable = false;
|
||||||
|
};
|
||||||
|
# rust-analyzer = {
|
||||||
|
# enable = true;
|
||||||
|
# installCargo = true;
|
||||||
|
# };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
telescope.enable = true;
|
||||||
|
|
||||||
|
treesitter.enable = true;
|
||||||
|
|
||||||
|
luasnip.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -5,6 +5,11 @@
|
|||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
|
home = {
|
||||||
|
packages = [ pkgs.gnvim ];
|
||||||
|
};
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
neovim = {
|
neovim = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|||||||
15
modules/hardware/backup.nix
Normal file
15
modules/hardware/backup.nix
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
|
||||||
|
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
services.btrbk = {
|
||||||
|
sshAccess = [
|
||||||
|
{
|
||||||
|
key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDU2NJ9xwYnp6/frIOv96ih8psiFcC2eOQeT+ZEMW5rq";
|
||||||
|
roles = [ "source" "info" "send" ];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
extraPackages = [ pkgs.lz4 ];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
{
|
{
|
||||||
nix = {
|
nix = {
|
||||||
distributedBuilds = true;
|
distributedBuilds = false;
|
||||||
buildMachines = [ {
|
buildMachines = [ {
|
||||||
hostName = "hades";
|
hostName = "hades";
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
@@ -11,16 +11,16 @@
|
|||||||
sshUser = "nixremote";
|
sshUser = "nixremote";
|
||||||
sshKey = config.age.secrets."keys/nixremote".path;
|
sshKey = config.age.secrets."keys/nixremote".path;
|
||||||
maxJobs = 1;
|
maxJobs = 1;
|
||||||
speedFactor = 8;
|
speedFactor = 4;
|
||||||
publicHostKey = "c3NoLWVkMjU1MTkgQUFBQUMzTnphQzFsWkRJMU5URTVBQUFBSUVnbld5UVVVYSt2Y0hBS3g2ZWRiVGdxVzhwaCtNQ2lTNmZVd1lqWWNTK28gcm9vdEBoYWRlcwo=%";
|
publicHostKey = "c3NoLWVkMjU1MTkgQUFBQUMzTnphQzFsWkRJMU5URTVBQUFBSUVnbld5UVVVYSt2Y0hBS3g2ZWRiVGdxVzhwaCtNQ2lTNmZVd1lqWWNTK28gcm9vdEBoYWRlcwo=%";
|
||||||
protocol = "ssh-ng";
|
protocol = "ssh-ng";
|
||||||
} ];
|
} ];
|
||||||
settings = {
|
settings = {
|
||||||
trusted-public-keys = [
|
extra-trusted-public-keys = [
|
||||||
"hades-builder:AFdPgi6Qq/yKqc2V2imgzMikEkVEFCrDaHyAmOJ3MII="
|
"hades-builder:AFdPgi6Qq/yKqc2V2imgzMikEkVEFCrDaHyAmOJ3MII="
|
||||||
];
|
];
|
||||||
substituters = [
|
trusted-users = [
|
||||||
"ssh-ng://hades"
|
"kabbone"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
theme = {
|
theme = {
|
||||||
theme = mkOption { type = types.str; default = "catppuccin-mocha"; };
|
theme = mkOption { type = types.str; default = "catppuccin-mocha"; };
|
||||||
icon-theme = mkOption { type = types.str; default = "Papirus-Dark"; };
|
icon-theme = mkOption { type = types.str; default = "Papirus-Dark"; };
|
||||||
font = mkOption { type = types.str; default = "FiraCode Nerd Font 11"; };
|
font = mkOption { type = types.str; default = "Cascadia Code 11"; };
|
||||||
wallpaper = mkOption { type = types.str; default = ""; };
|
wallpaper = mkOption { type = types.str; default = ""; };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -16,8 +16,9 @@
|
|||||||
package = pkgs.alacritty;
|
package = pkgs.alacritty;
|
||||||
settings = {
|
settings = {
|
||||||
font = rec { # Font - Laptop has size manually changed at home.nix
|
font = rec { # Font - Laptop has size manually changed at home.nix
|
||||||
#normal.family = "Source Code Pro";
|
#normal.family = "FiraCode Nerd Font";
|
||||||
normal.family = "FiraCode Nerd Font";
|
normal.family = "Cascadia Code";
|
||||||
|
#normal.family = "Intel One Mono";
|
||||||
#bold = { style = "Bold"; };
|
#bold = { style = "Bold"; };
|
||||||
# size = 8;
|
# size = 8;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -17,5 +17,5 @@
|
|||||||
#./waybar.nix
|
#./waybar.nix
|
||||||
#./games.nix
|
#./games.nix
|
||||||
]
|
]
|
||||||
# Waybar.nix is pulled from modules/desktop/..
|
# Waybar.nix is pulled from modules/wm/..
|
||||||
# Games.nix is pulled from desktop/default.nix
|
# Games.nix is pulled from desktop/default.nix
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
|
|
||||||
[
|
[
|
||||||
./microvm.nix
|
./microvm.nix
|
||||||
|
./hydra.nix
|
||||||
]
|
]
|
||||||
|
|
||||||
# picom, polybar and sxhkd are pulled from desktop module
|
# picom, polybar and sxhkd are pulled from desktop module
|
||||||
|
|||||||
@@ -5,6 +5,12 @@
|
|||||||
podman ={
|
podman ={
|
||||||
enable = true;
|
enable = true;
|
||||||
autoPrune.enable = true;
|
autoPrune.enable = true;
|
||||||
|
dockerCompat = true;
|
||||||
|
};
|
||||||
|
containers.containersConf.settings = {
|
||||||
|
# podman seems to not work with systemd-resolved
|
||||||
|
containers.dns_servers = [ "192.168.101.1" ];
|
||||||
|
#containers.dns_servers = [ "8.8.8.8" "8.8.4.4" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -13,24 +19,42 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
url = "https://git.kabtop.de";
|
url = "https://git.kabtop.de";
|
||||||
name = "Homerunner";
|
name = "Homerunner";
|
||||||
tokenFile = config.age.secrets."services/gitea/runner-token".path;
|
tokenFile = config.age.secrets."services/gitea/homerunner-token".path;
|
||||||
labels = [
|
labels = [
|
||||||
|
"home"
|
||||||
"debian-latest:docker://node:18-bullseye"
|
"debian-latest:docker://node:18-bullseye"
|
||||||
|
"ubuntu-latest:docker://node:16-bullseye"
|
||||||
|
"ubuntu-22.04:docker://node:16-bullseye"
|
||||||
|
"ubuntu-20.04:docker://node:16-bullseye"
|
||||||
|
"ubuntu-18.04:docker://node:16-buster"
|
||||||
"native:host"
|
"native:host"
|
||||||
];
|
];
|
||||||
hostPackages = with pkgs; [
|
hostPackages = with pkgs; [
|
||||||
bash
|
bash
|
||||||
curl
|
|
||||||
gitMinimal
|
|
||||||
coreutils
|
coreutils
|
||||||
wget
|
curl
|
||||||
|
gawk
|
||||||
|
gitMinimal
|
||||||
gnused
|
gnused
|
||||||
|
nodejs
|
||||||
|
wget
|
||||||
];
|
];
|
||||||
|
settings = {
|
||||||
|
# container.options = "-e NIX_BUILD_SHELL=/bin/bash -e PAGER=cat -e PATH=/bin -e SSL_CERT_FILE=/etc/ssl/certs/ca-bundle.crt --device /dev/kvm -v /nix:/nix -v ${storeDeps}/bin:/bin -v ${storeDeps}/etc/ssl:/etc/ssl --user nixuser --device=/dev/kvm";
|
||||||
|
# the default network that also respects our dns server settings
|
||||||
|
container.network = "host";
|
||||||
|
container.privileged = false;
|
||||||
|
# container.valid_volumes = [
|
||||||
|
# "/nix"
|
||||||
|
# "${storeDeps}/bin"
|
||||||
|
# "${storeDeps}/etc/ssl"
|
||||||
|
# ];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
age.secrets."services/gitea/runner-token" = {
|
age.secrets."services/gitea/homerunner-token" = {
|
||||||
file = ../../../secrets/services/gitea/runner-token.age;
|
file = ../../../secrets/services/gitea/homerunner-token.age;
|
||||||
owner = "gitea-runner";
|
owner = "gitea-runner";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
11
modules/services/dmz/hydra.nix
Normal file
11
modules/services/dmz/hydra.nix
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{ lib, config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
services.hydra = {
|
||||||
|
enable = true;
|
||||||
|
hydraURL = "http://localhost:3000";
|
||||||
|
notificationSender = "hydra@localhost";
|
||||||
|
useSubstitutes = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,23 +1,23 @@
|
|||||||
{ microvm, nixpkgs, user, agenix, ... }:
|
{ config, microvm, lib, pkgs, user, agenix, impermanence, ... }:
|
||||||
let
|
let
|
||||||
name = "gitea-runner";
|
name = "gitea-runner";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
microvm = {
|
microvm = {
|
||||||
autostart = [
|
autostart = [
|
||||||
"gitea-runnervm"
|
name
|
||||||
];
|
];
|
||||||
vms = {
|
vms = {
|
||||||
${name} = {
|
${name} = {
|
||||||
|
|
||||||
|
inherit pkgs;
|
||||||
pkgs = import nixpkgs {
|
|
||||||
system = "x86_64-linux";
|
|
||||||
config.allowUnfree = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
imports = [( ./gitea_runner.nix )];
|
imports =
|
||||||
|
[ agenix.nixosModules.default ] ++
|
||||||
|
[ impermanence.nixosModules.impermanence ] ++
|
||||||
|
[( ./gitea_runner.nix )];
|
||||||
|
|
||||||
networking = {
|
networking = {
|
||||||
hostName = "${name}";
|
hostName = "${name}";
|
||||||
|
|
||||||
@@ -55,6 +55,41 @@ in
|
|||||||
openssh = {
|
openssh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings.PasswordAuthentication = false;
|
settings.PasswordAuthentication = false;
|
||||||
|
hostKeys = [
|
||||||
|
{
|
||||||
|
path = "/persist/etc/ssh/ssh_host_ed25519_key";
|
||||||
|
type = "ed25519";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
path = "/persist/etc/ssh/ssh_host_rsa_key";
|
||||||
|
type = "rsa";
|
||||||
|
bits = 4096;
|
||||||
|
}];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/persist".neededForBoot = lib.mkForce true;
|
||||||
|
|
||||||
|
environment = {
|
||||||
|
systemPackages = with pkgs; [ # Default packages install system-wide
|
||||||
|
bash
|
||||||
|
coreutils
|
||||||
|
curl
|
||||||
|
gawk
|
||||||
|
gitMinimal
|
||||||
|
gnused
|
||||||
|
nodejs
|
||||||
|
wget
|
||||||
|
];
|
||||||
|
persistence."/persist" = {
|
||||||
|
directories = [
|
||||||
|
"/var/log"
|
||||||
|
"/var/lib/private"
|
||||||
|
];
|
||||||
|
|
||||||
|
files = [
|
||||||
|
"/etc/machine-id"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -77,11 +112,18 @@ in
|
|||||||
mountPoint = "/nix/.ro-store";
|
mountPoint = "/nix/.ro-store";
|
||||||
tag = "ro-store";
|
tag = "ro-store";
|
||||||
proto = "virtiofs";
|
proto = "virtiofs";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
source = "/etc/vm-persist/${name}";
|
||||||
|
mountPoint = "/persist";
|
||||||
|
tag = "persist";
|
||||||
|
proto = "virtiofs";
|
||||||
}];
|
}];
|
||||||
#writableStoreOverlay = "/nix/.rw-store";
|
#writableStoreOverlay = "/nix/.rw-store";
|
||||||
#storeOnDisk = true;
|
#storeOnDisk = true;
|
||||||
};
|
};
|
||||||
system.stateVersion = "23.05";
|
|
||||||
|
system.stateVersion = "23.05";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
pkey = "${config.security.acme.certs.${realm}.directory}/key.pem";
|
pkey = "${config.security.acme.certs.${realm}.directory}/key.pem";
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
# for debugging
|
# for debugging
|
||||||
verbose
|
#verbose
|
||||||
# ban private IP ranges
|
# ban private IP ranges
|
||||||
no-multicast-peers
|
no-multicast-peers
|
||||||
denied-peer-ip=0.0.0.0-0.255.255.255
|
denied-peer-ip=0.0.0.0-0.255.255.255
|
||||||
|
|||||||
@@ -13,10 +13,12 @@
|
|||||||
[
|
[
|
||||||
./postgresql.nix
|
./postgresql.nix
|
||||||
./gitea.nix
|
./gitea.nix
|
||||||
|
./microvm.nix
|
||||||
./nextcloud.nix
|
./nextcloud.nix
|
||||||
./matrix.nix
|
./matrix.nix
|
||||||
./coturn.nix
|
./coturn.nix
|
||||||
./jitsi.nix
|
./jitsi.nix
|
||||||
|
./ollama.nix
|
||||||
]
|
]
|
||||||
|
|
||||||
# picom, polybar and sxhkd are pulled from desktop module
|
# picom, polybar and sxhkd are pulled from desktop module
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
[Definition]
|
[Definition]
|
||||||
failregex = .*(Failed authentication attempt|invalid credentials|Attempted access of unknown user).* from <HOST>
|
failregex = .*(Failed authentication attempt|invalid credentials|Attempted access of unknown user).* from <HOST>
|
||||||
ignoreregex =
|
ignoreregex =
|
||||||
#journalmatch = _SYSTEMD_UNIT=gitea.servie
|
journalmatch = _SYSTEMD_UNIT=gitea.service + _COMM=gitea
|
||||||
journalmatch =
|
|
||||||
|
|||||||
4
modules/services/server/fail2ban/filter/open-webui.conf
Normal file
4
modules/services/server/fail2ban/filter/open-webui.conf
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
[Definition]
|
||||||
|
failregex = <HOST> - .*(401 Unauthorized|invalid credentials|Attempted access of unknown user).*
|
||||||
|
ignoreregex =
|
||||||
|
journalmatch = _SYSTEMD_UNIT=podman-open-webui.service + _COMM=podman-open-webui
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
{
|
{
|
||||||
services.gitea = {
|
services.gitea = {
|
||||||
enable = true;
|
enable = true;
|
||||||
dump.enable = true;
|
dump.enable = false;
|
||||||
lfs.enable = true;
|
lfs.enable = true;
|
||||||
dump.type = "tar.xz";
|
dump.type = "tar.xz";
|
||||||
database.type = "postgres";
|
database.type = "postgres";
|
||||||
|
|||||||
@@ -1,31 +1,59 @@
|
|||||||
{ lib, config, pkgs, ... }:
|
{ lib, config, pkgs, ... }:
|
||||||
|
|
||||||
let
|
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; # Nix Packages
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
imports = [ <nixpkgs/nixos/modules/virtualisation/qemu-vm.nix> ];
|
|
||||||
virtualisation = {
|
virtualisation = {
|
||||||
podman ={
|
podman ={
|
||||||
enable = true;
|
enable = true;
|
||||||
autoPrune.enable = true;
|
autoPrune.enable = true;
|
||||||
|
dockerCompat = true;
|
||||||
|
};
|
||||||
|
containers.containersConf.settings = {
|
||||||
|
# podman seems to not work with systemd-resolved
|
||||||
|
containers.dns_servers = [ "8.8.8.8" "8.8.4.4" ];
|
||||||
};
|
};
|
||||||
memorySize = 4096;
|
|
||||||
diskSize = 10240;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
services.gitea-actions-runner.instances = {
|
services.gitea-actions-runner.instances = {
|
||||||
nixrunner-test = {
|
serverrunner = {
|
||||||
enable = true;
|
enable = true;
|
||||||
url = "https://git.kabtop.de";
|
url = "https://git.kabtop.de";
|
||||||
name = "nix_runner_test";
|
name = "Server runner";
|
||||||
#tokenFile = "./gitea_token";
|
tokenFile = config.age.secrets."services/gitea/serverrunner-token".path;
|
||||||
token = "vlUBkX5IbJKTBO3HAGqFM1fEOw2UqXpX87LcdJRY";
|
|
||||||
labels = [
|
labels = [
|
||||||
|
"server"
|
||||||
"debian-latest:docker://node:18-bullseye"
|
"debian-latest:docker://node:18-bullseye"
|
||||||
|
"ubuntu-latest:docker://node:16-bullseye"
|
||||||
|
"ubuntu-22.04:docker://node:16-bullseye"
|
||||||
|
"ubuntu-20.04:docker://node:16-bullseye"
|
||||||
|
"ubuntu-18.04:docker://node:16-buster"
|
||||||
|
"native:host"
|
||||||
];
|
];
|
||||||
|
hostPackages = with pkgs; [
|
||||||
|
bash
|
||||||
|
coreutils
|
||||||
|
curl
|
||||||
|
gawk
|
||||||
|
gitMinimal
|
||||||
|
gnused
|
||||||
|
nodejs
|
||||||
|
wget
|
||||||
|
];
|
||||||
|
settings = {
|
||||||
|
# container.options = "-e NIX_BUILD_SHELL=/bin/bash -e PAGER=cat -e PATH=/bin -e SSL_CERT_FILE=/etc/ssl/certs/ca-bundle.crt --device /dev/kvm -v /nix:/nix -v ${storeDeps}/bin:/bin -v ${storeDeps}/etc/ssl:/etc/ssl --user nixuser --device=/dev/kvm";
|
||||||
|
# the default network that also respects our dns server settings
|
||||||
|
container.network = "host";
|
||||||
|
container.privileged = false;
|
||||||
|
# container.valid_volumes = [
|
||||||
|
# "/nix"
|
||||||
|
# "${storeDeps}/bin"
|
||||||
|
# "${storeDeps}/etc/ssl"
|
||||||
|
# ];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
users.users.root.initialPassword = "babablup";
|
|
||||||
system.stateVersion = "23.11";
|
age.secrets."services/gitea/serverrunner-token" = {
|
||||||
|
file = ../../../secrets/services/gitea/serverrunner-token.age;
|
||||||
|
owner = "gitea-runner";
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
129
modules/services/server/microvm.nix
Normal file
129
modules/services/server/microvm.nix
Normal file
@@ -0,0 +1,129 @@
|
|||||||
|
{ config, microvm, lib, pkgs, user, agenix, impermanence, ... }:
|
||||||
|
let
|
||||||
|
name = "gitea-runner";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
microvm = {
|
||||||
|
autostart = [
|
||||||
|
name
|
||||||
|
];
|
||||||
|
vms = {
|
||||||
|
${name} = {
|
||||||
|
|
||||||
|
inherit pkgs;
|
||||||
|
|
||||||
|
config = {
|
||||||
|
imports =
|
||||||
|
[ agenix.nixosModules.default ] ++
|
||||||
|
[ impermanence.nixosModules.impermanence ] ++
|
||||||
|
[( ./gitea_runner.nix )];
|
||||||
|
|
||||||
|
networking = {
|
||||||
|
hostName = "${name}";
|
||||||
|
|
||||||
|
firewall = {
|
||||||
|
enable = true;
|
||||||
|
allowedUDPPorts = [ ];
|
||||||
|
allowedTCPPorts = [ ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
systemd.network = {
|
||||||
|
enable = true;
|
||||||
|
networks = {
|
||||||
|
"10-lan" = {
|
||||||
|
matchConfig.Name = "*";
|
||||||
|
networkConfig = {
|
||||||
|
DHCP = "yes";
|
||||||
|
IPv6AcceptRA = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
users.users.${user} = { # System User
|
||||||
|
isNormalUser = true;
|
||||||
|
extraGroups = [ "wheel" ];
|
||||||
|
uid = 2000;
|
||||||
|
openssh.authorizedKeys.keys = [
|
||||||
|
"sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIANmaraVJ/o20c4dqVnGLp/wGck9QNHFPvO9jcEbKS29AAAABHNzaDo= kabbone@kabc"
|
||||||
|
"sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIIgo4IP8ISUohyAMiDc3zEe6ESUE3un7eN5FhVtxZHmcAAAABHNzaDo= kabbone@kabc"
|
||||||
|
"sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIKVDApb3vZ+i97V4xLJh8rUF6z5OVYfORlXYbLhdQO15AAAABHNzaDo= kabbone@hades.home.opel-online.de"
|
||||||
|
"sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIB0q++epdX7feQxvmC2m/CJEoJbkqtAJy6Ml6WKHxryZAAAABHNzaDo= kabbone@hades.home.opel-online.de"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
services = {
|
||||||
|
openssh = {
|
||||||
|
enable = true;
|
||||||
|
settings.PasswordAuthentication = false;
|
||||||
|
hostKeys = [
|
||||||
|
{
|
||||||
|
path = "/persist/etc/ssh/ssh_host_ed25519_key";
|
||||||
|
type = "ed25519";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
path = "/persist/etc/ssh/ssh_host_rsa_key";
|
||||||
|
type = "rsa";
|
||||||
|
bits = 4096;
|
||||||
|
}];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/persist".neededForBoot = lib.mkForce true;
|
||||||
|
|
||||||
|
environment = {
|
||||||
|
systemPackages = with pkgs; [ # Default packages install system-wide
|
||||||
|
bash
|
||||||
|
coreutils
|
||||||
|
curl
|
||||||
|
gawk
|
||||||
|
gitMinimal
|
||||||
|
gnused
|
||||||
|
nodejs
|
||||||
|
wget
|
||||||
|
];
|
||||||
|
persistence."/persist" = {
|
||||||
|
directories = [
|
||||||
|
"/var/log"
|
||||||
|
"/var/lib/private"
|
||||||
|
];
|
||||||
|
|
||||||
|
files = [
|
||||||
|
"/etc/machine-id"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
microvm = {
|
||||||
|
hypervisor = "qemu";
|
||||||
|
vcpu = 4;
|
||||||
|
mem = 4096;
|
||||||
|
balloonMem = 4096;
|
||||||
|
#kernel = pkgs.linuxKernel.packages.linux_latest;
|
||||||
|
interfaces = [
|
||||||
|
{
|
||||||
|
type = "user";
|
||||||
|
id = "vm-${name}";
|
||||||
|
mac = "04:00:00:00:00:01";
|
||||||
|
} ];
|
||||||
|
shares = [{
|
||||||
|
source = "/nix/store";
|
||||||
|
mountPoint = "/nix/.ro-store";
|
||||||
|
tag = "ro-store";
|
||||||
|
proto = "virtiofs";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
source = "/etc/vm-persist/${name}";
|
||||||
|
mountPoint = "/persist";
|
||||||
|
tag = "persist";
|
||||||
|
proto = "virtiofs";
|
||||||
|
}];
|
||||||
|
#writableStoreOverlay = "/nix/.rw-store";
|
||||||
|
#storeOnDisk = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
system.stateVersion = "23.05";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -43,10 +43,23 @@
|
|||||||
#autoUpdateApps.enable = true;
|
#autoUpdateApps.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
services.redis.servers.nextcloud = {
|
services.onlyoffice = {
|
||||||
enable = true;
|
enable = true;
|
||||||
user = "nextcloud";
|
hostname = "docs.cloud.kabtop.de";
|
||||||
port = 0;
|
postgresName = "onlyoffice";
|
||||||
|
postgresHost = "localhost";
|
||||||
|
postgresUser = "onlyoffice";
|
||||||
|
postgresPasswordFile = config.age.secrets."services/nextcloud/onlyofficedb".path;
|
||||||
|
jwtSecretFile = config.age.secrets."services/nextcloud/onlyofficejwt".path;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.redis = {
|
||||||
|
vmOverCommit = true;
|
||||||
|
servers.nextcloud = {
|
||||||
|
enable = true;
|
||||||
|
user = "nextcloud";
|
||||||
|
port = 0;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services.nginx = {
|
services.nginx = {
|
||||||
@@ -56,6 +69,9 @@
|
|||||||
enableACME = true;
|
enableACME = true;
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
};
|
};
|
||||||
|
"${config.services.onlyoffice.hostname}".listen = [ {
|
||||||
|
addr = "127.0.0.1"; port = 8080;
|
||||||
|
} ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -67,9 +83,22 @@
|
|||||||
file = ../../../secrets/services/nextcloud/adminpassFile.age;
|
file = ../../../secrets/services/nextcloud/adminpassFile.age;
|
||||||
owner = "nextcloud";
|
owner = "nextcloud";
|
||||||
};
|
};
|
||||||
|
age.secrets."services/nextcloud/onlyofficedb" = {
|
||||||
|
file = ../../../secrets/services/nextcloud/onlyofficedb.age;
|
||||||
|
owner = "onlyoffice";
|
||||||
|
};
|
||||||
|
age.secrets."services/nextcloud/onlyofficejwt" = {
|
||||||
|
file = ../../../secrets/services/nextcloud/onlyofficejwt.age;
|
||||||
|
owner = "onlyoffice";
|
||||||
|
};
|
||||||
|
|
||||||
systemd.services."nextcloud-setup" = {
|
systemd.services."nextcloud-setup" = {
|
||||||
requires = ["postgresql.service"];
|
requires = ["postgresql.service"];
|
||||||
after = ["postgresql.service"];
|
after = ["postgresql.service"];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
security.acme.defaults.email = "webmaster@kabtop.de";
|
||||||
|
security.acme.defaults.webroot = "/var/lib/acme/acme-challenge";
|
||||||
|
security.acme.acceptTerms = true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
28
modules/services/server/ollama.nix
Normal file
28
modules/services/server/ollama.nix
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
let
|
||||||
|
ollamahostname = "llm.kabtop.de";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
virtualisation.oci-containers.containers."open-webui" = {
|
||||||
|
autoStart = true;
|
||||||
|
image = "ghcr.io/open-webui/open-webui:ollama";
|
||||||
|
volumes = [
|
||||||
|
"/var/lib/open-webui:/app/backend/data"
|
||||||
|
];
|
||||||
|
hostname = "open-webui";
|
||||||
|
ports = [ "8081:8080" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
services = {
|
||||||
|
nginx = {
|
||||||
|
virtualHosts = {
|
||||||
|
${ollamahostname} = {
|
||||||
|
enableACME = true;
|
||||||
|
forceSSL = true;
|
||||||
|
locations."/".proxyPass = "http://localhost:8081";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -7,28 +7,28 @@
|
|||||||
{
|
{
|
||||||
services.postgresql = {
|
services.postgresql = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.postgresql_14;
|
package = pkgs.postgresql_15;
|
||||||
settings = {
|
settings = {
|
||||||
max_connections = 200;
|
max_connections = 200;
|
||||||
listen_addresses = "localhost";
|
listen_addresses = "localhost";
|
||||||
password_encryption = "scram-sha-256";
|
password_encryption = "scram-sha-256";
|
||||||
shared_buffers = "512MB";
|
shared_buffers = "4GB";
|
||||||
work_mem = "8MB";
|
work_mem = "2GB";
|
||||||
|
maintenance_work_mem = "500MB";
|
||||||
autovacuum_work_mem = -1;
|
autovacuum_work_mem = -1;
|
||||||
min_wal_size = "1GB";
|
|
||||||
max_wal_size = "4GB";
|
|
||||||
log_timezone = "Europe/Berlin";
|
log_timezone = "Europe/Berlin";
|
||||||
timezone = "Europe/Berlin";
|
timezone = "Europe/Berlin";
|
||||||
};
|
};
|
||||||
authentication = pkgs.lib.mkOverride 14 ''
|
authentication = pkgs.lib.mkOverride 14 ''
|
||||||
local all postgres peer
|
local all postgres peer
|
||||||
host giteadb gitea localhost scram-sha-256
|
host giteadb gitea localhost scram-sha-256
|
||||||
host woodpeckerdb woodpecker localhost scram-sha-256
|
|
||||||
host nextclouddb nextcloud localhost scram-sha-256
|
host nextclouddb nextcloud localhost scram-sha-256
|
||||||
host synapsedb synapse localhost scram-sha-256
|
host synapsedb synapse localhost scram-sha-256
|
||||||
host whatsappdb mautrixwa localhost scram-sha-256
|
host whatsappdb mautrixwa localhost scram-sha-256
|
||||||
host telegramdb mautrixtele localhost scram-sha-256
|
host telegramdb mautrixtele localhost scram-sha-256
|
||||||
host signaldb mautrixsignal localhost scram-sha-256
|
host signaldb mautrixsignal localhost scram-sha-256
|
||||||
|
host onlyoffice onlyoffice localhost scram-sha-256
|
||||||
|
local onlyoffice onlyoffice peer
|
||||||
'';
|
'';
|
||||||
initialScript = config.age.secrets."services/postgresql/initScript.sql".path;
|
initialScript = config.age.secrets."services/postgresql/initScript.sql".path;
|
||||||
};
|
};
|
||||||
|
|||||||
16
modules/wm/default.nix
Normal file
16
modules/wm/default.nix
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
{ pkgs, lib, config, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
desktop = {
|
||||||
|
wm = lib.mkOption { type = types.str; default = "sway"; };
|
||||||
|
taskbar = lib.mkOption { type = types.str; default = "waybar"; };
|
||||||
|
launcher = lib.mkOption { type = types.str; default = "bemenu"; };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = {
|
||||||
|
imports =
|
||||||
|
(import ./ + (desktop.wm)) ++
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -11,10 +11,10 @@
|
|||||||
# └─ hyprland.nix *
|
# └─ hyprland.nix *
|
||||||
#
|
#
|
||||||
|
|
||||||
{ config, lib, user, pkgs, ... }:
|
{ config, lib, user, pkgs, desktop, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [ ../../programs/waybar.nix ];
|
imports = [ ../waybar.nix ];
|
||||||
|
|
||||||
hardware.opengl = {
|
hardware.opengl = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -40,6 +40,7 @@
|
|||||||
rocmPackages.clr.icd
|
rocmPackages.clr.icd
|
||||||
rocmPackages.clr
|
rocmPackages.clr
|
||||||
clinfo
|
clinfo
|
||||||
|
waybar
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -48,13 +48,18 @@
|
|||||||
"*" = {
|
"*" = {
|
||||||
bg = "$HOME/.config/wall fill";
|
bg = "$HOME/.config/wall fill";
|
||||||
};
|
};
|
||||||
"HDMI-A-1" = {
|
#"HDMI-A-1" = {
|
||||||
mode = "1920x1080";
|
# mode = "2560x1440";
|
||||||
|
# pos = "0,0";
|
||||||
|
# #scale = "1.1";
|
||||||
|
#};
|
||||||
|
"DP-2" = {
|
||||||
|
mode = "2560x1440";
|
||||||
pos = "0,0";
|
pos = "0,0";
|
||||||
};
|
};
|
||||||
"DP-1" = {
|
"DP-3" = {
|
||||||
mode = "2560x1080";
|
mode = "1920x1200";
|
||||||
pos = "1920,0";
|
pos = "2560,120";
|
||||||
};
|
};
|
||||||
#"eDP-1" = {
|
#"eDP-1" = {
|
||||||
# mode = "1920x1080";
|
# mode = "1920x1080";
|
||||||
@@ -68,7 +73,7 @@
|
|||||||
terminal = "${pkgs.alacritty}/bin/alacritty";
|
terminal = "${pkgs.alacritty}/bin/alacritty";
|
||||||
|
|
||||||
fonts = {
|
fonts = {
|
||||||
names = [ "Source Code Pro" ];
|
names = [ "Cascadia Code" ];
|
||||||
size = 10.0;
|
size = 10.0;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -207,6 +212,9 @@
|
|||||||
"${mod}+Shift+9" = "move container to workspace number 9";
|
"${mod}+Shift+9" = "move container to workspace number 9";
|
||||||
"${mod}+Shift+0" = "move container to workspace number 10";
|
"${mod}+Shift+0" = "move container to workspace number 10";
|
||||||
|
|
||||||
|
"${mod}+Tab" = "workspace next";
|
||||||
|
"${mod}+Alt+Tab" = "workspace prev";
|
||||||
|
|
||||||
"${mod}+k" = "splith";
|
"${mod}+k" = "splith";
|
||||||
"${mod}+v" = "splitv";
|
"${mod}+v" = "splitv";
|
||||||
|
|
||||||
@@ -244,8 +252,8 @@
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
set $output-primary DP-1
|
set $output-primary DP-2
|
||||||
set $output-secondary HDMI-A-1
|
set $output-secondary DP-3
|
||||||
|
|
||||||
workspace 1 output $output-secondary
|
workspace 1 output $output-secondary
|
||||||
workspace 2 output $output-primary
|
workspace 2 output $output-primary
|
||||||
@@ -253,11 +261,14 @@
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.swaylock.settings = {
|
programs.swaylock = {
|
||||||
color = "000000";
|
enable = true;
|
||||||
image = "$HOME/.config/lockwall";
|
settings = {
|
||||||
indicator-caps-lock = true;
|
color = "000000";
|
||||||
show-keyboard-layout = true;
|
image = "$HOME/.config/lockwall";
|
||||||
|
indicator-caps-lock = true;
|
||||||
|
show-keyboard-layout = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services.swayidle = {
|
services.swayidle = {
|
||||||
@@ -13,5 +13,5 @@
|
|||||||
|
|
||||||
[
|
[
|
||||||
./docker.nix
|
./docker.nix
|
||||||
# ./qemu.nix
|
./qemu.nix
|
||||||
]
|
]
|
||||||
@@ -6,7 +6,11 @@
|
|||||||
|
|
||||||
{
|
{
|
||||||
virtualisation = {
|
virtualisation = {
|
||||||
docker.enable = true;
|
podman = {
|
||||||
|
enable = true;
|
||||||
|
autoPrune.enable = true;
|
||||||
|
dockerCompat = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
users.groups.docker.members = [ "${user}" ];
|
users.groups.docker.members = [ "${user}" ];
|
||||||
@@ -17,9 +21,9 @@
|
|||||||
# ''; # Alias to easily start container
|
# ''; # Alias to easily start container
|
||||||
#};
|
#};
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
# environment.systemPackages = with pkgs; [
|
||||||
docker-compose
|
# docker-compose
|
||||||
];
|
# ];
|
||||||
}
|
}
|
||||||
|
|
||||||
# USAGE:
|
# USAGE:
|
||||||
12
modules/wm/virtualisation/kvm-amd.nix
Normal file
12
modules/wm/virtualisation/kvm-amd.nix
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
#
|
||||||
|
# KVM module options amd
|
||||||
|
#
|
||||||
|
|
||||||
|
{ config, pkgs, user, ... }:
|
||||||
|
|
||||||
|
{ # Add libvirtd and kvm to userGroups
|
||||||
|
boot.extraModprobeConfig = ''
|
||||||
|
options kvm_amd nested=0 avic=1 npt=1
|
||||||
|
''; # Needed to run OSX-KVM
|
||||||
|
}
|
||||||
|
|
||||||
13
modules/wm/virtualisation/kvm-intel.nix
Normal file
13
modules/wm/virtualisation/kvm-intel.nix
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
#
|
||||||
|
# KVM module options intel
|
||||||
|
#
|
||||||
|
|
||||||
|
{ config, pkgs, user, ... }:
|
||||||
|
|
||||||
|
{ # Add libvirtd and kvm to userGroups
|
||||||
|
boot.extraModprobeConfig = ''
|
||||||
|
options kvm_intel nested=1
|
||||||
|
options kvm_intel emulate_invalid_guest_state=0
|
||||||
|
options kvm ignore_nsrs=1
|
||||||
|
''; # Needed to run OSX-KVM
|
||||||
|
}
|
||||||
@@ -5,12 +5,6 @@
|
|||||||
{ config, pkgs, user, ... }:
|
{ config, pkgs, user, ... }:
|
||||||
|
|
||||||
{ # Add libvirtd and kvm to userGroups
|
{ # Add libvirtd and kvm to userGroups
|
||||||
boot.extraModprobeConfig = ''
|
|
||||||
options kvm_intel nested=1
|
|
||||||
options kvm_intel emulate_invalid_guest_state=0
|
|
||||||
options kvm ignore_nsrs=1
|
|
||||||
''; # Needed to run OSX-KVM
|
|
||||||
|
|
||||||
users.groups.libvirtd.members = [ "root" "${user}" ];
|
users.groups.libvirtd.members = [ "root" "${user}" ];
|
||||||
|
|
||||||
virtualisation = {
|
virtualisation = {
|
||||||
@@ -9,14 +9,6 @@
|
|||||||
waybar
|
waybar
|
||||||
];
|
];
|
||||||
|
|
||||||
# nixpkgs.overlays = [ # Waybar needs to be compiled with the experimental flag for wlr/workspaces to work
|
|
||||||
# (self: super: {
|
|
||||||
# waybar = super.waybar.overrideAttrs (oldAttrs: {
|
|
||||||
# mesonFlags = oldAttrs.mesonFlags ++ [ "-Dexperimental=true" ];
|
|
||||||
# });
|
|
||||||
# })
|
|
||||||
# ];
|
|
||||||
|
|
||||||
home-manager.users.${user} = { # Home-manager waybar config
|
home-manager.users.${user} = { # Home-manager waybar config
|
||||||
programs.waybar = {
|
programs.waybar = {
|
||||||
enable = true;
|
enable = true;
|
||||||
Binary file not shown.
Binary file not shown.
@@ -19,29 +19,42 @@ let
|
|||||||
];
|
];
|
||||||
|
|
||||||
server = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDwN8p78OncPIRUfV64PLHOem4LtlQ3opOJwLEYqdGVx";
|
server = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDwN8p78OncPIRUfV64PLHOem4LtlQ3opOJwLEYqdGVx";
|
||||||
|
server2 = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPm3epi3v+yuskxQZgmPdkVDET8IGeYA6LbTCqPWqkz+";
|
||||||
dmz = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAmivVLbkJJ1anwQ8CeNT7rv0Qxinp1LIQIjVWZpnIE5";
|
dmz = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAmivVLbkJJ1anwQ8CeNT7rv0Qxinp1LIQIjVWZpnIE5";
|
||||||
hades = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEgnWyQUUa+vcHAKx6edbTgqW8ph+MCiS6fUwYjYcS+o";
|
hades = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEgnWyQUUa+vcHAKx6edbTgqW8ph+MCiS6fUwYjYcS+o";
|
||||||
nas = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPfKbeexWFg8nFEQvZCcFycrwil24c4HJxZazDQpnVNs";
|
nasbak = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOdoxslkKn3ouadPOHmDN7e5AtoJmnllnUmhl1j9qfzz";
|
||||||
jupiter = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDBQr9/TIeAd25h0gfOPjoHs6JMeye4V04LuFufbe1S/";
|
jupiter = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDBQr9/TIeAd25h0gfOPjoHs6JMeye4V04LuFufbe1S/";
|
||||||
steamdeck = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGV8tMIza5FOB3DQhiYaS3QG67n4J0e4okCrvoxPxneA";
|
steamdeck = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINcbvtlL9xFq6kcvE6x20/Es5PVWMhbBvra8HjGUm4NB";
|
||||||
|
laptop = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICLDA3tmyCR4ogX7mgwaEhsceqALQvq9IqXhg8rF0OIi";
|
||||||
|
homerunner = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIP5MASizLhydfxn0AWcG6LfeC4fghLTDVsLbEHDnIAhc";
|
||||||
|
serverrunner="ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHfLhlJX2VlZE4myreojQ0hqCSL28kE9Y3F65uumgrSK";
|
||||||
systems = [
|
systems = [
|
||||||
server
|
server
|
||||||
|
server2
|
||||||
dmz
|
dmz
|
||||||
hades
|
hades
|
||||||
nas
|
nasbak
|
||||||
jupiter
|
jupiter
|
||||||
steamdeck
|
steamdeck
|
||||||
|
laptop
|
||||||
|
homerunner
|
||||||
|
serverrunner
|
||||||
];
|
];
|
||||||
servers = [
|
servers = [
|
||||||
server
|
server
|
||||||
|
server2
|
||||||
];
|
];
|
||||||
dmzs = [
|
homerunners = [
|
||||||
dmz
|
homerunner
|
||||||
|
];
|
||||||
|
serverrunners = [
|
||||||
|
serverrunner
|
||||||
];
|
];
|
||||||
buildClients = [
|
buildClients = [
|
||||||
nas
|
nasbak
|
||||||
jupiter
|
jupiter
|
||||||
steamdeck
|
steamdeck
|
||||||
|
laptop
|
||||||
];
|
];
|
||||||
buildServer = [
|
buildServer = [
|
||||||
hades
|
hades
|
||||||
@@ -59,9 +72,12 @@ in
|
|||||||
"services/matrix/signal-registration.age".publicKeys = servers ++ users;
|
"services/matrix/signal-registration.age".publicKeys = servers ++ users;
|
||||||
"services/nextcloud/adminpassFile.age".publicKeys = servers ++ users;
|
"services/nextcloud/adminpassFile.age".publicKeys = servers ++ users;
|
||||||
"services/nextcloud/dbpassFile.age".publicKeys = servers ++ users;
|
"services/nextcloud/dbpassFile.age".publicKeys = servers ++ users;
|
||||||
|
"services/nextcloud/onlyofficedb.age".publicKeys = servers ++ users;
|
||||||
|
"services/nextcloud/onlyofficejwt.age".publicKeys = servers ++ users;
|
||||||
"services/gitea/databasePassword.age".publicKeys = servers ++ users;
|
"services/gitea/databasePassword.age".publicKeys = servers ++ users;
|
||||||
"services/gitea/mailerPassword.age".publicKeys = servers ++ users;
|
"services/gitea/mailerPassword.age".publicKeys = servers ++ users;
|
||||||
"services/gitea/runner-token.age".publicKeys = dmzs ++ users;
|
"services/gitea/homerunner-token.age".publicKeys = homerunners ++ users;
|
||||||
|
"services/gitea/serverrunner-token.age".publicKeys = serverrunners ++ users;
|
||||||
"keys/nixremote.age".publicKeys = buildClients ++ users;
|
"keys/nixremote.age".publicKeys = buildClients ++ users;
|
||||||
"keys/nixservepriv.age".publicKeys = buildServer ++ users;
|
"keys/nixservepriv.age".publicKeys = buildServer ++ users;
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
23
secrets/services/gitea/homerunner-token.age
Normal file
23
secrets/services/gitea/homerunner-token.age
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
age-encryption.org/v1
|
||||||
|
-> ssh-ed25519 1fxDZw HPqtOnCf0xv43GQmB6iSSLGK6r/5pCFFZJC37ioMIw0
|
||||||
|
VjvteDjUqqkBas9FzZKxlA1y5/TwIB44I7yNH3KBDYA
|
||||||
|
-> ssh-rsa VtjGpQ
|
||||||
|
Xx8tuS0ClpvIEn/diIhCInLuiNym22i0SQZCkFCz5V0FKNM0L9hzlqU2A2wLemgz
|
||||||
|
iy1So0jNJWGt9ylUCyPI9ucyLUgoXFXiQjaMkI85yj+xuUDHkmereRMW3AQD+2LL
|
||||||
|
+NHsmQQchtmQg/gCZY0MS7gq++ULDwlakAkwMP0U6T19i299eBSBL4Zoj00rKNlx
|
||||||
|
KLe0jbNlIe1uhVLYRfyz3S0I9z8gWDSQ8soFoqrJwKVHsO7wmH/3a0dCEWSHRRVm
|
||||||
|
MRfU/Oy7A8U+iD37z9DxSN2O6hKRLMDu/NyTXUV95ImYwOcA7ya4nShwpB7vZLop
|
||||||
|
Vu/BtX5HZ7JvBK3kApyR+Da5LYsBhqrDmqXqtykjn8TM0WG65jLKp5XolEcGEfUe
|
||||||
|
KrqVMhVm+d2AijpRvsbOv13B7UmZkxBP9+6/o7uujv9nV5uSoGwv9tZn9ubeZyXo
|
||||||
|
U7q3MaURqbgv6YV+h/aJ1X0URmPMyjUgkCLI3HbKJV+ZQH1jbNsn0aiVU0d0MXBb
|
||||||
|
cE1NIZdfrQ/+Mp14KuiKoY/ycrJPQkg+Au8LANSk/pzH/lvGO1EP50eBRz4hIqEg
|
||||||
|
RaNII+fQosyr10HPvlgMfEZQnDoG6H+Tvhgt4S6Ex9lyjKASnx/SQyRwhd9SPgDb
|
||||||
|
bArbSq4lJ59rqw7TX2IrkjDgvv/FMqdcxjW+kIOTWDQ
|
||||||
|
-> piv-p256 grR75w A1d8pk5Qfx1xq9vApCkKKj6gx1elqSYxLezwoChk3k7Z
|
||||||
|
AeYO+rslswXdRJK/pwe9m3CNHIKsrRkt1lamyysDNQk
|
||||||
|
-> piv-p256 RQguQQ AukcSmMTNQQZdr5zDOjMTnsOFZp5H5D5ohuVdIQUpUYM
|
||||||
|
aJqrWcaXdpfS2vakEu5vi/AMHnoUUrUpm0bRRcCxiE8
|
||||||
|
--- fNTWHdKIXpbJsZo2WnMAPXTNMtr0hKkgivCIi1qiQps
|
||||||
|
X<1E><>R0j<30>ebMB7v6<76><04>Ȧ~
|
||||||
|
몀<1E>8<=
|
||||||
|
2i<1E><><EFBFBD>2<EFBFBD>J<EFBFBD>]L<><4C>p
|
||||||
@@ -1,24 +1,23 @@
|
|||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 neExcQ LXaY3ewmx5MnMfi+4Roi02Y2GzWFhEjy2pTpkSfEfT8
|
-> ssh-ed25519 neExcQ Qx3NuIC3HnyhLAPB6NGLlO8073iIEXQ3VpVDvsPsLVk
|
||||||
7lYht0ZE3LosAVXqHVbz2Fm6T4JPCCG9echbjMlF77A
|
9Cz7AXaP/EorKrdLxMfaWJJsCIv5u6upJIaNbLiDleA
|
||||||
|
-> ssh-ed25519 WiIaQQ AS+i8m6vO83lj5vZ1lr+FiM1SO1v7BU6OWertpdTXSU
|
||||||
|
LIitIW7F/8idoKvgHmirFp1V9RlObyqOueDVIdBdRM0
|
||||||
-> ssh-rsa VtjGpQ
|
-> ssh-rsa VtjGpQ
|
||||||
kd14wE7F7KTDhzKJi8tiMIAsqe6pxTF/sfD5mGBs0b+3C51IWh895e+vhwgrHxfI
|
FdINMHPfPVgkQk0A5g6uDRQmZxI0h74QkJSdYUtHRfbqBP0R3f4TrqbtO4n6E7pR
|
||||||
VI7dBpd4UTSNRiSwx/eCEDSEOl6DSPCY7t7lPJGsPjQS5BL8EmdtADAo1yAU9rEs
|
5NYLkqyZND7ApC10hoQ2UJF22Ja06ZvWhhM7Zsl0X3u/58NhgXsXWy92I2sniBa4
|
||||||
BW7PhCk9eNeLALONmciL/yv6k40d8FIFPK63ypY05scCkU+AqDiekfkKRIxQiaPF
|
DF6T3AD4bQOF4Px2A/+lnA++NIWHdroqghojWOAZazvLFaFa6HtIdrTiMb2bojuU
|
||||||
iiWxlMNTscvcC30fwg8S4zTJYKh0oXqwMffU2laAWSQhJv3SviKKHDyaGHbJ5wx2
|
qxepekbRwJBEm9/5bKHZlEmwx3rJsYxrNKEkxPrBvNdPbnwgxrvhOXxeQJghyGGw
|
||||||
kgykPXqgfShPmAQl3LrkqTOvxFICYFLuugT9CA5EuociuotoUNlfoyF4LE7b2Z0P
|
vnCRHKDbqvRIWfkmftRjNQMHUSMitDJHUOPsG9z5KBr4M7n7B1bV5ozsLsVyUUmE
|
||||||
b2rNBa+DvCjsYNSJiVFOjrmSHsCqrpcJ7RuBsEqgnAYnaYwFKTYMflAOxMOHD4bB
|
6vBvrOPz9+RiE9H61PlAvPFMmKBTQgRf8+mjbU0RGxScqLcUoHCud2x3O+WqlLoP
|
||||||
f1rU6AGdpHZt5xPpZ9bgWZfOXzqpno/0aiai9SwoTlgvNRBgM1KPm/aajboQQ2Vk
|
TMQtye8ayRPgG3PbwP4pO3olcA9ANEdd2Jfo+HG4izbJxdCTbOMfEFTJIEfyGMIo
|
||||||
wMJvHd+KRoiHL4QkwS/mft1JQ17zt0N7SGYPlR1FnSgq+mgJbyPc5295r+qO0R9g
|
lo0Hh0EIijFAVfyAH6G/Rv1KggpINr8fTxbWz8i1PXTqzBsjfrqbHWWRrE/VJSYI
|
||||||
3pMFSOBRXALO07PuF2jfSJowNqU2aIycWxNjUeZbWkLrR4wTel4x7bUih1OiDi1d
|
x9bjSHeWCOs+IlZ2YEB8dshJe5smrTnKpFYrj3kvLHOiC1jKUJdDZooQex4nkXpW
|
||||||
TmZ4+BZuQwJjstV+mojyrVvV1w7sIsx1J1dyjXIcPgIqK5lxkg+D11JdyYdDuZ42
|
mMKIOb/VF6/QM3NkmJKLdnMJenIKL1Vqbrv/Lqu1/FaINqRsIGTXCsQs+JjxrcfX
|
||||||
US7LX7DOSsx/iQrTRfyoDxRi4a6sphVl2/lE6Jwj39I
|
zxpzs7Bk2eV/BaiJxJ7Cjfx1gO37GpL0kzCMuN1xnWs
|
||||||
-> piv-p256 grR75w AkfsfY91Pit4cKE1yg6xS6GmlODhMo58v1bxbjLddd23
|
-> piv-p256 grR75w Azu36XfRZ2Evj79zCs8RA5lwbMe2Je0oBI5JM+3MC/cO
|
||||||
fJwuiBS8UB4uTfI20KRYrPyrEJPKd9MBx/HLSzqz4Oc
|
p8nO/p2M3pvEevZLLItNDSz64Ju8yBA2GPBnTWMN25I
|
||||||
-> piv-p256 RQguQQ AqmmEtzX7LKGoRfdiYSuLkREEn0KE5u4k38Z+zyMKSVh
|
-> piv-p256 RQguQQ Av9ILPK7bsPNqgudLMq88MNSWrB+xrBVfxX3bjVCquvj
|
||||||
EWxdymiB8dhJEySExt6LjdVXxMQCmuuZthj+cXsWtjs
|
0iwRR9htchLUk88RRooXsP0H39FfybCPMQC8AMxgu/0
|
||||||
-> "[(Ov'-grease aWS@bx* zq _
|
--- puq9s7iYi1A0v+7Qhsqo05Yfxtg5kHJK66RM1TDLtNM
|
||||||
Ng6CzyaWMJPDMswH7Y/IJaK2yDVezQDzGjyliWr5nKZymvdY680Mxu9KH0D2MfOE
|
<1E>![<5B><><EFBFBD>u_<75>(*<2A>0<03>Ŵ8<C5B4><38><EFBFBD><EFBFBD><EFBFBD>"<22><>Fsn<73>"T<><54>-<2D><><EFBFBD><EFBFBD><EFBFBD><05><>w<1B>w'<0C><><EFBFBD>4<EFBFBD><34><EFBFBD>sd_<64>!
|
||||||
9g
|
|
||||||
--- m0Ys6yX+QEsSYThCOxW+QqXXAaAM1Dpc9B+X8VagZ0w
|
|
||||||
U[<5B>;<3B>;<3B>)<29><>Ι<EFBFBD><CE99>[#<23><>8<EFBFBD><38>?2$<24><>?<3F><><EFBFBD>8P<38>ʮ?Q<17><><EFBFBD>(<28><>n<EFBFBD><6E>C<EFBFBD>=zH<7A>]<5D><>hc5<63><35><EFBFBD><EFBFBD>
|
|
||||||
@@ -1,23 +1,21 @@
|
|||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 jFEPfw 7GPgqr38ed2vzHtIwvpdKXlYIPtwiZN4+qjg2Nr24lA
|
-> ssh-ed25519 1fxDZw TDpxzsr/x1p3WR7SKVetYVlKqdIxMI6w98tM5MIHC30
|
||||||
wu6432gsbtyuAPboG8KIAcYY0PJ+eoBsLv4TVNaW46s
|
HmWHgsw11pqILyvSl0FjeOokMuxlA9u128aAECK0Qvc
|
||||||
-> ssh-rsa VtjGpQ
|
-> ssh-rsa VtjGpQ
|
||||||
TkypDCoqc5bJq+9frLQ7smGWkB2NhaX9d+5n9LD6nOxis6l9zcNxkfenV1uYSprN
|
XTL+rQuSTsY42cuFi2HKBo/6xRa+5Aw0NJafCDg4PBYbNvZf8Q4EFtrX3k3JzUcE
|
||||||
mQFEpI3k6sOAhwbmj/E2cBdWOyycHbSj2twb0oC+7CWbZ1nnKdssXNk78F6WxqDc
|
fgzJI81h/ijl6FzvnAsfB0oMR/RIxHNdheIMxilsiaVGDS6ATnq8Mk7Ca67MtM5Y
|
||||||
ixeyvCX0iRD20zbx7Seu7fcWA/DyMp21i3+o6HgHm7xFXYHEY2TFietKcQ7k/AB5
|
Uc9XQ6I4qtL3rdpvnp3BjR3d1KfmwsTBeYJrl03vltLBN8twgD7mBabtjcl38u1A
|
||||||
uagAJqu9hDq0mt+FXUE8XF/2qCBjGrXe9MXJ2rRYgxTc5jpcOq7NGEWYlJRRoBU0
|
emcgc8qAhz45n+07yVnqRqdMUY3VntqyL2DzasaPhpQHqV0jwWATNMGJilpvOSpn
|
||||||
gxP/56VWwznOgC+OLM/bjHIsgwE72qAMepkNQfVTn9DW0QkTweUllgfkbGy2MWE7
|
it5VGZWGVjjHiGtwEGvuWBRi2+4jt02WwrDmlrqoSZxiqXW42XCa9pPn/X+U1UYE
|
||||||
mhhoj1qv7H/zba88Nqk8cBCIp5vqHYsylm4osxmGk0jDZp5YW4q4zzwEZTpFL7qO
|
dBJ1iPNc9EEQhr3sIewDAvjy2m4T/4wzY1gpgfiAY1FzgObZXOM3cv11yIAJU0ZX
|
||||||
UfKO3u6PSBqQXsR0rqyt9N6tlLPw5HfkbsrqsiLmIdd/uHGT7YzcgsBKSlOsz82a
|
nnDTgJmRysxvp/at1dEDbza8krIGcBW0tWYvKQdm2kh3m+nTZWI2Btmm+hT60qYX
|
||||||
/A1KpQk1t29uRZu3y1730m3JnSULp9J+u6v98JJYM45GOF7VD9W5fd3JXKbrzQU+
|
4pLNkz0WR1nwdzzw0mSYXbPLlFAb8OrKP8fGJKvC6VM8C/Tofp+gWbfGnAFIq0um
|
||||||
FA0o4NiKO3zRumFfKMQ6Abecjr4I7Bcb3aFKlm8TuoGaMokstEzzbudZ2UBpaWHV
|
hBcCK3hlg/QDdBV3jrIQyX+Vk+W3xe5QMjI8Oem9Jzy/y4MmMjUV7x8X5hd6KiK9
|
||||||
VaSVRwecJy3F3b6dCoamlkUaVieMcQ0xZeanxNh5Loms7+c/3fUVPTZxI1nAZj37
|
wc5Dt0VL1KgwomYLvrNnl32TAGK+tOVXPRLaFiR9jwsrJZ3GXlsxJO0W2hFjp3wk
|
||||||
POa6dQIa9BPjn37nKe2No85m1bOxPpqy6zbrY7FT+fg
|
GGX/CFqRy228of9ujc+yPi6r9SO4BNT0eelwEbp0Kfs
|
||||||
-> piv-p256 grR75w A4VeO8R3wsQSfkbM9i4NESS/5p79EEibx+fTwkPuOPA7
|
-> piv-p256 grR75w A4dwZqBbpqrb3KcacC1mupb7Nka8s7RlHfVcc07L1ApC
|
||||||
NO85JgDG1TOv2skm9U1iFDo8xiSvTZAZczkQiL7xowI
|
5xM0zPEnRoA08LEdQDl3qcsOaNXPHgyDJxfRV3ar8cA
|
||||||
-> piv-p256 RQguQQ ArSJyxYg05a15U9Gs3hLSt3Vpp5nnnc36ngsqJDXsH0D
|
-> piv-p256 RQguQQ AgC34mS9BXHs3UM7Xp7e66oMUKAJ7VASdxRCJuWnzZcz
|
||||||
CK+RirvNcHkWcZAhhOl2sfx0yVFt+TJg2LcqMyBTdpM
|
oOFQFWLUkQyGvHvmq2dZHDiE9J4J/wE3NBT1ASHtKRE
|
||||||
-> 'o!~-grease
|
--- fbj8iFIYKQvjNminxZ0TLt7S2RSdozKUhq2ARdI1L9s
|
||||||
hBkhbW9+6v5C07xTiZk9hcu3Dj2FI+tijs7w9Mqm4RzkLle/RK5GDg
|
<EFBFBD>>H<><48><EFBFBD>&<26>3<>L<EFBFBD><4C><,Dv܍c<><63><EFBFBD><EFBFBD><EFBFBD>BI<42>dJ<64>i%<25>gK׳`<60><19><><EFBFBD>g<>9kN<6B>CP<43><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>b<EFBFBD><62> <09><><EFBFBD><EFBFBD>a<1A><><EFBFBD>s=<1A><>"S
|
||||||
--- 3dgDTPOnrGF0aaqSAiuwupTNrF49vbHY0JeSojlgZ10
|
|
||||||
<EFBFBD><EFBFBD><EFBFBD>.<2E>L'<18><><EFBFBD>{MD<4D><44><02><><EFBFBD><03><12>@<40><>d<EFBFBD>*<2A><>I|<7C>`<60><>*<2A><><EFBFBD>)3u<33><18><><EFBFBD>Z<EFBFBD><12>ib<69><62>-<06>u<EFBFBD><1F>;K<>
|
|
||||||
23
secrets/services/gitea/serverrunner-token.age
Normal file
23
secrets/services/gitea/serverrunner-token.age
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
age-encryption.org/v1
|
||||||
|
-> ssh-ed25519 0qfOZA UTOzjwhqcVLmpf3P/nzO3aGKzKH0YKq04sUbFvMa/FE
|
||||||
|
a2MMcZXucDEXmy/uU7JapMsboImCGsUiPA2Pr/wB5yQ
|
||||||
|
-> ssh-rsa VtjGpQ
|
||||||
|
Nr2g/ocV0oTbZydmcRnESyI4VOJdMGafozm80EMarbQfmeeRCfi76jxct/gpnL00
|
||||||
|
P/2d/3pfvqbpuGZRg+Q/BCY0Vm2AujJ1P2UTxpnzC42iZu7qKWd5EY4z0Hok53kg
|
||||||
|
McPh+pgNhugLr4Yh2KHpT27FfJpD/Pmjajg7G78Q9P5uel6SKXIW4uFO4Lp2yLC/
|
||||||
|
vC52XMqxLrR9moCTr72dQPzd0IIhQ2vN9EtZkBnxUW6zt3ILAYJ06VLAGvVwXIWl
|
||||||
|
0Wjs3G5g5v+H2e+Em5vIy1hdub/3orEL4racHO0m0binK/IVRJY7sjZDVDrrerFS
|
||||||
|
SqPORQ3a7jmuHFeHxwAlRcmh/O1gEgAnCZTZRfQzgXI+nfPEzuL0yENd/ksUPBdm
|
||||||
|
q2zQSv1rrj/tLMtxk4vpG8FkPp5UctaYignvHAp95xC+TR14aDUdT4x4MGboHIxu
|
||||||
|
l6Q3evVJzblwIl3JbzpP3yOA2k25Y1KI+nVDrTqAdi+Yy4jtIOA+XancIHrpLzAO
|
||||||
|
21JO1wwGtAsjUDCdhnYSyMcOiRLRHzPoK7o/BGx6b1Uqk2WmWhZnZft9MHPp2RtX
|
||||||
|
Gv3PBMVjz2CO+f3d8B4akPSApgQ9fw1Vje5fY0CDWdORV7tHDCKb6fmTua2d73Iz
|
||||||
|
ANrKYonqWhjf3F9u7zzM8/xd593AH/Y+aJo+z0S+Z6I
|
||||||
|
-> piv-p256 grR75w Ap4du3RBcNdRvbwjQTpP5PPXtNCRuoQePt6ULYEpNM1r
|
||||||
|
4Qe4c6j7df/TajuxM5Q1qnC/TCBNNI5K9WCDqD4VM1M
|
||||||
|
-> piv-p256 RQguQQ AoR+aGTAQ6VELef54cGpukkWjeKz37tDbW93ncGWFsrI
|
||||||
|
KbF1N14PYEQ28a/MePeq7hW9LAgUaNriFo6UO0eBvt4
|
||||||
|
--- F8GiyUf87+vhg22ldWuC2j5K8WGAK3y5lRDG6yrzBPQ
|
||||||
|
a<18>$<24>-<2D><>|<7C>h.cr38<33><38><EFBFBD><EFBFBD>Pw<50>3<EFBFBD><19>Nh<4E><68><EFBFBD>B<EFBFBD>j !z^<5E><> b<>8c<38><63><EFBFBD>m<EFBFBD>s<EFBFBD><03><>
|
||||||
|
<EFBFBD>\<5C>3<EFBFBD><18><><EFBFBD>f<>x3|<7C>Ne<4E>
|
||||||
|
=:<3A>
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,23 +1,23 @@
|
|||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 neExcQ TnOqlJWKlTHYcjKkI93gX7pU1WzUbTnk0ZDlxQ/DQlw
|
-> ssh-ed25519 neExcQ VfWt68buOl2UetDKcQWuWRSOeJi4HhQxiZVI4lIfcUU
|
||||||
4Z51QfzVwEWZLRv6o3H5lf8oRbaEPtYokj/rzrUvX8s
|
GTWI83cLyP2Kjd6twRpaWpBq+U/BYcfDJeljQ1CZ1bw
|
||||||
|
-> ssh-ed25519 WiIaQQ nqwbWtevakrHk3sODtw7l40klSb4cIyi4uSsnpcS8QI
|
||||||
|
PxfriZ8CdPhPTNtjQL3lsyjfjkpBsnmJc0TRNM1pyHM
|
||||||
-> ssh-rsa VtjGpQ
|
-> ssh-rsa VtjGpQ
|
||||||
StqKhCul2zY2ktLQGjMzwZVp5vNajGoSfx/RFje3mgtL1NfInabAJ+dFveiEEq8H
|
QRSdhHdAcGlw2c1hxGNmtAp5tPcjQ7CI+v9JkOyOH9W9KF3uOfshrpkz/psFPd+s
|
||||||
uhXBvufZdBRdpU859MDirkLQjzh22Fc90L2OZQIdsyi+V+VrDmgLl2Qj0SKVZ5/Y
|
6eqQDAwEAgla4pO6FHj/H2PK9KDHY3j2e8BZyvJ8ZsefUsSAYJ92hcD3fdISL+kc
|
||||||
kB+fXvgzDqeDzRqritxy7MxEL2dW8XGjRcb0td3Rg+/x6v2WM3ZmxJUrEJGboCSF
|
+FMx4Dlm9LSeGGqElbPotyU69t2O/WLF01HqLDVgHrlyTzWvQMhvATA5Yzcj1Izb
|
||||||
6q51TO0bAvnwcEeKtcdbFjIqhQraIFPj8DaAorAmotp+NNi6tRhIzO7aR4Hdk7eH
|
0AlA7IOE174E448/Ovo5a2T+DF0w2vLEPruH90Kvs2lui+i8yC3StgBwB6flmSfc
|
||||||
Q12QRGOgBTPZJd9m6gQEV0rixhh6mQ5Whs2PfFlQVwnIjaGh1DDXHlbIqHGH9s4V
|
dSR5qO0XCZ8gK/kkdsz2iZonsBCbEugQayN+EoE8vop6YlPW36EtO8IJnVnKmVEX
|
||||||
Dx4Dv0XqLHxy8+HTvKIzE438gYC9C6PGpO20PHC8vE3FLU+cm/tA5enKKDnCOU/J
|
vy/Rj3dubm5Wsp2hAyeXSXx3ity5fdSJ3TVY7TiPLPlt1yik3Wggtv0DlgZK0AML
|
||||||
A3e8lj7Fiko5m9k2GXPqMCtvIRNCxBUxntcDL2RhUTKK4uEALoaeA3Xw3htITFrJ
|
x1OJbrZRrzDZKYzxXw69+lOiV5XfVUfk9PXC+IAj3xf/dEz93b6Pief+PbOQg+tz
|
||||||
aqep3Of9XWfkuZtxTVzeTzf2T5g+Q4LjHBHgpINuprW5+nTU8YP3+HEzbNwSpGVf
|
INDWkL67/Yx6rEf41iLCsQananBV16IeM2SndRyrmT/1OCcLUR/8xqBHfOg/K0kp
|
||||||
N7XSz7L04uvPc98ZHqcuIo8B1QHI/d5M46HNrT/Z2zCPxCQ/eOEkkrwJkeY/voFY
|
lHL7D7/neqRh2E8KOEciHgWFqWT/tV5XpyZVvA8OiYLoVbmLG55q4pexrDfQ9OgT
|
||||||
c9OCyM2GRBD7CFhicWrasHSxSHRtDLznqyX6NKAUHwIuwjtLohPErbQTV0vh0G+F
|
ZDIL94VjiBDH5BmPfxLhRZP/58EhLSDH3WziIWnv6Y2Y1bAl5qiRU4tEV0RCHqyJ
|
||||||
YL82v7QJeDnOZYoGzdQFrvWcKcJY0bWt7GOLx9oqu68
|
xEeLcqI5uFwDmmt881zlyAb38oQCGq/YRXhGygwwn18
|
||||||
-> piv-p256 grR75w AyXIgGxLpkrcKe6PJwkxfchvTuT0w36Za++hSO4Zvy1A
|
-> piv-p256 grR75w Ayt9mI1/BJg96jlkLVjf7xhDoklNuoFe3ZeKLYzFqDPO
|
||||||
lCZ6j1xYTyBPRyOgmAv7uFMBTHRFrkVPcTXgoOW2FDY
|
S3vFS+S4ZVC2O00P5u5GKaLtbabBPUCuuFNFFxcmmUw
|
||||||
-> piv-p256 RQguQQ A3hwwpWy5jxYbBNaQ16DgZUjTvB8xVrfk1EYpIj/iQYG
|
-> piv-p256 RQguQQ AqsDGN35gXkyWaKSRVATyt1Ap5gzLKiAx+UHwhVXdhhG
|
||||||
8OLSxsrs2Q5dxtSjNj2RNpfjNvosB064UUW5oQ3veUw
|
YUqypxYBQ2RYbnMclNa8PSLV6atbVRCho4wHUCZegkU
|
||||||
-> ~y6!%p-grease lz07kqJH
|
--- Bay62OwVx/Q8Nf5MHRu7VOWzwh1LtkWbxQytL16Y5Zg
|
||||||
CXHrusViKg4
|
<01>n(/GZv<5A><76> <20>!<15><><02><><EFBFBD><EFBFBD>fs<66><73><EFBFBD>#<23><><EFBFBD>v5<76>K_<4B><5F>t<EFBFBD>k<EFBFBD><6B><EFBFBD>s7P<37><50><EFBFBD><14><><07>k
|
||||||
--- 2ZGjhpfYnZGZV7Q7nSIQEmiGZBg3bGzZG+UOs1RMN0U
|
|
||||||
K<EFBFBD>E<EFBFBD>D<EFBFBD>A<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ZqiSx<EFBFBD>|<7C>05Zπ*K<><1D><>t1<74><31>(<28><>HW<48><57>j,<2C><>:,<2C><><EFBFBD>kw»<77>
|
|
||||||
24
secrets/services/nextcloud/onlyofficedb.age
Normal file
24
secrets/services/nextcloud/onlyofficedb.age
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
age-encryption.org/v1
|
||||||
|
-> ssh-ed25519 neExcQ XvGpJsiChcxBbL7c5CK2mUvdFHV5ypmx5tpWVfwuESg
|
||||||
|
1WI2nm5/oPtCqXD0N2WStDOh91UT7IIS4/vFwWL6UA8
|
||||||
|
-> ssh-ed25519 WiIaQQ SLJfhzdJpYzzzqFqrR67GrAuTWFJYfX10iidobo5xxs
|
||||||
|
KF+r/AOKKLHqSf1h5AOJd/3IZTKm442ejUnWVhk04/o
|
||||||
|
-> ssh-rsa VtjGpQ
|
||||||
|
AKdJLoXUUX82mhV84R8noG1qLnD/uvArV0gsYxJuS0hTnkZOyxV1XgqgH6UrgaUw
|
||||||
|
G6Q7aYbiNYMA4+6rhyWOnH8I5QRcCVEK5y8jtiyTEU3QaPAXVhEq1NpfzrsyHd7w
|
||||||
|
CB8mfSSAG9jE1owvuuubxEqx4YKu1oH9kh37GIeKmJlz67qJGqT6BnRMMxpU46xA
|
||||||
|
C0+c/3CURj4N4fFtxWNVpxb8v4tUYRmA1Jq/FnqqdAqFIyw466eQVglT8YDQJvHs
|
||||||
|
ufyR7Gnbk94qvXXg5G878eviQL2T+c/xEtVEyLeHs017dNq5FxeBBzEMwqAKshCh
|
||||||
|
OtH4AJt+U0Rzq0JTIpRH/0V1exK1PM/9DL1KBQPAlfUBb9iYwKsQo6LieXS+Qowo
|
||||||
|
qMTPD3xSfOD6uzmKhXCdWKZWZT6S2hwHjeXzXjYjkhErjbwjj5c2v4UpXpwdVlNN
|
||||||
|
zocqPxVGCplFuiME0vLsuztiWtei2yH9ZgFKxNS/kxm8GfhyelAnAQng3r25YYwZ
|
||||||
|
nLgGP0bcADAgwgXGTFxlyY2qoM9MKgnbjhtfwImLlF+WbC+IOUwBDklSgq830MKO
|
||||||
|
ZQVccNwuZoO+jivXpfGM4XApK7pUXlz/0nc8jRE7u2zXpXLqv+fLXxgTXFYlrogT
|
||||||
|
66dmjeUBrB/kMS2IP52ZdpdO3eGY1a75H5W+DtMeAOU
|
||||||
|
-> piv-p256 grR75w A4Gic6auHqevWiBh3WizXvYxjX6e6JToxNBXEMM5SZxL
|
||||||
|
0epbF/vqJyp3Cn4Hr3ay751J1I089Hxus1vn8jgCa8g
|
||||||
|
-> piv-p256 RQguQQ A12b6QQk3G0/ksYw0D0Rfx0DKMYK5Lnfi2q2tdtMoEfr
|
||||||
|
zqAf5KbFsPpemu2I9YaBNipQsiz2Lo3JbuxZ1gMNQl4
|
||||||
|
--- a92cT7ctHL8S0/tTCY/rkfy94THEcoaIEPL3vLrW9Z8
|
||||||
|
<EFBFBD>
|
||||||
|
u+ T<><54>:<1A>M<EFBFBD><4D>ϵO<>+t<>X'<27>r<EFBFBD><72>
|
||||||
23
secrets/services/nextcloud/onlyofficejwt.age
Normal file
23
secrets/services/nextcloud/onlyofficejwt.age
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
age-encryption.org/v1
|
||||||
|
-> ssh-ed25519 neExcQ 39vMfysEahyydxnqENrwNOZi9yWpZSIWsNQxkMFBQik
|
||||||
|
bvJK5Gya20UhZ/dWKHAQZ7CPa7v/pISwB90WJejYA5k
|
||||||
|
-> ssh-ed25519 WiIaQQ KZ6RU6kDjHVfy5YwlmjQhH6YBVkJqrRonUl02iYA2m0
|
||||||
|
GGsCI2D1tN4lGpsHJph6pq9N8UYdG2mfIY3U9urTR08
|
||||||
|
-> ssh-rsa VtjGpQ
|
||||||
|
a0oXJCsFZdtpHuZIASZUp5C96ZP1QU1I3RSpIe59hnnpGLbXZE2qntXBfQ9ojkBW
|
||||||
|
bgNdxvAcWLaYAiCbe6Bo3S9+Q2svJQlEqIZ59o2H9jh+swSoLfWgi0Blo/56B0GQ
|
||||||
|
UrltI0ftMhM20TaszHwmVhvo3yODcZpNhjAMNVkQuAov9BSQdgGRgivBnt1FfYYI
|
||||||
|
f6nqfrE5JVoemk72Ip4jQFVWylK7drEU9W2WlwOsF9zkHOJxdNWiaaHpmnsgOEzA
|
||||||
|
BIdVqYZTtRElqDKM3j4SdE7hL6i4fIb4QAsfX5XI09eUDQLSRGF2o3lqQ4FVx+hb
|
||||||
|
YE31vr6yQEObTCbrf7zmKIK5UwgQbMf8+WbCxDdxF7FqTKrg7jVhPtu+n6UsJlzv
|
||||||
|
CXsJkKYZwyESZ5oNjCyqYkkkQP0JChl886OPFY507/Xn3gl3qj/Sh7FZyUuLZ92X
|
||||||
|
aTHCJ5AHGwQKFnVO1YLXWDcn0F3NIq90YHJ1NsxNvNXZJmcCyBTMtDJGq3q/6Xqz
|
||||||
|
qXpVoT/9XHHStrKYvi2lut/PFMC6nciixmiNaVbE5Aok5eNhG8wUTsUVRIr8+O/i
|
||||||
|
07aQBeg7RJ7lW6oQ4/kdfufQbQHuQNchQzkdvQf3azXCXBTJ/+Z6uQuVg32MVsjq
|
||||||
|
fRO2BtrWjsAVThpeVAdfQb2b43wmL9HBhivqYaBK1gI
|
||||||
|
-> piv-p256 grR75w A9sg2H7x+75AK9ErkbqMkC06KEDy2Q34seCXCGUguz6H
|
||||||
|
1TchlkXOzymAT+eDr4bpwugeLQ7gAKRvdYC2xcd9DL8
|
||||||
|
-> piv-p256 RQguQQ A364N/An/SMqBAp0yrLB0/osdlmz/MgZFG4RB6Os2fLX
|
||||||
|
V4qtGLbpJrTTFWCfTMcWpuVUiLflDdxXkMqPOtG1R/k
|
||||||
|
--- O4Xqa0RavBa09l9txN/oIQjAeZIYsur2UsxaSRmhAdE
|
||||||
|
<EFBFBD><EFBFBD><0F><>`<60><><EFBFBD><EFBFBD>Dk<44><08>/9<><39><EFBFBD>o Qz<51>#fIN<49><4E>J<EFBFBD><4A>3<EFBFBD>Koڵ@<40>><3E>Zz<5A><7A>Ip<49><70><EFBFBD>h<EFBFBD><68>
|
||||||
Binary file not shown.
Reference in New Issue
Block a user