adding beszel agents

This commit is contained in:
RingOfStorms (Joshua Bell) 2025-11-18 23:25:21 -06:00
parent 53bb2eda92
commit 47ef50388a
9 changed files with 280 additions and 11 deletions

27
flakes/beszel/flake.lock generated Normal file
View file

@ -0,0 +1,27 @@
{
"nodes": {
"beszel-nixpkgs": {
"locked": {
"lastModified": 1763421233,
"narHash": "sha256-Stk9ZYRkGrnnpyJ4eqt9eQtdFWRRIvMxpNRf4sIegnw=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "89c2b2330e733d6cdb5eae7b899326930c2c0648",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"beszel-nixpkgs": "beszel-nixpkgs"
}
}
},
"root": "root",
"version": 7
}

67
flakes/beszel/flake.nix Normal file
View file

@ -0,0 +1,67 @@
{
inputs = {
beszel-nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
};
outputs =
{
beszel-nixpkgs,
...
}:
{
nixosModules = {
hub = { ... }: { };
agent =
{
config,
lib,
pkgs,
...
}:
let
declaration = "services/monitoring/beszel-agent.nix";
nixpkgs = beszel-nixpkgs;
beszelPkgs = import nixpkgs {
system = pkgs.stdenv.hostPlatform.system;
};
in
{
disabledModules = [ declaration ];
imports = [ "${nixpkgs}/nixos/modules/${declaration}" ];
options.beszelAgent = {
listen = lib.mkOption {
type = lib.types.str;
description = "The listen:port address for agent";
};
token = lib.mkOption {
type = lib.types.str;
description = "The token for agent";
};
key = lib.mkOption {
type = lib.types.str;
description = "The public key for hub";
default = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDcAr8fbW4XyfL/tCMeMtD+Ou/FFywCNfsHdyvYs3qXf";
};
hub = lib.mkOption {
type = lib.types.str;
description = "The hub url";
default = "http://100.64.0.13:8090";
};
};
config = {
services.beszel.agent = {
package = beszelPkgs.beszel;
enable = true;
environment = {
SYSTEM_NAME = config.networking.hostName;
LISTEN = config.beszelAgent.listen;
HUB_URL = config.beszelAgent.hub;
TOKEN = config.beszelAgent.token;
KEY = config.beszelAgent.key;
};
};
};
};
};
};
}

View file

@ -22,19 +22,24 @@
... ...
}@inputs: }@inputs:
let let
configuration_name = "h003"; hostConfig = {
system = "x86_64-linux"; configurationName = "h003";
stateVersion = "25.05"; system = "x86_64-linux";
primaryUser = "luser"; stateVersion = "25.05";
primaryUser = "luser";
overlayIp = "100.64.0.14";
};
lib = nixpkgs.lib; lib = nixpkgs.lib;
in in
with hostConfig;
{ {
nixosConfigurations = { nixosConfigurations = {
"${configuration_name}" = ( "${configurationName}" = (
lib.nixosSystem { lib.nixosSystem {
inherit system; inherit system;
specialArgs = { specialArgs = {
inherit inputs; inherit inputs hostConfig;
}; };
modules = [ modules = [
home-manager.nixosModules.default home-manager.nixosModules.default
@ -84,8 +89,8 @@
# System configuration # System configuration
system.stateVersion = stateVersion; system.stateVersion = stateVersion;
networking.hostName = configuration_name; networking.hostName = configurationName;
programs.nh.flake = "/home/${primaryUser}/.config/nixos-config/hosts/${configuration_name}"; programs.nh.flake = "/home/${primaryUser}/.config/nixos-config/hosts/${configurationName}";
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
users.users = { users.users = {
"${primaryUser}" = { "${primaryUser}" = {

View file

@ -0,0 +1,32 @@
{
inputs,
config,
hostConfig,
...
}:
let
declaration = "services/monitoring/beszel-agent.nix";
nixpkgs = inputs.beszel-nixpkgs;
pkgs = import nixpkgs {
system = "x86_64-linux";
config.allowUnfree = true;
};
in
{
disabledModules = [ declaration ];
imports = [ "${nixpkgs}/nixos/modules/${declaration}" ];
config = {
services.beszel.agent = {
package = pkgs.beszel;
enable = true;
environment = {
SYSTEM_NAME = config.networking.hostName;
LISTEN = "${hostConfig.overlayIp}:45876";
HUB_URL = "http://100.64.0.13:8090";
# TODO this is only safe since I am running it in the overlay network only, rotate all keys if we change that.
TOKEN = "20208198-87c2-4bd1-ab09-b97c3b9c6a6e";
KEY = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDcAr8fbW4XyfL/tCMeMtD+Ou/FFywCNfsHdyvYs3qXf";
};
};
};
}

View file

@ -0,0 +1,31 @@
{
inputs,
config,
...
}:
let
declaration = "services/monitoring/beszel-agent.nix";
nixpkgs = inputs.beszel-nixpkgs;
pkgs = import nixpkgs {
system = "x86_64-linux";
config.allowUnfree = true;
};
in
{
disabledModules = [ declaration ];
imports = [ "${nixpkgs}/nixos/modules/${declaration}" ];
config = {
services.beszel.agent = {
package = pkgs.beszel;
enable = true;
environment = {
SYSTEM_NAME = config.networking.hostName;
LISTEN = "100.64.0.13:45876";
HUB_URL = "http://100.64.0.13:8090";
# TODO this is only safe since I am running it in the overlay network only, rotate all keys if we change that.
TOKEN = "20208198-87c2-4bd1-ab09-b97c3b9c6a6e";
KEY = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDcAr8fbW4XyfL/tCMeMtD+Ou/FFywCNfsHdyvYs3qXf";
};
};
};
}

37
hosts/lio/flake.lock generated
View file

@ -25,6 +25,36 @@
"type": "github" "type": "github"
} }
}, },
"beszel": {
"inputs": {
"beszel-nixpkgs": "beszel-nixpkgs"
},
"locked": {
"path": "../../flakes/beszel",
"type": "path"
},
"original": {
"path": "../../flakes/beszel",
"type": "path"
},
"parent": []
},
"beszel-nixpkgs": {
"locked": {
"lastModified": 1763421233,
"narHash": "sha256-Stk9ZYRkGrnnpyJ4eqt9eQtdFWRRIvMxpNRf4sIegnw=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "89c2b2330e733d6cdb5eae7b899326930c2c0648",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"common": { "common": {
"locked": { "locked": {
"path": "../../flakes/common", "path": "../../flakes/common",
@ -189,11 +219,11 @@
}, },
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1760524057, "lastModified": 1763421233,
"narHash": "sha256-EVAqOteLBFmd7pKkb0+FIUyzTF61VKi7YmvP1tw4nEw=", "narHash": "sha256-Stk9ZYRkGrnnpyJ4eqt9eQtdFWRRIvMxpNRf4sIegnw=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "544961dfcce86422ba200ed9a0b00dd4b1486ec5", "rev": "89c2b2330e733d6cdb5eae7b899326930c2c0648",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1138,6 +1168,7 @@
}, },
"root": { "root": {
"inputs": { "inputs": {
"beszel": "beszel",
"common": "common", "common": "common",
"flatpaks": "flatpaks", "flatpaks": "flatpaks",
"home-manager": "home-manager", "home-manager": "home-manager",

View file

@ -12,6 +12,8 @@
secrets.url = "git+https://git.joshuabell.xyz/ringofstorms/dotfiles?dir=flakes/secrets"; secrets.url = "git+https://git.joshuabell.xyz/ringofstorms/dotfiles?dir=flakes/secrets";
# flatpaks.url = "path:../../flakes/flatpaks"; # flatpaks.url = "path:../../flakes/flatpaks";
flatpaks.url = "git+https://git.joshuabell.xyz/ringofstorms/dotfiles?dir=flakes/flatpaks"; flatpaks.url = "git+https://git.joshuabell.xyz/ringofstorms/dotfiles?dir=flakes/flatpaks";
beszel.url = "path:../../flakes/beszel";
# beszel.url = "git+https://git.joshuabell.xyz/ringofstorms/dotfiles?dir=flakes/beszel";
ros_neovim.url = "git+https://git.joshuabell.xyz/ringofstorms/nvim"; ros_neovim.url = "git+https://git.joshuabell.xyz/ringofstorms/nvim";
}; };
@ -23,6 +25,7 @@
common, common,
secrets, secrets,
flatpaks, flatpaks,
beszel,
ros_neovim, ros_neovim,
... ...
}@inputs: }@inputs:
@ -74,6 +77,17 @@
common.nixosModules.tty_caps_esc common.nixosModules.tty_caps_esc
common.nixosModules.zsh common.nixosModules.zsh
beszel.nixosModules.agent
(
{ ... }:
{
beszelAgent = {
listen = "100.64.0.1:45876";
token = "20208198-87c2-4bd1-ab09-b97c3b9c6a6e";
};
}
)
./configuration.nix ./configuration.nix
./hardware-configuration.nix ./hardware-configuration.nix
(import ./containers.nix { inherit inputs; }) (import ./containers.nix { inherit inputs; })

View file

@ -0,0 +1,31 @@
{
inputs,
config,
...
}:
let
declaration = "services/monitoring/beszel-agent.nix";
nixpkgs = inputs.beszel-nixpkgs;
pkgs = import nixpkgs {
system = "x86_64-linux";
config.allowUnfree = true;
};
in
{
disabledModules = [ declaration ];
imports = [ "${nixpkgs}/nixos/modules/${declaration}" ];
config = {
services.beszel.agent = {
package = pkgs.beszel;
enable = true;
environment = {
SYSTEM_NAME = config.networking.hostName;
LISTEN = "100.64.0.13:45876";
HUB_URL = "http://100.64.0.13:8090";
# TODO this is only safe since I am running it in the overlay network only, rotate all keys if we change that.
TOKEN = "20208198-87c2-4bd1-ab09-b97c3b9c6a6e";
KEY = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDcAr8fbW4XyfL/tCMeMtD+Ou/FFywCNfsHdyvYs3qXf";
};
};
};
}

View file

@ -0,0 +1,31 @@
{
inputs,
config,
...
}:
let
declaration = "services/monitoring/beszel-agent.nix";
nixpkgs = inputs.beszel-nixpkgs;
pkgs = import nixpkgs {
system = "x86_64-linux";
config.allowUnfree = true;
};
in
{
disabledModules = [ declaration ];
imports = [ "${nixpkgs}/nixos/modules/${declaration}" ];
config = {
services.beszel.agent = {
package = pkgs.beszel;
enable = true;
environment = {
SYSTEM_NAME = config.networking.hostName;
LISTEN = "100.64.0.13:45876";
HUB_URL = "http://100.64.0.13:8090";
# TODO this is only safe since I am running it in the overlay network only, rotate all keys if we change that.
TOKEN = "20208198-87c2-4bd1-ab09-b97c3b9c6a6e";
KEY = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDcAr8fbW4XyfL/tCMeMtD+Ou/FFywCNfsHdyvYs3qXf";
};
};
};
}