Verdaccio Notlarım

Cem Topkaya
3 min readApr 19, 2020

--

Tüm Ağ Arayüzlerine Cevap Versin

Tüm ethernet arayüzlerinden gelen istekleri yanıtlasın istersek:

config.yaml dosyasında

config.yaml dosyasında listen anahtarı dizi olarak değer alıyor.
Not: yaml içinde - ile başlayan değerler “dizi” olduğuna delalet eder :)

Demek çeşitli network arayüzlerini girebiliriz ve 0.0.0.0 arayüzüne 4873 portundan yani tüm ağ arayüzlerine 4873 portundan gelen isteklere verdaccio cevap versin istiyoruz.

listen -0.0.0.:4873
# path to a directory with all packages
storage: ./storage
# path to a directory with plugins to include
plugins: ./plugins
web:
title: Verdaccio
# comment out to disable gravatar support
# gravatar: false
# by default packages are ordercer ascendant (asc|desc)
# sort_packages: asc
auth:
htpasswd:
file: ./htpasswd
# Maximum amount of users allowed to register, defaults to "+inf".
# You can set this to -1 to disable registration.
# max_users: 1000
listen:
- localhost:4873
- 0.0.0.0:4873

Scope Bazlı Npm Sunucusunu Ayarla

Paketleri kapsamlarına göre farklı registry adreslerine yönlendirmek için uplinks ve packages kullanılacak.

# a list of other known repositories we can talk to
uplinks:
npmjs:
url: http://registry.npmjs.org/
cache: true
# Önce proxy adresini tanımla
cinar:
url: http://192.168.13.183:4873
cache: false
packages:
# Özelden (@cinar/*) genele (@*/*) doğru
'@cinar/*':
# @cinar scope'una gelen paket isteklerini
# cinar proxy'sine yönlendir
access: $all
proxy: cinar
'@*/*':
# scoped packages
access: $all
publish: $authenticated
unpublish: $authenticated
proxy: npmjs

Yasaklı Erişim (403)

publish veya unpublish yapmaya çalışıyor ama başaramıyorum. Çünkü bu işlem yasaklı ancak yetkili bir kullanıcıyla erişinceye kadar.

En basit çözüm sizin private sunucunuz ve dışarıya kapalı ise gelin bunu all ile herkesin erişimine açalım.

Unutmadan, $all şeklinde yazım ileride deprecate olacağı için “all” demek yeterli olacak.

Uplink is down, refuse to publish

npm ERR! code E503
npm ERR! 503 Service Unavailable - PUT http://192.168.13.33:4873/@cinar%2fcn-nrf - one of the uplinks is down, refuse to publish

İstemci offline olduğunda verinin yüklenmesini istemiyor gibi bir durumu Verdaccio kabul etmiyormuşşşşş. Her neyse çözümü config.yml dosyasına şu satırları eklemek:

publish:
allow_offline: false
son iki satırı packages bittikten sonra ekleyeceğiz

Konuyla ilgili verdaccio sitesinde şu var:

Varsayılan olarak verdaccio, istemci çevrimdışıyken yayınlanmasına izin vermez; bu, true olarak ayarlanarak bu davranış geçersiz kılınabilir.

https://verdaccio.org/docs/en/configuration.html
uplinks:
mirror:
url: xxxxxxxxxxxxxxxxxxxxxxx
packages:
'@*/*':
access: $all
publish: $authenticated
proxy: mirror
'lodash':
access: $all
publish: $authenticated
'**':
access: $all
publish: $authenticated
proxy: mirror
publish:
allow_offline: true

Referanslar:

Max Body Size *

18:03:11  npm http fetch PUT 413 http://192.168.13.33:4873/@cinar%2fcn-main 2384ms
18:03:11 npm verb stack Error: 413 Payload Too Large - PUT http://192.168.13.33:4873/@cinar%2fcn-main - request entity too large
18:03:11 npm verb stack at res.buffer.catch.then.body (/usr/lib/node_modules/npm/node_modules/npm-registry-fetch/check-response.js:104:15)
18:03:11 npm verb stack at process._tickCallback (internal/process/next_tick.js:68:7)
18:03:11 npm verb statusCode 413
18:03:11 npm verb pkgid @cinar/cn-main@0.0.11

Çözümü:

--

--

Cem Topkaya
Cem Topkaya

Written by Cem Topkaya

Evlat, kardeş, ağabey, eş, baba, müzik sever, öğrenmek ister, paylaşmaya can atar, iyi biri olmaya çalışır, hakkı geçenlerden helallik ister vs.

No responses yet