Flake Inputs: • Updated input 'custom-sidebar-src': 'github:elchininet/custom-sidebar' (2025-03-15) rev: c7750d7b10b01d17d9850db58a8c8ac8211eb9d5 → 'github:elchininet/custom-sidebar' (2025-03-17) rev: 4aa3a4d64763552602e1128529b708b2f5c9109c • Updated input 'gpu-screen-recorder-src': 'git+https://repo.dec05eba.com/gpu-screen-recorder' (2025-03-15) rev: 77b60a03b2785fa8ce461069f2ba2f241c2a1557 → 'git+https://repo.dec05eba.com/gpu-screen-recorder' (2025-03-16) rev: e7a95f830abc358fcdf6d24fcf11e346e0b77e99 • Updated input 'hyprland': 'github:hyprwm/Hyprland' (2025-03-15) rev: bf5e4bf11662ebedcae44cd846ba5e755d7a6ba1 → 'github:hyprwm/Hyprland' (2025-03-17) rev: 011d7ccb91081ff99f184564ea38d1b9e543a99c • Updated input 'hyprland/aquamarine': 'github:hyprwm/aquamarine' (2025-03-14) rev: bea48d0bbe15fb3d758a8b6be865836c97056575 → 'github:hyprwm/aquamarine' (2025-03-17) rev: 484b732195cc53f4536ce4bd59a5c6402b1e7ccf • Updated input 'hyprland/hyprcursor': 'github:hyprwm/hyprcursor' (2025-02-04) rev: 7c6d165e1eb9045a996551eb9f121b6d1b30adc3 → 'github:hyprwm/hyprcursor' (2025-03-17) rev: 2fd36421c21aa87e2fe3bee11067540ae612f719 • Updated input 'hyprland-plugins': 'github:hyprwm/hyprland-plugins' (2025-02-07) rev: 4f48dbe12f3cbbeb4d31c91c67b21edbc5b4b451 → 'github:hyprwm/hyprland-plugins' (2025-03-16) rev: 0eb996c3ed89eeed3d493a310acd8eccb62838d9 • Updated input 'nix-gaming': 'github:fufexan/nix-gaming' (2025-03-15) rev: 0894bfe2c7f48091c1f5100f39bdfa0e19d08ab4 → 'github:fufexan/nix-gaming' (2025-03-17) rev: 7a5e1f3c5ed63bcf047103d1edd9276e77b4f684 • Updated input 'nix-index-db': 'github:Mic92/nix-index-database' (2025-03-10) rev: 66537fb185462ba9b07f4e6f2d54894a1b2d04ab → 'github:Mic92/nix-index-database' (2025-03-17) rev: 2cfb4e1ca32f59dd2811d7a6dd5d4d1225f0955c • Updated input 'nixd': 'github:nix-community/nixd' (2025-02-11) rev: 065dcb4cb2f8269d6d15d2b2491a79cff47f9550 → 'github:nix-community/nixd' (2025-03-17) rev: 8ac5582c7709dcbb95bc2bd903c978ef67707409 • Updated input 'nixpkgs': 'github:NixOS/nixpkgs' (2025-03-13) rev: 6607cf789e541e7873d40d3a8f7815ea92204f32 → 'github:NixOS/nixpkgs' (2025-03-15) rev: c80f6a7e10b39afcc1894e02ef785b1ad0b0d7e5 • Updated input 'nixpkgs-wayland': 'github:nix-community/nixpkgs-wayland' (2025-03-15) rev: 538fb64a8a28e258ad1758a9691cfa5a2c8d7a75 → 'github:nix-community/nixpkgs-wayland' (2025-03-16) rev: ba7f5a383fcb5001a233cdae3de9bd0d45ce9e4a • Updated input 'secrets': 'git+ssh://git@git.nelim.org/matt1432/nixos-secrets' (2025-02-09) rev: 8d991fbb480564e0631d4d5a48ca906ca0966266 → 'git+ssh://git@git.nelim.org/matt1432/nixos-secrets' (2025-03-16) rev: 628f5e52bc860cf039e291778cf8e86785a57d78 • Updated input 'sops-nix': 'github:Mic92/sops-nix' (2025-03-13) rev: d016ce0365b87d848a57c12ffcfdc71da7a2b55f → 'github:Mic92/sops-nix' (2025-03-17) rev: b33837ae3cfa012b65810891bebbee71fa4c0658 • Updated input 'tuya-local-src': 'github:make-all/tuya-local' (2025-03-15) rev: 66c9f8b052bf1ff0140b28bb2682ae9804efd769 → 'github:make-all/tuya-local' (2025-03-17) rev: 6edf4e9888eadf1506b9c04dacc2902351ec8307 Docker Images: • ghcr.io/linuxserver/prowlarr latest: sha256:2100d2cee89da16e7ce4a1169406c7718e6508c86ddc497dfbfdb7d6be2ea0c2 → sha256:18e9801e4509e45873c1adb03adf0bf718743ff5147e19b4cdf7626f8bd2f752 • ghcr.io/linuxserver/radarr latest: sha256:620189d67078ddcfeb7a4efa424eb62f827ef734ef1e56980768bf8efd73782a → sha256:06f209efdfb25df8eaa6c275f6106d0a9e6b2c8502bd6dde3f95683c2a66aac1 • docker.io/fallenbagel/jellyseerr latest: sha256:92dc0eb9ba260a11886ac52c3a82c5490769238f120e6312a2793809842021a6 → sha256:52ca0b18c58ec4e769b8acae9beaae37a520a365c7ead52b7fc3ba1c3352d1f0 Firefox Addons: sound-volume: 2.0.2 -> 2.0.3 Node modules: eslint-plugin-jsdoc: 50.6.6 -> 50.6.7 nix-update executions: homepage: 1.0.3 -> 1.0.4
99 lines
2.7 KiB
Nix
99 lines
2.7 KiB
Nix
{
|
|
# params
|
|
enableLocalIcons ? true,
|
|
# nix build inputs
|
|
lib,
|
|
stdenv,
|
|
concatTextFile,
|
|
fetchFromGitHub,
|
|
makeWrapper,
|
|
# deps
|
|
nodejs,
|
|
pnpm,
|
|
...
|
|
}: let
|
|
inherit (lib) getExe optionalString;
|
|
|
|
installLocalIcons = import ./icons.nix {inherit fetchFromGitHub;};
|
|
in
|
|
stdenv.mkDerivation (finalAttrs: {
|
|
pname = "homepage-dashboard";
|
|
version = "1.0.4";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "gethomepage";
|
|
repo = "homepage";
|
|
rev = "v${finalAttrs.version}";
|
|
hash = "sha256-SwzgmVy3TBzEH+FJ/kY+iCo+pZhud1IZkfCh2DiSTsk=";
|
|
};
|
|
|
|
pnpmDepsHash = "sha256-GUDSfAbBK+6Bbih5jBrkjiMYLOJM7gMfurXFeez1bSw=";
|
|
|
|
pnpmDeps = pnpm.fetchDeps {
|
|
inherit (finalAttrs) pname version src;
|
|
hash = finalAttrs.pnpmDepsHash;
|
|
};
|
|
|
|
nativeBuildInputs = [
|
|
makeWrapper
|
|
nodejs
|
|
pnpm.configHook
|
|
];
|
|
|
|
buildPhase = ''
|
|
pnpm build
|
|
|
|
# Add a shebang to the server js file
|
|
sed -i '1s|^|#!${getExe nodejs}\n|' .next/standalone/server.js
|
|
'';
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
mkdir -p $out/{share,bin}
|
|
|
|
# Without this, homepage-dashboard errors when trying to
|
|
# write its prerender cache.
|
|
#
|
|
# This ensures that the cache implementation respects the env
|
|
# variable `HOMEPAGE_CACHE_DIR`, which is set by default in the
|
|
# wrapper below.
|
|
substituteInPlace .next/standalone/node_modules/next/dist/server/lib/incremental-cache/file-system-cache.js --replace-fail \
|
|
"this.serverDistDir = ctx.serverDistDir;" \
|
|
"this.serverDistDir = require('node:path').join(process.env.HOMEPAGE_CACHE_DIR, \"homepage\");"
|
|
|
|
cp -r .next/standalone $out/share/homepage/
|
|
cp -r public $out/share/homepage/public
|
|
|
|
mkdir -p $out/share/homepage/.next
|
|
cp -r .next/static $out/share/homepage/.next/static
|
|
|
|
chmod +x $out/share/homepage/server.js
|
|
|
|
makeWrapper $out/share/homepage/server.js $out/bin/homepage \
|
|
--set-default PORT 3000 \
|
|
--set-default HOMEPAGE_CONFIG_DIR /var/lib/homepage-dashboard \
|
|
--set-default HOMEPAGE_CACHE_DIR /var/cache/homepage-dashboard
|
|
|
|
${optionalString enableLocalIcons installLocalIcons}
|
|
|
|
runHook postInstall
|
|
'';
|
|
|
|
passthru.updateScript = concatTextFile {
|
|
name = "update";
|
|
files = [./update.sh];
|
|
executable = true;
|
|
destination = "/bin/update";
|
|
};
|
|
|
|
meta = {
|
|
mainProgram = "homepage";
|
|
license = lib.licenses.gpl3;
|
|
homepage = "https://gethomepage.dev";
|
|
changelog = "https://github.com/gethomepage/homepage/releases/tag/v${finalAttrs.version}";
|
|
description = ''
|
|
Highly customisable dashboard with Docker and service API integrations.
|
|
'';
|
|
};
|
|
})
|