Files
pnpm/pnpr/docs/web-ui.md
Zoltan Kochan cb31e127a0 docs(pnpr): remove stale duplicated docs and fix drifted claims (#16926)
* docs(pnpr): remove stale duplicated docs and fix drifted claims

The crate README and OIDC.md under pnpr/crates/pnpr duplicated the website
docs and had drifted: a compilerCaches key that no longer exists, hardcoded
quota numbers, the old registry/ path. The pnpr.client README used the
pre-rename remoteSideEffectsCache spellings and claimed the artifact owner
must equal the username. Point both at pnpr/docs instead.

Also fix claims the code contradicts: the handshake is served when any
surface is enabled and advertises ecosystems, publish, and pipeline; the
resolve request field is registries, not namedRegistries; pnpm does not
call the handshake before an npm resolve; there is no config reload; the
packument TTL has no config key; and the --config help still described a
verdaccio-shaped file.

Install instructions now name the next dist-tag, because latest still
points at a July 2026 pre-alpha snapshot.

* docs(pnpr): address review on handshake, verify order, and root-mounted endpoints

* docs(pnpr): document the /npm/ registry bases on multi-ecosystem servers
2026-10-14 12:56:39 +02:00

47 lines
1.6 KiB
Markdown

---
id: web-ui
title: Web UI
---
Added in: v0.1.0-alpha.15
pnpr serves a web UI at `/-/ui/` for browsing its registries and packages. The
UI is the separate `@pnpm/pnpr-ui` package. Install it next to pnpr:
```sh
pnpm add -g @pnpm/pnpr@next,@pnpm/pnpr-ui@next
```
The comma puts both packages in one
[global install group](https://pnpm.io/global-packages#isolated-installations),
where pnpr can find the UI. With npm, run
`npm install -g @pnpm/pnpr@next @pnpm/pnpr-ui@next`.
Start pnpr and open `http://127.0.0.1:7677/-/ui/`. The UI talks to the server
that serves it, so it needs no [CORS](discovery.md) setting. To see private
packages, sign in with a password or with an [OIDC provider](oidc.md#browser-sign-in) that
offers browser sign-in. The UI keeps the session token in the tab's session
storage, so it survives a reload and ends when the tab closes.
pnpr serves the UI only when the
[registry surface](configuration.md#registry-resolver-and-artifact-surfaces) is
enabled. The UI loads its font from Google Fonts.
## Settings
```yaml title="pnpr.yaml"
ui:
enabled: true
dir: ./pnpr-ui
```
- `enabled`: `false` serves no UI, even when `@pnpm/pnpr-ui` is installed.
Defaults to `true`.
- `dir`: the directory of a built UI, such as the `dist` directory of
`@pnpm/pnpr-ui`. A relative path is resolved against the directory of the
config file. pnpr does not start when the directory has no `index.html`.
Without `dir`, pnpr serves `@pnpm/pnpr-ui` when it is installed next to pnpr.
The container image does not include the UI. To serve it from a container,
mount the `dist` directory of `@pnpm/pnpr-ui` and set `dir`.