Public | Automated Build

Last pushed: 2 years ago
Short Description
private npm registry
Full Description

Sinopia (Docker Image)

Sinopia is a private npm repository server.

Had to downgrade to node v10 for stability. The storage path is also changed in the config.yaml to handle the edge case where htpasswd is installed via npm.

Recommend Usage

need to double check this because I probably won't maintain an nginx repo any longer, nginx-proxy by jwilder is 99.9% identical and kept up to speed.

Generate ssl files on server:

mkdir -p /path/to/certs && cd /path/to/certs

openssl req -out -new -newkey rsa:2048 -nodes -keyout

openssl dhparam -out 2048

Run nginx-proxy container:

docker run -d -p 80:80 -p 443:443 -v /path/to/certs:/etc/nginx/certs -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy

Run sinopia container:

mkdir -p /path/to/storage

mkdir -p /path/to/config.yaml

edit config.yaml

docker run -e \ -v /path/to/storage:/sinopia/storage \ -v /path/to/config.yaml:/sinopia/config.yaml \ --name sinopia -d -P rnbwd/sinopia

Optional Usage

  • To run default container on port 4873

docker run --name sinopia -d -p 4873:4873 rnbwd/sinopia

  • to sync storage

docker run --name sinopia -d -p 4873:4873 -v <local-path-to-storage>:/sinopia/storage rnbwd/sinopia

  • To attach a custom config.yaml

    docker run -v <local-path-to-config>:/sinopia/config.yaml \
    -d -p 4873:4873 rnbwd/sinopia`

  • To modify config.yaml, update local config then restart

docker restart sinopia

Building Custom Containers

  • From github repository
git clone
cd sinopia-docker
docker build -t sinopia .
docker run -d -p 4873:4873 sinopia
  • Nginx support

Use jwilder/nginx-proxy

After running the nginx-proxy, run the sinopia container with env var VIRTUAL_HOST

docker run -e \
  -v <local-path-to-config>:/sinopia/config.yaml \
  --name sinopia -d -P jwilder/sinopia


Docker Pull Command
Source Repository