# Private Registry (Verdaccio) {#private-registry-verdaccio}


Configure a private npm registry using Verdaccio for managing internal packages.


## Overview {#overview}


Ever Gauzy uses [Verdaccio](https://verdaccio.org/) as a private npm registry at `packages.ever.co` for distributing internal packages securely.


## Registry URL {#registry-url}


```
https://registry.npmjs.org  →  https://packages.ever.co
```


## Docker Configuration {#docker-configuration}


Add the following to Dockerfiles that run `yarn install`:

```dockerfile
ARG VERDACCIO_TOKEN
ENV VERDACCIO_TOKEN=${VERDACCIO_TOKEN}

RUN echo "//packages.ever.co/:_authToken=${VERDACCIO_TOKEN}" > .npmrc && \
    echo "@ever-co:registry=https://packages.ever.co" >> .npmrc && \
    echo "always-auth=true" >> .npmrc
```


## GitHub Actions {#github-actions}


Configure in CI/CD workflows:

```yaml
- name: Configure private registry
  run: |
    echo "//packages.ever.co/:_authToken=${{ secrets.VERDACCIO_TOKEN }}" >> .npmrc
    echo "@ever-co:registry=https://packages.ever.co" >> .npmrc
    echo "always-auth=true" >> .npmrc
```


## Token Management {#token-management}


| Item       | Description                     |
| ---------- | ------------------------------- |
| Token Name | `VERDACCIO_TOKEN`               |
| Token Type | Long-lived authentication token |
| Storage    | GitHub Secrets                  |
| Scope      | Organization-level              |


## Troubleshooting {#troubleshooting}



### 401 Unauthorized {#401-unauthorized}


If you get 401 errors when downloading tarballs:

1. Ensure `always-auth=true` is set in `.npmrc`
2. Verify the token is not expired
3. Check that the token has read access to the packages


## Related Pages {#related-pages}


- [Production Deployment](https://sourcey-gauzy.pages.dev/devops/production-deployment/index.md) — deployment guide
- [Environment Variables](https://sourcey-gauzy.pages.dev/devops/environment-variables/index.md) — configuration reference
