nixos-configs/packages/homepage/default.nix
matt1432 07ed7cdd5e chore: update sources
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
2025-03-17 12:33:54 -04:00

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.
'';
};
})