use colmena

This commit is contained in:
Daniel Bulant 2025-08-24 21:23:53 +02:00
parent 10eeb789e6
commit 30fc8a8d17
No known key found for this signature in database
9 changed files with 185 additions and 5847 deletions

View file

@ -2,7 +2,7 @@
My dotfiles and nix setup incl. scripts for hyprland and some other goodies. My dotfiles and nix setup incl. scripts for hyprland and some other goodies.
Please do edit configuration of at least hyprland - default configuration is very specific to my setup (involves monitor scaling) Please do edit configuration of at least hyprland and file systems - default configuration is very specific to my setup (involves monitor scaling).
Quickshell config based on (end-4's config)[https://github.com/end-4/dots-hyprland], you'll have a better time configuring them (gui settings for non-nix users). Quickshell config based on (end-4's config)[https://github.com/end-4/dots-hyprland], you'll have a better time configuring them (gui settings for non-nix users).
@ -10,6 +10,10 @@ Quickshell config based on (end-4's config)[https://github.com/end-4/dots-hyprla
![](./screenshots/kitty.png) ![](./screenshots/kitty.png)
## Servers
This also includes configuration for some of my (home) servers. Those are managed by colmena, but can also be instantiated locally using flakes.
## Used software ## Used software
I'm using NixOS. A lot of packages are missing, for the full list see [`home.nix`](./home.nix). I'm using NixOS. A lot of packages are missing, for the full list see [`home.nix`](./home.nix).

File diff suppressed because it is too large Load diff

Before

Width:  |  Height:  |  Size: 205 KiB

View file

@ -154,6 +154,7 @@ in
"https://nix-community.cachix.org" "https://nix-community.cachix.org"
"https://hyprland.cachix.org" "https://hyprland.cachix.org"
"https://nix-gaming.cachix.org" "https://nix-gaming.cachix.org"
"https://colmena.cachix.org"
]; ];
trusted-public-keys = [ trusted-public-keys = [
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="

View file

@ -37,6 +37,28 @@
"type": "github" "type": "github"
} }
}, },
"colmena": {
"inputs": {
"flake-compat": "flake-compat",
"flake-utils": "flake-utils",
"nix-github-actions": "nix-github-actions",
"nixpkgs": "nixpkgs",
"stable": "stable"
},
"locked": {
"lastModified": 1755272288,
"narHash": "sha256-ypTPb2eKcOBbOoyvPV0j4ZOXs4kayo73/2KI456QnE0=",
"owner": "zhaofengli",
"repo": "colmena",
"rev": "5bf4ce6a24adba74a5184f4a9bef01d545a09473",
"type": "github"
},
"original": {
"owner": "zhaofengli",
"repo": "colmena",
"type": "github"
}
},
"dolphin-overlay": { "dolphin-overlay": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -58,6 +80,22 @@
} }
}, },
"flake-compat": { "flake-compat": {
"flake": false,
"locked": {
"lastModified": 1650374568,
"narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "b4a34015c698c7793d592d66adbab377907a2be8",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_2": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1696426674, "lastModified": 1696426674,
@ -91,6 +129,21 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils": {
"locked": {
"lastModified": 1659877975,
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"gitignore": { "gitignore": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -230,7 +283,7 @@
"hyprlang": "hyprlang", "hyprlang": "hyprlang",
"hyprutils": "hyprutils", "hyprutils": "hyprutils",
"hyprwayland-scanner": "hyprwayland-scanner", "hyprwayland-scanner": "hyprwayland-scanner",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs_2",
"pre-commit-hooks": "pre-commit-hooks", "pre-commit-hooks": "pre-commit-hooks",
"systems": "systems", "systems": "systems",
"xdph": "xdph" "xdph": "xdph"
@ -466,14 +519,14 @@
"nix-gaming": { "nix-gaming": {
"inputs": { "inputs": {
"flake-parts": "flake-parts", "flake-parts": "flake-parts",
"nixpkgs": "nixpkgs_2" "nixpkgs": "nixpkgs_3"
}, },
"locked": { "locked": {
"lastModified": 1755913811, "lastModified": 1756001208,
"narHash": "sha256-FhpVdDLW2uNXloJni6DkXMKATMxvAQ2HfbOu23QwLOE=", "narHash": "sha256-IXBb1RNIy4gNlDyeC5oaXXZwS8x9UYtFCA9Rr0/JPs8=",
"owner": "fufexan", "owner": "fufexan",
"repo": "nix-gaming", "repo": "nix-gaming",
"rev": "b44f0ddc0912702662ae36ab265633d6cef3ea26", "rev": "8f7fa30bd3f36f411133152f5980bafff5d8426e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -482,6 +535,27 @@
"type": "github" "type": "github"
} }
}, },
"nix-github-actions": {
"inputs": {
"nixpkgs": [
"colmena",
"nixpkgs"
]
},
"locked": {
"lastModified": 1729742964,
"narHash": "sha256-B4mzTcQ0FZHdpeWcpDYPERtyjJd/NIuaQ9+BV1h+MpA=",
"owner": "nix-community",
"repo": "nix-github-actions",
"rev": "e04df33f62cdcf93d73e9a04142464753a16db67",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nix-github-actions",
"type": "github"
}
},
"nix-index-database": { "nix-index-database": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -489,11 +563,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1755404379, "lastModified": 1756008611,
"narHash": "sha256-Q6ZxZDBmD/B988Jjbx7/NchxOKIpOKBBrx9Yb0zMzpQ=", "narHash": "sha256-rfTBWuTXi9/X7GhtF562FKNXKh2kvKb6dwI5lV1SjPE=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nix-index-database", "repo": "nix-index-database",
"rev": "ebbc1c05f786ae39bb5e04e57bf2c10c44a649e3", "rev": "52dec1cb33a614accb9e01307e17816be974d24d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -519,11 +593,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1751792365, "lastModified": 1750134718,
"narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=", "narHash": "sha256-v263g4GbxXv87hMXMCpjkIxd/viIF7p3JpJrwgKdNiI=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb", "rev": "9e83b64f727c88a7711a2c463a7b16eedb69a84c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -566,11 +640,27 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1755268003, "lastModified": 1751792365,
"narHash": "sha256-nNaeJjo861wFR0tjHDyCnHs1rbRtrMgxAKMoig9Sj/w=", "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "32f313e49e42f715491e1ea7b306a87c16fe0388", "rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1755829505,
"narHash": "sha256-4/Jd+LkQ2ssw8luQVkqVs9spDBVE6h/u/hC/tzngsPo=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "f937f8ecd1c70efd7e9f90ba13dfb400cf559de4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -580,13 +670,13 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_3": { "nixpkgs_4": {
"locked": { "locked": {
"lastModified": 1755704039, "lastModified": 1755922037,
"narHash": "sha256-gKlP0LbyJ3qX0KObfIWcp5nbuHSb5EHwIvU6UcNBg2A=", "narHash": "sha256-wY1+2JPH0ZZC4BQefoZw/k+3+DowFyfOxv17CN/idKs=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "9cb344e96d5b6918e94e1bca2d9f3ea1e9615545", "rev": "b1b3291469652d5a2edb0becc4ef0246fff97a7c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -596,7 +686,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_4": { "nixpkgs_5": {
"locked": { "locked": {
"lastModified": 1755615617, "lastModified": 1755615617,
"narHash": "sha256-HMwfAJBdrr8wXAkbGhtcby1zGFvs+StOp19xNsbqdOg=", "narHash": "sha256-HMwfAJBdrr8wXAkbGhtcby1zGFvs+StOp19xNsbqdOg=",
@ -614,7 +704,7 @@
}, },
"pre-commit-hooks": { "pre-commit-hooks": {
"inputs": { "inputs": {
"flake-compat": "flake-compat", "flake-compat": "flake-compat_2",
"gitignore": "gitignore", "gitignore": "gitignore",
"nixpkgs": [ "nixpkgs": [
"hyprland-plugins", "hyprland-plugins",
@ -638,17 +728,34 @@
}, },
"root": { "root": {
"inputs": { "inputs": {
"colmena": "colmena",
"dolphin-overlay": "dolphin-overlay", "dolphin-overlay": "dolphin-overlay",
"home-manager": "home-manager", "home-manager": "home-manager",
"hyprland-plugins": "hyprland-plugins", "hyprland-plugins": "hyprland-plugins",
"nix-gaming": "nix-gaming", "nix-gaming": "nix-gaming",
"nix-index-database": "nix-index-database", "nix-index-database": "nix-index-database",
"nixos-hardware": "nixos-hardware", "nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_3", "nixpkgs": "nixpkgs_4",
"nixpkgs-unstable": "nixpkgs-unstable", "nixpkgs-unstable": "nixpkgs-unstable",
"zen-browser": "zen-browser" "zen-browser": "zen-browser"
} }
}, },
"stable": {
"locked": {
"lastModified": 1750133334,
"narHash": "sha256-urV51uWH7fVnhIvsZIELIYalMYsyr2FCalvlRTzqWRw=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "36ab78dab7da2e4e27911007033713bab534187b",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-25.05",
"repo": "nixpkgs",
"type": "github"
}
},
"systems": { "systems": {
"locked": { "locked": {
"lastModified": 1689347949, "lastModified": 1689347949,
@ -714,14 +821,14 @@
"zen-browser": { "zen-browser": {
"inputs": { "inputs": {
"home-manager": "home-manager_2", "home-manager": "home-manager_2",
"nixpkgs": "nixpkgs_4" "nixpkgs": "nixpkgs_5"
}, },
"locked": { "locked": {
"lastModified": 1755922982, "lastModified": 1756009581,
"narHash": "sha256-YMchUKtaIhICzwwiAP/j6G+KaqRA8xSnGV2dfdVXoHw=", "narHash": "sha256-2I/NyYJm6Zq6fJ1YQWSY1S77LjXw+woFYUYEwU91uCc=",
"owner": "0xc000022070", "owner": "0xc000022070",
"repo": "zen-browser-flake", "repo": "zen-browser-flake",
"rev": "25f56c0f5b813312f38078418b2229ada41c4bcc", "rev": "0f80eb175059149c59edde75202721cab3384464",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -23,9 +23,11 @@
nix-index-database.url = "github:nix-community/nix-index-database"; nix-index-database.url = "github:nix-community/nix-index-database";
nix-index-database.inputs.nixpkgs.follows = "nixpkgs"; nix-index-database.inputs.nixpkgs.follows = "nixpkgs";
colmena.url = "github:zhaofengli/colmena";
}; };
outputs = { zen-browser, nixpkgs, dolphin-overlay, hyprland-plugins, /*hyprland,*/ home-manager, nixpkgs-unstable, nix-gaming,nix-index-database, ... }@attrs: { outputs = { nixpkgs, colmena, zen-browser, dolphin-overlay, hyprland-plugins, home-manager, nixpkgs-unstable, nix-gaming, nix-index-database, ... }@attrs: {
nixosConfigurations.lenovo-nix = nixpkgs.lib.nixosSystem { nixosConfigurations.lenovo-nix = nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
specialArgs = attrs; specialArgs = attrs;
@ -36,7 +38,7 @@
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.users.dan = (import ./home.nix) { inherit zen-browser nixpkgs-unstable nix-gaming /*suyu hyprland*/ hyprland-plugins; }; home-manager.users.dan = (import ./home.nix) { inherit colmena zen-browser nixpkgs-unstable nix-gaming hyprland-plugins; };
home-manager.backupFileExtension = "backup"; home-manager.backupFileExtension = "backup";
} }
./configuration.nix ./configuration.nix
@ -52,5 +54,16 @@
./servers/eisen/configuration.nix ./servers/eisen/configuration.nix
]; ];
}; };
colmenaHive = colmena.lib.makeHive {
meta = {
nixpkgs = import nixpkgs {
system = "x86_64-linux";
overlays = [];
};
};
eisen = import ./servers/eisen/configuration.nix;
};
}; };
} }

View file

@ -1,4 +1,4 @@
{ zen-browser, nix-gaming, nixpkgs-unstable,/* suyu, */hyprland-plugins/*, hyprland*/, ... }: { colmena, zen-browser, nix-gaming, nixpkgs-unstable,/* suyu, */hyprland-plugins/*, hyprland*/, ... }:
{ pkgs, inputs, ...}: { pkgs, inputs, ...}:
let let
@ -18,6 +18,7 @@ in
stateVersion = "24.05"; stateVersion = "24.05";
packages = with pkgs; [ packages = with pkgs; [
colmena.defaultPackage.${system}
usbimager usbimager
bitwarden-desktop bitwarden-desktop
metasploit metasploit

View file

@ -1,10 +1,10 @@
{ config, pkgs,nixpkgs-unstable, lib, nixos-hardware, ... }: { config, pkgs, lib, name ? "eisen", ... }:
let
unstable-pkgs = nixpkgs-unstable.legacyPackages.x86_64-linux; #import nixpkgs-unstable.nixosModules.readOnlyPkgs {};
# unstable-pkgs = hyprland.inputs.nixpkgs.legacyPackages.${pkgs.stdenv.hostPlatform.system};
in
{ {
deployment = {
buildOnTarget = true;
};
imports = [ imports = [
./hardware-configuration.nix ./hardware-configuration.nix
]; ];
@ -15,7 +15,7 @@ in
}; };
networking = { networking = {
hostName = "eisen"; hostName = name;
nameservers = ["1.1.1.1"]; nameservers = ["1.1.1.1"];
networkmanager.enable = true; networkmanager.enable = true;
}; };
@ -31,6 +31,8 @@ in
}; };
services = { services = {
logind.lidSwitchExternalPower = "ignore";
localtimed.enable = true; localtimed.enable = true;
openssh.enable = true; openssh.enable = true;
tailscale = { tailscale = {
@ -45,6 +47,8 @@ in
enable = true; enable = true;
openDefaultPorts = true; openDefaultPorts = true;
}; };
}; };
systemd.services.syncthing.environment.STNODEFAULTFOLDER = "true"; systemd.services.syncthing.environment.STNODEFAULTFOLDER = "true";
@ -96,6 +100,20 @@ in
nvtopPackages.full nvtopPackages.full
btop btop
lshw lshw
bat
lsd
fastfetch
fish
nix-output-monitor
nh
duf
dust
cachix
qemu
ffmpeg
httpie
socat
websocat
]; ];
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;

View file

@ -24,6 +24,12 @@
options = [ "fmask=0077" "dmask=0077" ]; options = [ "fmask=0077" "dmask=0077" ];
}; };
fileSystems."/media/large" = {
device = "/dev/disk/by-label/large";
fsType = "btrfs";
options = [ "subvol=@" "nofail" "exec" "users" ];
};
swapDevices = swapDevices =
[ { device = "/dev/disk/by-uuid/f26a39ff-50dc-46f7-a0e2-1b7b67525c04"; } [ { device = "/dev/disk/by-uuid/f26a39ff-50dc-46f7-a0e2-1b7b67525c04"; }
]; ];

View file

@ -1,11 +0,0 @@
sudo nix-channel --add https://github.com/nix-community/home-manager/archive/release-24.11.tar.gz home-manager
sudo nix-channel --add https://github.com/NixOS/nixos-hardware/archive/master.tar.gz nixos-hardware
sudo nix-channel --add https://nixos.org/channels/nixos-unstable nixos-unstable
sudo nix-channel --add https://nixos.org/channels/nixos-24.11 nixos
sudo nix-channel --update
nix-channel --add https://github.com/nix-community/home-manager/archive/release-24.11.tar.gz home-manager
nix-channel --add https://github.com/NixOS/nixos-hardware/archive/master.tar.gz nixos-hardware
nix-channel --add https://nixos.org/channels/nixos-unstable nixos-unstable
nix-channel --add https://nixos.org/channels/nixos-24.11 nixos
nix-channel --update