🧊 a minimal registry for JavaScript packages
README.md

Tessera #

A minimal registry for JavaScript packages.

Tessera

Development #

nix develop -c $SHELL
cargo watch -x run

Example #

Running the registry #

TESSERA_TOKEN=secret-token cargo run

Using the registry #

You can also just use the --registry flag, but the examples assume you have an .npmrc for simplicity.

printf '%s\n' 'registry=http://localhost:3000/' '//localhost:3000/:_authToken=secret-token' > .npmrc

Publishing #

mkdir my-package && cd my-package && npm init -y
npm publish

Installing #

npm view my-package
npm install my-package

Configuration #

Name Description Default
TESSERA_ADDR bind address 127.0.0.1
TESSERA_PORT port 3000
TESSERA_DATA_DIR data directory data
TESSERA_TOKEN publish token (required)
TESSERA_PUBLIC_URL public base URL http://<addr>:<port>
RUST_LOG log filter info

NixOS #

A default/tessera nixosModules is provided

{
  inputs.tessera.url = "git+https://tangled.org/drainpixie.xyz/tessera";

  imports = [inputs.tessera.nixosModules.default];

  services.tessera = {
    enable = true;
    env-file = config.age.secrets.tessera-environment.path;
    
    host = "127.0.0.1";
    port = 3000;
    
    data-dir = "/var/lib/tessera";
    hostname = "https://tessera.drainpixie.xyz";

    user = "tessera";
    group = "tessera";
  };
}

Architecture #

  • Rust
  • Nix

Attributions #