tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
0
fork
atom
lol
0
fork
atom
overview
issues
pulls
pipelines
homepage-dashboard: init at 0.6.21
Jon Seager
2 years ago
b1cf2cb3
9a1074ae
+84
2 changed files
expand all
collapse all
unified
split
pkgs
servers
homepage-dashboard
default.nix
top-level
all-packages.nix
+82
pkgs/servers/homepage-dashboard/default.nix
···
1
1
+
{ buildNpmPackage
2
2
+
, fetchFromGitHub
3
3
+
, nodePackages
4
4
+
, python3
5
5
+
, lib
6
6
+
, fetchpatch
7
7
+
, makeBinaryWrapper
8
8
+
, nixosTests
9
9
+
}:
10
10
+
11
11
+
buildNpmPackage rec {
12
12
+
pname = "homepage-dashboard";
13
13
+
version = "0.6.21";
14
14
+
15
15
+
src = fetchFromGitHub {
16
16
+
owner = "benphelps";
17
17
+
repo = "homepage";
18
18
+
rev = "v${version}";
19
19
+
hash = "sha256-kjxA02hJj/GAQ0fM1xTtXAnZSQgVyE+EMRrXis1Vr+o=";
20
20
+
};
21
21
+
22
22
+
npmDepsHash = "sha256-O6SQYx5vxscMsbWv0ynUYqdUkOp/nMtdvlZ/Mp95sBY=";
23
23
+
24
24
+
patches = [
25
25
+
(fetchpatch {
26
26
+
name = "env-config-dir.patch";
27
27
+
url = "https://github.com/benphelps/homepage/commit/ca396ce96bce52f6c06a321f292aa94a66ceeb97.patch";
28
28
+
hash = "sha256-eNnW/ce4ytoKR6jH1Ztc4UTWOmL0uGRdY6nYBIVYM6k=";
29
29
+
})
30
30
+
];
31
31
+
32
32
+
preBuild = ''
33
33
+
mkdir -p config
34
34
+
'';
35
35
+
36
36
+
postBuild = ''
37
37
+
# Add a shebang to the server js file, then patch the shebang.
38
38
+
sed -i '1s|^|#!/usr/bin/env node\n|' .next/standalone/server.js
39
39
+
patchShebangs .next/standalone/server.js
40
40
+
'';
41
41
+
42
42
+
buildInputs = [
43
43
+
nodePackages.node-gyp-build
44
44
+
];
45
45
+
46
46
+
env.PYTHON = "${python3}/bin/python";
47
47
+
48
48
+
installPhase = ''
49
49
+
runHook preInstall
50
50
+
51
51
+
mkdir -p $out
52
52
+
cp -r .next/standalone $out/bin
53
53
+
cp -r public $out/bin/public
54
54
+
55
55
+
mkdir -p $out/bin/.next
56
56
+
cp -r .next/static $out/bin/.next/static
57
57
+
58
58
+
mv $out/bin/server.js $out/bin/homepage
59
59
+
chmod +x $out/bin/homepage
60
60
+
61
61
+
wrapProgram $out/bin/homepage \
62
62
+
--set-default PORT 3000 \
63
63
+
--set-default HOMEPAGE_CONFIG_DIR /var/lib/homepage-dashboard
64
64
+
65
65
+
runHook postInstall
66
66
+
'';
67
67
+
68
68
+
doDist = false;
69
69
+
70
70
+
passthru.tests = {
71
71
+
inherit (nixosTests) homepage;
72
72
+
};
73
73
+
74
74
+
meta = {
75
75
+
description = "A highly customisable dashboard with Docker and service API integrations.";
76
76
+
mainProgram = "homepage";
77
77
+
homepage = "https://gethomepage.dev";
78
78
+
license = lib.licenses.gpl3;
79
79
+
maintainers = with lib.maintainers; [ jnsgruk ];
80
80
+
platforms = lib.platforms.all;
81
81
+
};
82
82
+
}
+2
pkgs/top-level/all-packages.nix
···
5362
5362
5363
5363
home-manager = callPackage ../tools/package-management/home-manager { };
5364
5364
5365
5365
+
homepage-dashboard = callPackage ../servers/homepage-dashboard { };
5366
5366
+
5365
5367
hostsblock = callPackage ../tools/misc/hostsblock { };
5366
5368
5367
5369
hottext = callPackage ../tools/text/hottext { };