Edit nix flake and rename project
This commit is contained in:
parent
e47ad30a10
commit
e4a133daf6
2 changed files with 59 additions and 5 deletions
|
|
@ -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"
|
||||||
|
|
||||||
|
|
|
||||||
62
flake.nix
62
flake.nix
|
|
@ -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"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue