Add littlelink
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
This commit is contained in:
@@ -12,21 +12,23 @@ pkgs.stdenv.mkDerivation rec {
|
||||
hash = "sha256-5aoGkqxMyvyK8EDsSE6kZa+dpExxVH2GRx2n87VusKE=";
|
||||
};
|
||||
|
||||
npmSrc = pkgs.buildNpmPackage ({
|
||||
npmSrc = pkgs.buildNpmPackage {
|
||||
inherit src pname version;
|
||||
|
||||
npmDepsHash = "sha256-K/x9ZEMNO8D+SkvVPfqVJtZaDXY5gDApRRocg/POY68=";
|
||||
dontNpmBuild = true;
|
||||
|
||||
installPhase = ''
|
||||
cp -r . $out
|
||||
'';
|
||||
});
|
||||
};
|
||||
|
||||
# FIXME: https://github.com/NixOS/nixpkgs/issues/255890
|
||||
wrapper = pkgs.writeShellApplication {
|
||||
name = pname;
|
||||
runtimeInputs = with pkgs; [ bun ];
|
||||
text = ''
|
||||
bun ${npmSrc}/src/index.ts "$@"
|
||||
exec bun ${npmSrc}/src/index.ts "$@"
|
||||
'';
|
||||
};
|
||||
|
||||
|
@@ -18,6 +18,7 @@
|
||||
docker-grafana-image-renderer = import ./docker/grafana-image-renderer { inherit pkgs; };
|
||||
docker-jellyfin = import ./docker/jellyfin { inherit pkgs inputs system; };
|
||||
docker-jellyseerr = import ./docker/jellyseerr { inherit pkgs; };
|
||||
docker-littlelink-server = import ./docker/littlelink-server { inherit pkgs inputs system; };
|
||||
docker-mariadb = import ./docker/mariadb { inherit pkgs; };
|
||||
docker-nextcloud = import ./docker/nextcloud { inherit pkgs; };
|
||||
docker-ntfy = import ./docker/ntfy { inherit pkgs; };
|
||||
@@ -58,6 +59,8 @@
|
||||
|
||||
linux-firmware-latest = import ./linux-firmware-latest { inherit pkgs; };
|
||||
|
||||
littlelink-server = import ./littlelink-server { inherit pkgs; };
|
||||
|
||||
obsidian-plugin-better-word-count = import ./obsidian/plugins/better-word-count { inherit pkgs; };
|
||||
obsidian-plugin-dataview = import ./obsidian/plugins/dataview { inherit pkgs; };
|
||||
obsidian-plugin-excalidraw = import ./obsidian/plugins/excalidraw { inherit pkgs; };
|
||||
|
26
packages/docker/littlelink-server/default.nix
Normal file
26
packages/docker/littlelink-server/default.nix
Normal file
@@ -0,0 +1,26 @@
|
||||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
system,
|
||||
...
|
||||
}:
|
||||
let
|
||||
selfPkgs = inputs.self.packages.${system};
|
||||
in
|
||||
pkgs.dockerTools.buildImage {
|
||||
name = "littlelink-server";
|
||||
fromImage = import ../base { inherit pkgs; };
|
||||
|
||||
copyToRoot = pkgs.buildEnv {
|
||||
name = "root";
|
||||
paths = with selfPkgs; [ littlelink-server ];
|
||||
pathsToLink = [ "/bin" ];
|
||||
};
|
||||
|
||||
config = {
|
||||
Entrypoint = [ "littlelink-server" ];
|
||||
ExposedPorts = {
|
||||
"3000/tcp" = { };
|
||||
};
|
||||
};
|
||||
}
|
52
packages/littlelink-server/default.nix
Normal file
52
packages/littlelink-server/default.nix
Normal file
@@ -0,0 +1,52 @@
|
||||
{ pkgs, ... }:
|
||||
# AUTO-UPDATE: nix-update --flake --version=branch=main littlelink-server --subpackage yarnSrc
|
||||
pkgs.stdenv.mkDerivation rec {
|
||||
pname = "littlelink-server";
|
||||
version = "0-unstable-2025-07-16";
|
||||
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "techno-tim";
|
||||
repo = "littlelink-server";
|
||||
rev = "fa9fb3a20375c6287ae134af9c2e9e754e0aebb6";
|
||||
hash = "sha256-BUPqXpiofHlLKgbOYkZr+QEoRIdRgr8alrUzcGS9edc=";
|
||||
};
|
||||
|
||||
yarnSrc = pkgs.stdenv.mkDerivation {
|
||||
inherit src pname version;
|
||||
|
||||
offlineCache = pkgs.fetchYarnDeps {
|
||||
yarnLock = src + "/yarn.lock";
|
||||
hash = "sha256-nv1NgMm56wWlAYqqdH9UKTnWNhjxWBs1lmG+UCCQAzk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = with pkgs; [
|
||||
nodejs
|
||||
yarnConfigHook
|
||||
yarnBuildHook
|
||||
npmHooks.npmInstallHook
|
||||
];
|
||||
|
||||
yarnBuildFlags = [ "--noninteractive" ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/lib/${pname}
|
||||
cp -r build node_modules $out/lib/${pname}
|
||||
'';
|
||||
};
|
||||
|
||||
wrapper = pkgs.writeShellApplication {
|
||||
name = pname;
|
||||
runtimeInputs = with pkgs; [ nodejs_20 ];
|
||||
text = ''
|
||||
cd ${yarnSrc}/lib/${pname}
|
||||
exec node build/server.js "$@"
|
||||
'';
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp ${wrapper}/bin/${pname} $out/bin/
|
||||
'';
|
||||
|
||||
meta.mainProgram = pname;
|
||||
}
|
Reference in New Issue
Block a user