Nixery

Welcome to this instance of Nixery, an ad-hoc container image registry that provides packages from the Nix package manager.

You can pull container images from this registry at nixery.tangled.sh by appending any packages that you need in the URL, separated by slashes.

Demo

Usage

These usage examples assume that you use Docker, but should not be much different for other OCI-compatible platforms.

Pull an image from this registry, separating each package you want included by a slash:

docker pull nixery.tangled.sh/shell/git/htop

This gives you an image with git, htop and an interactively configured shell. You could run it like this:

docker run -ti nixery.tangled.sh/shell/git/htop bash

Each path segment corresponds either to a key in the Nix package set, or a meta-package that automatically expands to several other packages.

Meta-packages must be the first path component if they are used. Currently there are only two meta-packages:

Recent build errors

Below are the Nix build errors for some packages that failed to build recently. If Nixery served you an error, you might be able to find more details about it here.

bash/coreutils/git/nix/tailwindcss_4/wrangler
building '/nix/store/yckwhbxvqcqsap37lzls33lbqxp954l9-wrangler-4.51.0.drv'...
Using versionCheckHook
Running phase: unpackPhase
unpacking source archive /nix/store/dm58zqjgng232mlyj74g3dwp8dzvc8vg-source
source root is source
Running phase: patchPhase
Running phase: updateAutotoolsGnuConfigScriptsPhase
Running phase: configurePhase
no configure script, doing nothing
Executing pnpmConfigHook
Found 'pnpm' with version '9.15.9'
Using fetcherVersion: 2
Configuring pnpm store
/build /build/source
/build/source
Installing dependencies
Scope: all 145 workspace projects
Lockfile is up to date, resolution step is skipped
Progress: resolved 1, reused 0, downloaded 0, added 0
Packages: +2062

Progress: resolved 1, reused 0, downloaded 0, added 0
Progress: resolved 2062, reused 35, downloaded 0, added 0
Progress: resolved 2062, reused 140, downloaded 0, added 0
Progress: resolved 2062, reused 203, downloaded 0, added 0
Progress: resolved 2062, reused 272, downloaded 0, added 0
Progress: resolved 2062, reused 309, downloaded 0, added 0
Progress: resolved 2062, reused 384, downloaded 0, added 0
Progress: resolved 2062, reused 414, downloaded 0, added 0
Progress: resolved 2062, reused 441, downloaded 0, added 0
Progress: resolved 2062, reused 624, downloaded 0, added 0
Progress: resolved 2062, reused 773, downloaded 0, added 0
Progress: resolved 2062, reused 840, downloaded 0, added 0
Progress: resolved 2062, reused 933, downloaded 0, added 0
Progress: resolved 2062, reused 971, downloaded 0, added 0
Progress: resolved 2062, reused 1041, downloaded 0, added 0
Progress: resolved 2062, reused 1119, downloaded 0, added 0
Progress: resolved 2062, reused 1160, downloaded 0, added 0
Progress: resolved 2062, reused 1212, downloaded 0, added 0
Progress: resolved 2062, reused 1320, downloaded 0, added 0
Progress: resolved 2062, reused 1333, downloaded 0, added 0
Progress: resolved 2062, reused 1356, downloaded 0, added 0
Progress: resolved 2062, reused 1415, downloaded 0, added 0
Progress: resolved 2062, reused 1545, downloaded 0, added 0
Progress: resolved 2062, reused 1579, downloaded 0, added 0
Progress: resolved 2062, reused 1597, downloaded 0, added 0
Progress: resolved 2062, reused 1633, downloaded 0, added 0
Progress: resolved 2062, reused 1703, downloaded 0, added 0
Progress: resolved 2062, reused 1757, downloaded 0, added 0
Progress: resolved 2062, reused 1800, downloaded 0, added 0
Progress: resolved 2062, reused 1835, downloaded 0, added 0
Progress: resolved 2062, reused 1889, downloaded 0, added 0
Progress: resolved 2062, reused 1905, downloaded 0, added 0
Progress: resolved 2062, reused 1906, downloaded 0, added 0
Progress: resolved 2062, reused 1907, downloaded 0, added 0
Progress: resolved 2062, reused 1948, downloaded 0, added 0
Progress: resolved 2062, reused 2050, downloaded 0, added 12
Progress: resolved 2062, reused 2050, downloaded 0, added 96
Progress: resolved 2062, reused 2050, downloaded 0, added 141
Progress: resolved 2062, reused 2050, downloaded 0, added 206
Progress: resolved 2062, reused 2050, downloaded 0, added 257
Progress: resolved 2062, reused 2050, downloaded 0, added 338
Progress: resolved 2062, reused 2050, downloaded 0, added 380
Progress: resolved 2062, reused 2050, downloaded 0, added 381
Progress: resolved 2062, reused 2050, downloaded 0, added 383
Progress: resolved 2062, reused 2050, downloaded 0, added 387
Progress: resolved 2062, reused 2050, downloaded 0, added 399
Progress: resolved 2062, reused 2050, downloaded 0, added 408
Progress: resolved 2062, reused 2050, downloaded 0, added 414
Progress: resolved 2062, reused 2050, downloaded 0, added 432
Progress: resolved 2062, reused 2050, downloaded 0, added 445
Progress: resolved 2062, reused 2050, downloaded 0, added 528
Progress: resolved 2062, reused 2050, downloaded 0, added 617
Progress: resolved 2062, reused 2050, downloaded 0, added 713
Progress: resolved 2062, reused 2050, downloaded 0, added 781
Progress: resolved 2062, reused 2050, downloaded 0, added 787
Progress: resolved 2062, reused 2050, downloaded 0, added 804
Progress: resolved 2062, reused 2050, downloaded 0, added 852
Progress: resolved 2062, reused 2050, downloaded 0, added 889
Progress: resolved 2062, reused 2050, downloaded 0, added 895
Progress: resolved 2062, reused 2050, downloaded 0, added 941
Progress: resolved 2062, reused 2050, downloaded 0, added 951
Progress: resolved 2062, reused 2050, downloaded 0, added 1085
Progress: resolved 2062, reused 2050, downloaded 0, added 1130
Progress: resolved 2062, reused 2050, downloaded 0, added 1172
Progress: resolved 2062, reused 2050, downloaded 0, added 1178
Progress: resolved 2062, reused 2050, downloaded 0, added 1220
Progress: resolved 2062, reused 2050, downloaded 0, added 1221
Progress: resolved 2062, reused 2050, downloaded 0, added 1236
Progress: resolved 2062, reused 2050, downloaded 0, added 1255
Progress: resolved 2062, reused 2050, downloaded 0, added 1304
Progress: resolved 2062, reused 2050, downloaded 0, added 1327
Progress: resolved 2062, reused 2050, downloaded 0, added 1338
Progress: resolved 2062, reused 2050, downloaded 0, added 1365
Progress: resolved 2062, reused 2050, downloaded 0, added 1392
Progress: resolved 2062, reused 2050, downloaded 0, added 1435
Progress: resolved 2062, reused 2050, downloaded 0, added 1473
Progress: resolved 2062, reused 2050, downloaded 0, added 1501
Progress: resolved 2062, reused 2050, downloaded 0, added 1541
Progress: resolved 2062, reused 2050, downloaded 0, added 1555
Progress: resolved 2062, reused 2050, downloaded 0, added 1598
Progress: resolved 2062, reused 2050, downloaded 0, added 1606
Progress: resolved 2062, reused 2050, downloaded 0, added 1608
Progress: resolved 2062, reused 2050, downloaded 0, added 1649
Progress: resolved 2062, reused 2050, downloaded 0, added 1708
Progress: resolved 2062, reused 2050, downloaded 0, added 1751
Progress: resolved 2062, reused 2050, downloaded 0, added 1768
Progress: resolved 2062, reused 2050, downloaded 0, added 1779
Progress: resolved 2062, reused 2050, downloaded 0, added 1816
Progress: resolved 2062, reused 2050, downloaded 0, added 1877
Progress: resolved 2062, reused 2050, downloaded 0, added 1916
Progress: resolved 2062, reused 2050, downloaded 0, added 1917
Progress: resolved 2062, reused 2050, downloaded 0, added 1918
Progress: resolved 2062, reused 2050, downloaded 0, added 1938
Progress: resolved 2062, reused 2050, downloaded 0, added 1939
Progress: resolved 2062, reused 2050, downloaded 0, added 1951
Progress: resolved 2062, reused 2050, downloaded 0, added 1965
Progress: resolved 2062, reused 2050, downloaded 0, added 2018
Progress: resolved 2062, reused 2050, downloaded 0, added 2061
Progress: resolved 2062, reused 2050, downloaded 0, added 2062
Progress: resolved 2062, reused 2050, downloaded 0, added 2062, done

dependencies:
+ @changesets/changelog-github 0.5.0
+ @changesets/cli 2.29.7
+ @changesets/parse 0.4.1
+ @ianvs/prettier-plugin-sort-imports 4.2.1
+ @manypkg/cli 0.23.0
+ @types/node 20.19.9
+ @vue/compiler-sfc 3.3.4
+ cross-env 7.0.3
+ dotenv-cli 7.3.0
+ esbuild 0.25.4
+ esbuild-register 3.5.0
+ prettier 3.2.5
+ prettier-plugin-packagejson 2.2.18
+ tree-kill 1.2.2
+ turbo 2.2.3
+ typescript 5.8.3
+ vite 5.4.14
+ vitest 3.2.3
error: building of '/nix/store/yckwhbxvqcqsap37lzls33lbqxp954l9-wrangler-4.51.0.drv' from in-memory derivation timed out after 60 seconds
error:
       … from call site
         at /nix/store/zk2qpnzz9hcvwh46q1vcrbzasfiny2jh-prepare-image.nix:13:1:
           12|
           13| {
             | ^
           14|   # Description of the package set to be used (will be loaded by load-pkgs.nix)

       … while calling anonymous lambda
         at /nix/store/zk2qpnzz9hcvwh46q1vcrbzasfiny2jh-prepare-image.nix:13:1:
           12|
           13| {
             | ^
           14|   # Description of the package set to be used (will be loaded by load-pkgs.nix)

       … from call site
         at /nix/store/zk2qpnzz9hcvwh46q1vcrbzasfiny2jh-prepare-image.nix:195:1:
          194| in
          195| writeText "build-output.json" (if (length allContents.errors) == 0
             | ^
          196| then toJSON buildOutput

       … while calling 'writeText'
         at /nix/store/vch5v9rsx8v90jag962pxi4wszfvfcyw-05zq22ry219543phf7q87d883kxl6ry7-source/pkgs/build-support/trivial-builders/default.nix:170:11:
          169|   writeText =
          170|     name: text:
             |           ^
          171|     # TODO: To fully deprecate, replace the assertion with `lib.isString` and remove the warning

       … in the condition of the assert statement
         at /nix/store/vch5v9rsx8v90jag962pxi4wszfvfcyw-05zq22ry219543phf7q87d883kxl6ry7-source/pkgs/build-support/trivial-builders/default.nix:172:5:
          171|     # TODO: To fully deprecate, replace the assertion with `lib.isString` and remove the warning
          172|     assert lib.assertMsg (lib.strings.isConvertibleWithToString text)
             |     ^
          173|       ''pkgs.writeText ${lib.strings.escapeNixString name}: The second argument should be a string, but it's a ${builtins.typeOf text} instead.'';

       … from call site
         at /nix/store/vch5v9rsx8v90jag962pxi4wszfvfcyw-05zq22ry219543phf7q87d883kxl6ry7-source/pkgs/build-support/trivial-builders/default.nix:172:12:
          171|     # TODO: To fully deprecate, replace the assertion with `lib.isString` and remove the warning
          172|     assert lib.assertMsg (lib.strings.isConvertibleWithToString text)
             |            ^
          173|       ''pkgs.writeText ${lib.strings.escapeNixString name}: The second argument should be a string, but it's a ${builtins.typeOf text} instead.'';

       … while calling 'assertMsg'
         at /nix/store/vch5v9rsx8v90jag962pxi4wszfvfcyw-05zq22ry219543phf7q87d883kxl6ry7-source/lib/asserts.nix:50:21:
           49|   # TODO(Profpatsch): add tests that check stderr
           50|   assertMsg = pred: msg: pred || throw msg;
             |                     ^
           51|

       … in the left operand of the OR (||) operator
         at /nix/store/vch5v9rsx8v90jag962pxi4wszfvfcyw-05zq22ry219543phf7q87d883kxl6ry7-source/lib/asserts.nix:50:31:
           49|   # TODO(Profpatsch): add tests that check stderr
           50|   assertMsg = pred: msg: pred || throw msg;
             |                               ^
           51|

       … from call site
         at /nix/store/vch5v9rsx8v90jag962pxi4wszfvfcyw-05zq22ry219543phf7q87d883kxl6ry7-source/pkgs/build-support/trivial-builders/default.nix:172:27:
          171|     # TODO: To fully deprecate, replace the assertion with `lib.isString` and remove the warning
          172|     assert lib.assertMsg (lib.strings.isConvertibleWithToString text)
             |                           ^
          173|       ''pkgs.writeText ${lib.strings.escapeNixString name}: The second argument should be a string, but it's a ${builtins.typeOf text} instead.'';

       … while calling anonymous lambda
         at /nix/store/vch5v9rsx8v90jag962pxi4wszfvfcyw-05zq22ry219543phf7q87d883kxl6ry7-source/lib/strings.nix:2604:5:
         2603|     in
         2604|     x: isStringLike x || elem (typeOf x) types || (isList x && lib.all isConvertibleWithToString x);
             |     ^
         2605|

       … in the left operand of the OR (||) operator
         at /nix/store/vch5v9rsx8v90jag962pxi4wszfvfcyw-05zq22ry219543phf7q87d883kxl6ry7-source/lib/strings.nix:2604:48:
         2603|     in
         2604|     x: isStringLike x || elem (typeOf x) types || (isList x && lib.all isConvertibleWithToString x);
             |                                                ^
         2605|

       … in the left operand of the OR (||) operator
         at /nix/store/vch5v9rsx8v90jag962pxi4wszfvfcyw-05zq22ry219543phf7q87d883kxl6ry7-source/lib/strings.nix:2604:23:
         2603|     in
         2604|     x: isStringLike x || elem (typeOf x) types || (isList x && lib.all isConvertibleWithToString x);
             |                       ^
         2605|

       … from call site
         at /nix/store/vch5v9rsx8v90jag962pxi4wszfvfcyw-05zq22ry219543phf7q87d883kxl6ry7-source/lib/strings.nix:2604:8:
         2603|     in
         2604|     x: isStringLike x || elem (typeOf x) types || (isList x && lib.all isConvertibleWithToString x);
             |        ^
         2605|

       … while calling 'isStringLike'
         at /nix/store/vch5v9rsx8v90jag962pxi4wszfvfcyw-05zq22ry219543phf7q87d883kxl6ry7-source/lib/strings.nix:2624:18:
         2623|   */
         2624|   isStringLike = x: isString x || isPath x || x ? outPath || x ? __toString;
             |                  ^
         2625|

       … in the left operand of the OR (||) operator
         at /nix/store/vch5v9rsx8v90jag962pxi4wszfvfcyw-05zq22ry219543phf7q87d883kxl6ry7-source/lib/strings.nix:2624:59:
         2623|   */
         2624|   isStringLike = x: isString x || isPath x || x ? outPath || x ? __toString;
             |                                                           ^
         2625|

       … in the left operand of the OR (||) operator
         at /nix/store/vch5v9rsx8v90jag962pxi4wszfvfcyw-05zq22ry219543phf7q87d883kxl6ry7-source/lib/strings.nix:2624:44:
         2623|   */
         2624|   isStringLike = x: isString x || isPath x || x ? outPath || x ? __toString;
             |                                            ^
         2625|

       … in the left operand of the OR (||) operator
         at /nix/store/vch5v9rsx8v90jag962pxi4wszfvfcyw-05zq22ry219543phf7q87d883kxl6ry7-source/lib/strings.nix:2624:32:
         2623|   */
         2624|   isStringLike = x: isString x || isPath x || x ? outPath || x ? __toString;
             |                                ^
         2625|

       … while calling the 'isString' builtin
         at /nix/store/vch5v9rsx8v90jag962pxi4wszfvfcyw-05zq22ry219543phf7q87d883kxl6ry7-source/lib/strings.nix:2624:21:
         2623|   */
         2624|   isStringLike = x: isString x || isPath x || x ? outPath || x ? __toString;
             |                     ^
         2625|

       … while calling the 'toJSON' builtin
         at /nix/store/zk2qpnzz9hcvwh46q1vcrbzasfiny2jh-prepare-image.nix:196:6:
          195| writeText "build-output.json" (if (length allContents.errors) == 0
          196| then toJSON buildOutput
             |      ^
          197| else toJSON errorOutput

       … while evaluating attribute 'runtimeGraph'
         at /nix/store/zk2qpnzz9hcvwh46q1vcrbzasfiny2jh-prepare-image.nix:184:5:
          183|   buildOutput = {
          184|     runtimeGraph = fromJSON (builtins.unsafeDiscardStringContext (readFile runtimeGraph));
             |     ^
          185|     symlinkLayer = symlinkLayerMeta;

       … while calling the 'fromJSON' builtin
         at /nix/store/zk2qpnzz9hcvwh46q1vcrbzasfiny2jh-prepare-image.nix:184:20:
          183|   buildOutput = {
          184|     runtimeGraph = fromJSON (builtins.unsafeDiscardStringContext (readFile runtimeGraph));
             |                    ^
          185|     symlinkLayer = symlinkLayerMeta;

       … while evaluating the first argument passed to builtins.fromJSON

       … while calling the 'unsafeDiscardStringContext' builtin
         at /nix/store/zk2qpnzz9hcvwh46q1vcrbzasfiny2jh-prepare-image.nix:184:30:
          183|   buildOutput = {
          184|     runtimeGraph = fromJSON (builtins.unsafeDiscardStringContext (readFile runtimeGraph));
             |                              ^
          185|     symlinkLayer = symlinkLayerMeta;

       … while calling the 'readFile' builtin
         at /nix/store/zk2qpnzz9hcvwh46q1vcrbzasfiny2jh-prepare-image.nix:184:67:
          183|   buildOutput = {
          184|     runtimeGraph = fromJSON (builtins.unsafeDiscardStringContext (readFile runtimeGraph));
             |                                                                   ^
          185|     symlinkLayer = symlinkLayerMeta;

       … while realising the context of path '/nix/store/jbx3sc6w10wd3z78igakra0bwn36ac8r-runtime-graph.json'

       error: Cannot build '/nix/store/hm66zfwj5vq1v6np2l5nrm2klr8pck7f-runtime-graph.json.drv'.
       Reason: 1 dependency failed.
       Output paths:
         /nix/store/jbx3sc6w10wd3z78igakra0bwn36ac8r-runtime-graph.json

FAQ

How does this work?

The short version is that we use the Nix package manager and an optimised layering strategy.

Check out the Nixery talk from NixCon 2019 for more information.

Should I depend on nixery.dev in production?

While we appreciate the enthusiasm, if you would like to use Nixery in your production project we recommend setting up a private instance. The public Nixery at nixery.dev is run on a best-effort basis and we make no guarantees about availability.

Who made this?

Nixery was written by tazjin, originally at Google. These days Nixery is maintained by TVL.

Nixery would not be possible without the many people that have contributed to Nix and nixpkgs over time, maybe you could become one of them?

Where is the source code for this?

Nixery lives in the TVL monorepo. All development happens there and follows the TVL contribution guidelines.

We mirror the source code to Github but do not guarantee that anyone will look at PRs or issues there.