# pnpr configuration — https://pnpm.io/pnpr # # pnpr is EXPERIMENTAL upstream; config keys may change between releases. # The listen address and extra CLI flags are set in /etc/pnpr/pnpr.env, # the proxy-cache path (/var/cache/pnpr) on the ExecStart line — this # file defines storage, registries and (optionally) auth. # # Point clients at it, e.g. in a project's .npmrc: # registry=http://127.0.0.1:7677/ # A single registry can also be addressed directly: # registry=http://127.0.0.1:7677/~npmjs/ # # Same-host rootless Podman runners (gitea-runner jobs): loopback is the # container's own, and under pasta the host's LAN IP is carried by the # container too — see the addressing note in # /etc/gitea-runner/cache-server.yaml. Use a host /etc/hosts entry such as # 10.88.0.1 host.containers.internal # then set PNPR_LISTEN=0.0.0.0:7677 (or the bridge address) plus # PNPR_OPTS=--public-url http://host.containers.internal:7677 in # /etc/pnpr/pnpr.env, and use that URL in the runners' .npmrc. # Where hosted (published) packages live. Persistent; the disposable # upstream mirror is kept separately under /var/cache/pnpr. storage: /var/lib/pnpr registries: # Caching proxy of the public npm registry. npmjs: type: upstream url: https://registry.npmjs.org/ public: true # Private hosted registry for own packages — uncomment to enable # publishing (requires auth, see below). #local: # type: hosted # packages: # '@infomaos/*': # publish: $authenticated # What clients see: first match wins across sources. main: type: router sources: [npmjs] #sources: [local, npmjs] defaultRegistry: main # htpasswd-backed authentication (needed for publishing to a hosted # registry, or to require login for reads on non-public registries). #auth: # htpasswd: # file: /var/lib/pnpr/htpasswd # max_users: 1