This commit is contained in:
Jack Mechem 2026-03-29 13:46:58 -07:00
parent 52bb27a6d4
commit 69567fcd3f
2 changed files with 40 additions and 40 deletions

View file

@ -1,11 +1,9 @@
{ {
description = "server-dash - NixOS System Dashboard"; description = "server-dash - NixOS System Dashboard";
inputs = { inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils"; flake-utils.url = "github:numtide/flake-utils";
}; };
outputs = outputs =
{ {
self, self,
@ -24,11 +22,9 @@
version = "0.1.0"; version = "0.1.0";
src = ./.; src = ./.;
npmDepsHash = "sha256-jzVH/DKNE6m+RowHku7h3brC6T+a6xjl2SKSXiTmLgM="; npmDepsHash = "sha256-jzVH/DKNE6m+RowHku7h3brC6T+a6xjl2SKSXiTmLgM=";
buildPhase = '' buildPhase = ''
npm run build npm run build
''; '';
installPhase = '' installPhase = ''
mkdir -p $out/.next mkdir -p $out/.next
cp -r .next/standalone/. $out/ cp -r .next/standalone/. $out/
@ -49,28 +45,31 @@
{ {
options.services.server-dash = { options.services.server-dash = {
enable = lib.mkEnableOption "server-dash NixOS System Dashboard"; enable = lib.mkEnableOption "server-dash NixOS System Dashboard";
package = lib.mkOption {
type = lib.types.path;
default = "/var/lib/server-dash/build";
description = "Path to the pre-built server-dash package";
};
}; };
config = lib.mkIf config.services.server-dash.enable { config = lib.mkIf config.services.server-dash.enable {
users.users.dashboard = { users.users.server-dash = {
isSystemUser = true; isSystemUser = true;
group = "dashboard"; group = "server-dash";
home = "/var/lib/dashboard"; home = "/var/lib/server-dash";
createHome = true; createHome = true;
}; };
users.groups.dashboard = { }; users.groups.server-dash = { };
systemd.services.server-dash = {
systemd.services.dashboard = {
description = "NixOS System Dashboard"; description = "NixOS System Dashboard";
after = [ "network.target" ]; after = [ "network.target" ];
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
serviceConfig = { serviceConfig = {
Type = "simple"; Type = "simple";
User = "dashboard"; User = "server-dash";
Group = "dashboard"; Group = "server-dash";
ExecStart = "${pkgs.nodejs}/bin/node ${self.packages.${pkgs.system}.default}/server.js"; ExecStart = "${pkgs.nodejs}/bin/node ${config.services.server-dash.package}/server.js";
Restart = "always"; Restart = "always";
EnvironmentFile = "/var/lib/dashboard/.env"; EnvironmentFile = "/var/lib/server-dash/.env";
Environment = [ Environment = [
"PORT=3000" "PORT=3000"
"HOSTNAME=127.0.0.1" "HOSTNAME=127.0.0.1"

View file

@ -1,27 +1,28 @@
{ {
"name": "server-dash", "name": "server-dash",
"version": "0.1.0", "version": "0.1.0",
"private": true, "private": true,
"scripts": { "scripts": {
"dev": "next dev", "dev": "next dev",
"build": "next build", "build": "next build",
"start": "next start", "start": "next start",
"lint": "eslint" "lint": "eslint",
}, "deploy": "npm run build && sudo mkdir -p /var/lib/server-dash/build && sudo cp -r .next/standalone/. /var/lib/server-dash/build/ && sudo mkdir -p /var/lib/server-dash/build/.next && sudo cp -r .next/static /var/lib/server-dash/build/.next/static && sudo cp -r public /var/lib/server-dash/build/public && sudo chown -R server-dash:server-dash /var/lib/server-dash/build && sudo systemctl restart server-dash"
"dependencies": { },
"next": "16.2.1", "dependencies": {
"react": "19.2.4", "next": "16.2.1",
"react-dom": "19.2.4", "react": "19.2.4",
"react-icons": "^5.6.0" "react-dom": "19.2.4",
}, "react-icons": "^5.6.0"
"devDependencies": { },
"@tailwindcss/postcss": "^4", "devDependencies": {
"@types/node": "^20", "@tailwindcss/postcss": "^4",
"@types/react": "^19", "@types/node": "^20",
"@types/react-dom": "^19", "@types/react": "^19",
"eslint": "^9", "@types/react-dom": "^19",
"eslint-config-next": "16.2.1", "eslint": "^9",
"tailwindcss": "^4", "eslint-config-next": "16.2.1",
"typescript": "^5" "tailwindcss": "^4",
} "typescript": "^5"
}
} }