Edit nix flake and rename project

This commit is contained in:
Jack Mechem 2026-03-28 17:46:07 -07:00
parent e47ad30a10
commit e4a133daf6
2 changed files with 59 additions and 5 deletions

View file

@ -1,5 +1,5 @@
[package] [package]
name = "server-stats-rust" name = "server-dash-api"
version = "0.1.0" version = "0.1.0"
edition = "2024" edition = "2024"

View file

@ -1,5 +1,5 @@
{ {
description = "sysapi - system stats & command execution REST API in Rust"; description = "server-dash-api - system stats & command execution REST API in Rust";
inputs = { inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
rust-overlay = { rust-overlay = {
@ -42,7 +42,7 @@
in in
{ {
packages.default = pkgs.rustPlatform.buildRustPackage { packages.default = pkgs.rustPlatform.buildRustPackage {
pname = "sysapi"; pname = "server-dash-api";
version = "0.1.0"; version = "0.1.0";
src = ./.; src = ./.;
cargoHash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="; cargoHash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=";
@ -62,11 +62,65 @@
BINDGEN_EXTRA_CLANG_ARGS = "-I${pkgs.linux-pam}/include -I${pkgs.glibc.dev}/include"; BINDGEN_EXTRA_CLANG_ARGS = "-I${pkgs.linux-pam}/include -I${pkgs.glibc.dev}/include";
RUST_SRC_PATH = "${rustToolchain}/lib/rustlib/src/rust/library"; RUST_SRC_PATH = "${rustToolchain}/lib/rustlib/src/rust/library";
shellHook = '' shellHook = ''
echo "🦀 sysapi dev shell ready" echo "🦀 server-dash-api dev shell ready"
echo " rustc $(rustc --version)" echo " rustc $(rustc --version)"
echo " cargo $(cargo --version)" echo " cargo $(cargo --version)"
''; '';
}; };
} }
); )
// {
nixosModules.default =
{
config,
pkgs,
lib,
...
}:
{
options.services.server-dash-api = {
enable = lib.mkEnableOption "server-dash-api system stats API";
};
config = lib.mkIf config.services.server-dash-api.enable {
users.users.server-dash-api = {
isSystemUser = true;
group = "server-dash-api";
extraGroups = [ "shadow" ];
home = "/var/lib/server-dash-api";
createHome = true;
};
users.groups.server-dash-api = { };
security.polkit.extraConfig = ''
polkit.addRule(function(action, subject) {
if ((action.id == "org.freedesktop.systemd1.manage-units" ||
action.id == "org.freedesktop.login1.reboot") &&
subject.user == "server-dash-api") {
return polkit.Result.YES;
}
});
'';
systemd.services.server-dash-api = {
description = "server-dash-api - Rust System Stats API";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
Type = "simple";
User = "server-dash-api";
Group = "server-dash-api";
SupplementaryGroups = [ "shadow" ];
ExecStart = "${self.packages.${pkgs.system}.default}/bin/server-dash-api";
Restart = "always";
StateDirectory = "server-dash-api";
Environment = [
"RUST_LOG=info"
"SSL_CERT_FILE=${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt"
];
};
};
};
};
};
} }