Compare commits
386 Commits
@verdaccio
...
@verdaccio
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d675ce1fba | ||
|
|
55f74373f2 | ||
|
|
d43894e8f6 | ||
|
|
8ea712935e | ||
|
|
d08fe29d97 | ||
|
|
d65db96ff0 | ||
|
|
1fafb266bd | ||
|
|
6de8d61527 | ||
|
|
5401fd7635 | ||
|
|
8eee286b01 | ||
|
|
44be7b94b7 | ||
|
|
bbbb42b8fe | ||
|
|
fae5093d96 | ||
|
|
8c5ae96f79 | ||
|
|
d78c8b5153 | ||
|
|
966d9fad1d | ||
|
|
c40eae41de | ||
|
|
6c50f8569c | ||
|
|
82cb0f2bff | ||
|
|
4088cdef6d | ||
|
|
5167bb528f | ||
|
|
80df591e8f | ||
|
|
a2c3fa9ea7 | ||
|
|
a5019d89f3 | ||
|
|
24fbba1c6c | ||
|
|
c77d03018e | ||
|
|
5a6bf953a7 | ||
|
|
a57ba5f655 | ||
|
|
20a5e571d1 | ||
|
|
5b3903963a | ||
|
|
274910ca8d | ||
|
|
98a40887f5 | ||
|
|
5199775a06 | ||
|
|
9fb5429d18 | ||
|
|
3e4498ccdc | ||
|
|
a709357db6 | ||
|
|
4bee336945 | ||
|
|
20f244222b | ||
|
|
4311afea53 | ||
|
|
f00cfb4f97 | ||
|
|
4fc14eab02 | ||
|
|
a2b69a08e2 | ||
|
|
6eea70a6dd | ||
|
|
e533f1d500 | ||
|
|
45cc559f47 | ||
|
|
ce81b3e96d | ||
|
|
31d661c7bd | ||
|
|
b69333778d | ||
|
|
4dcc250fdb | ||
|
|
756a47aee0 | ||
|
|
2c45bc6e82 | ||
|
|
31050ee369 | ||
|
|
9652472780 | ||
|
|
87f903d530 | ||
|
|
8d625d25d2 | ||
|
|
a179f1fd43 | ||
|
|
a049eaa38f | ||
|
|
d2dd76260b | ||
|
|
f38c759cb2 | ||
|
|
28c3aad443 | ||
|
|
a020d4f580 | ||
|
|
160c25ddc5 | ||
|
|
1debee3e9d | ||
|
|
76d78b0328 | ||
|
|
61bbede301 | ||
|
|
635ca3f924 | ||
|
|
aeff267d94 | ||
|
|
a0dca6e927 | ||
|
|
71e5fb0221 | ||
|
|
aa0b2aa9df | ||
|
|
498afcd222 | ||
|
|
83561bc52d | ||
|
|
67b4681ce7 | ||
|
|
df53f61c64 | ||
|
|
64c8221d35 | ||
|
|
c908963132 | ||
|
|
46db10fc4f | ||
|
|
fadba40a9f | ||
|
|
02023afd74 | ||
|
|
f130817828 | ||
|
|
d2f9013ece | ||
|
|
b8554c8935 | ||
|
|
8ea24df16a | ||
|
|
67bbd93379 | ||
|
|
d09ea21bc9 | ||
|
|
0b72c32400 | ||
|
|
2d137274c4 | ||
|
|
cc30a85d3d | ||
|
|
85a01746a5 | ||
|
|
94f5e765a8 | ||
|
|
4cd71c6409 | ||
|
|
be71d77511 | ||
|
|
92a6f9a3fd | ||
|
|
b9a947aa2f | ||
|
|
110d90d888 | ||
|
|
6bed458925 | ||
|
|
73b3479a3a | ||
|
|
459af1cd39 | ||
|
|
e0d639a1a6 | ||
|
|
b78f35257e | ||
|
|
06e400cb34 | ||
|
|
dd380c5a5e | ||
|
|
ad3151c3f3 | ||
|
|
cca1f7f32a | ||
|
|
3d86b836c3 | ||
|
|
7f48edc254 | ||
|
|
9245b4d39b | ||
|
|
3b363fb531 | ||
|
|
5b39aeb623 | ||
|
|
edc7a538f3 | ||
|
|
d585216153 | ||
|
|
1367beae51 | ||
|
|
944ecf6874 | ||
|
|
2bd10d6010 | ||
|
|
7ff4808be6 | ||
|
|
7bb3c2bf0e | ||
|
|
736e7de600 | ||
|
|
048ac95e8b | ||
|
|
91fff48cb1 | ||
|
|
de3eb0fbf3 | ||
|
|
531e8d0fd1 | ||
|
|
f38cc44694 | ||
|
|
bc7f8668a8 | ||
|
|
cbd12c8f7c | ||
|
|
50968398f9 | ||
|
|
aca6ee3d92 | ||
|
|
85eaa8b043 | ||
|
|
19e5599692 | ||
|
|
96f324e9ed | ||
|
|
0a269d37b7 | ||
|
|
136a251cb6 | ||
|
|
9b8d0bb458 | ||
|
|
59435a9f46 | ||
|
|
ff6d6f4755 | ||
|
|
0847b7f99d | ||
|
|
10bd9bd5a3 | ||
|
|
02be97fc3a | ||
|
|
7ada36f5f6 | ||
|
|
0e7b266adc | ||
|
|
9c10955988 | ||
|
|
9aa77d92c8 | ||
|
|
937bbd0454 | ||
|
|
ce92b87305 | ||
|
|
5be1475204 | ||
|
|
563d65c9ea | ||
|
|
299f9cbf0f | ||
|
|
c85f98ce4d | ||
|
|
b5887ba3f5 | ||
|
|
0cde4e8e98 | ||
|
|
b1b6a94e3c | ||
|
|
84201b43b5 | ||
|
|
070f9477a7 | ||
|
|
935b4ff583 | ||
|
|
7cf4abb99d | ||
|
|
df39b4624a | ||
|
|
68c65f418a | ||
|
|
4b7d0b0c0c | ||
|
|
f8740598a3 | ||
|
|
730b5d8cc0 | ||
|
|
dd54d82000 | ||
|
|
c847a8b61d | ||
|
|
22093ebffe | ||
|
|
7ec9c8772b | ||
|
|
926e519dd3 | ||
|
|
5106fcb287 | ||
|
|
52d3442856 | ||
|
|
4fd84f589b | ||
|
|
ab61e1adc9 | ||
|
|
5983625ff7 | ||
|
|
fe6fcb9950 | ||
|
|
d3ab11a6f0 | ||
|
|
508247ce70 | ||
|
|
dd65119454 | ||
|
|
a87364b839 | ||
|
|
57743e7150 | ||
|
|
80f498c037 | ||
|
|
d13408b4fc | ||
|
|
493fdebea3 | ||
|
|
85675d6fed | ||
|
|
8592ebb5f1 | ||
|
|
a40f39d7ec | ||
|
|
c070bfcd73 | ||
|
|
a32b0a6c06 | ||
|
|
d778f2cd18 | ||
|
|
d36beaf650 | ||
|
|
0634d90f05 | ||
|
|
1a3b0db563 | ||
|
|
fc05d3bfb2 | ||
|
|
8ec8ba5758 | ||
|
|
2def2ca635 | ||
|
|
89cbc06151 | ||
|
|
d2c68f2195 | ||
|
|
b260feafee | ||
|
|
49ebe86dd5 | ||
|
|
8177f81780 | ||
|
|
ebcafd2739 | ||
|
|
651092d08e | ||
|
|
47f36463a8 | ||
|
|
f7e4e5c196 | ||
|
|
2cf0371c0e | ||
|
|
b60e20037d | ||
|
|
18601f0fe0 | ||
|
|
6fc5464e6e | ||
|
|
02c5e76eec | ||
|
|
128cd6898d | ||
|
|
ccbfaad0da | ||
|
|
094879d884 | ||
|
|
4735c06320 | ||
|
|
a828271d63 | ||
|
|
5bb049a79b | ||
|
|
545afc26d2 | ||
|
|
646caddbc3 | ||
|
|
2d41073f56 | ||
|
|
fd29a9aa94 | ||
|
|
ad5650300f | ||
|
|
e8b3ada53c | ||
|
|
56a9f5723b | ||
|
|
955c93e2c9 | ||
|
|
f5a2c8c5b7 | ||
|
|
2a86a46b85 | ||
|
|
8e17d19c92 | ||
|
|
bf0beff656 | ||
|
|
ee3b4486de | ||
|
|
c9ee1bbefb | ||
|
|
38e955ebd3 | ||
|
|
7346876680 | ||
|
|
9430e9fc0d | ||
|
|
d04153a8e5 | ||
|
|
d0ebfa68eb | ||
|
|
db2c8bc8a1 | ||
|
|
d65c74c0b1 | ||
|
|
4723b325bd | ||
|
|
4a6476c824 | ||
|
|
82f6886ded | ||
|
|
21ddd12166 | ||
|
|
980b09e40c | ||
|
|
a15c915b17 | ||
|
|
810eb5f33a | ||
|
|
8c8f0e1600 | ||
|
|
5c36ec5f8f | ||
|
|
2b4f8a1b63 | ||
|
|
af754f88ca | ||
|
|
d6febce1d9 | ||
|
|
36590e5246 | ||
|
|
7cf5dfd11c | ||
|
|
4571d32a83 | ||
|
|
1f59ff68d6 | ||
|
|
02b92bd13b | ||
|
|
29b1d59b56 | ||
|
|
24b9be0202 | ||
|
|
418bf0d8fa | ||
|
|
6822ab9fe2 | ||
|
|
7a45f4e244 | ||
|
|
be3f74e528 | ||
|
|
2533cb5813 | ||
|
|
06448be421 | ||
|
|
cf8d691c95 | ||
|
|
6021d05f41 | ||
|
|
0399c4cdd2 | ||
|
|
dbceee5a8f | ||
|
|
5bac4634d7 | ||
|
|
98e5e3d452 | ||
|
|
5d9d05eb24 | ||
|
|
c8f342d4eb | ||
|
|
6f2be136fa | ||
|
|
0de7dcf146 | ||
|
|
e75c0a3b95 | ||
|
|
7632edd0e1 | ||
|
|
8246bb69b2 | ||
|
|
a88c72d0b2 | ||
|
|
b13a3fefd3 | ||
|
|
d8cd1ca887 | ||
|
|
b98475e185 | ||
|
|
000d437463 | ||
|
|
33a5c5a179 | ||
|
|
e8491f42e3 | ||
|
|
47deac7ead | ||
|
|
4d1e1ec8a0 | ||
|
|
a73b0a9d1c | ||
|
|
59209ca9c5 | ||
|
|
ccdb8c7176 | ||
|
|
136771eb39 | ||
|
|
0285bf2432 | ||
|
|
21d9f2b6e3 | ||
|
|
fa3d878286 | ||
|
|
20c9e43edc | ||
|
|
18dc5f1f2f | ||
|
|
b7d319c5be | ||
|
|
f86c31ed0e | ||
|
|
076f0f85e8 | ||
|
|
c2a1f4a73a | ||
|
|
41475949ba | ||
|
|
d390a66158 | ||
|
|
7041a4381e | ||
|
|
14d973c552 | ||
|
|
13310814da | ||
|
|
16458f801e | ||
|
|
1322ffc2c4 | ||
|
|
2091f268d3 | ||
|
|
28331ff07a | ||
|
|
1ad1214c5e | ||
|
|
cf4489abb1 | ||
|
|
d7bf5453b1 | ||
|
|
3184ed41d8 | ||
|
|
0525ebfda3 | ||
|
|
6c1eb021ba | ||
|
|
1016fc0ff1 | ||
|
|
30875acc70 | ||
|
|
3dc5b5045f | ||
|
|
0f21053e04 | ||
|
|
a264faba47 | ||
|
|
d7005e6029 | ||
|
|
36b5ecd2dc | ||
|
|
9c03e11cfa | ||
|
|
640b92667f | ||
|
|
8478bd97b8 | ||
|
|
3836595506 | ||
|
|
7bac933b81 | ||
|
|
5cb4e6dc2f | ||
|
|
57d26af661 | ||
|
|
497c640fc3 | ||
|
|
47415298c9 | ||
|
|
453bfadba0 | ||
|
|
a0ee7c102a | ||
|
|
785da5a5b3 | ||
|
|
ae08b22730 | ||
|
|
b81417d774 | ||
|
|
500b25015d | ||
|
|
71fb7d1223 | ||
|
|
162d64e053 | ||
|
|
5776015058 | ||
|
|
f345fefd99 | ||
|
|
f6ffddbb5b | ||
|
|
98fbff4e1d | ||
|
|
d1aa663553 | ||
|
|
7fc26bf026 | ||
|
|
255e41ffce | ||
|
|
9ae112e129 | ||
|
|
ed32c53af8 | ||
|
|
49dfeed37d | ||
|
|
b56d5cec39 | ||
|
|
70d66eb473 | ||
|
|
ffb087887a | ||
|
|
120dbd98ad | ||
|
|
f31e1b4643 | ||
|
|
5f8e886d3f | ||
|
|
7a37508b96 | ||
|
|
c4a3be5557 | ||
|
|
90bd8eb75a | ||
|
|
c179a8afee | ||
|
|
9f0468de48 | ||
|
|
ef93beb986 | ||
|
|
2dedb56b38 | ||
|
|
9b978c6a5f | ||
|
|
d102fe5ba0 | ||
|
|
353a283b40 | ||
|
|
e85ed294d7 | ||
|
|
58f35350fa | ||
|
|
a3e7dd69d6 | ||
|
|
4813595e40 | ||
|
|
ea86dde011 | ||
|
|
d0d4d0fd8f | ||
|
|
cfdd2ae698 | ||
|
|
f2ab24943d | ||
|
|
e6bc577379 | ||
|
|
c4fc24f38e | ||
|
|
066cc819a8 | ||
|
|
81ea129d80 | ||
|
|
af174f0c8c | ||
|
|
c11a5958a6 | ||
|
|
0e1c078ecd | ||
|
|
836a8702cc | ||
|
|
0d8ecab1ba | ||
|
|
ccf92cabdc | ||
|
|
7f0b4db9f8 | ||
|
|
76e62134a3 | ||
|
|
31f5a94098 | ||
|
|
a22300afcf | ||
|
|
717e42b383 | ||
|
|
91e043addc | ||
|
|
dd9726957f | ||
|
|
9230779af1 | ||
|
|
6bef6d879a | ||
|
|
ef6c7d9f0e | ||
|
|
4cc5411056 | ||
|
|
9d96fa7e53 |
30
.babelrc
30
.babelrc
@@ -1,26 +1,14 @@
|
||||
{
|
||||
"presets": [ [
|
||||
"@babel/env",
|
||||
{
|
||||
"useBuiltIns": "usage",
|
||||
"corejs": {
|
||||
"version": 3, "proposals": true
|
||||
},
|
||||
"targets": {
|
||||
"node": 14
|
||||
"presets": [
|
||||
[
|
||||
"@babel/env",
|
||||
{
|
||||
"targets": {
|
||||
"node": 16
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
],
|
||||
"@babel/typescript"
|
||||
],
|
||||
"plugins": [
|
||||
"babel-plugin-dynamic-import-node",
|
||||
"@babel/proposal-class-properties",
|
||||
"@babel/proposal-object-rest-spread",
|
||||
"@babel/plugin-proposal-optional-chaining",
|
||||
"@babel/plugin-proposal-nullish-coalescing-operator"
|
||||
],
|
||||
"ignore": [
|
||||
"**/*.d.ts"
|
||||
]
|
||||
"ignore": ["**/*.d.ts"]
|
||||
}
|
||||
|
||||
37
.changeset/bright-poems-obey.md
Normal file
37
.changeset/bright-poems-obey.md
Normal file
@@ -0,0 +1,37 @@
|
||||
---
|
||||
'@verdaccio/api': major
|
||||
'@verdaccio/fastify-migration': major
|
||||
'@verdaccio/tarball': major
|
||||
'@verdaccio/local-storage': major
|
||||
'verdaccio-memory': major
|
||||
'@verdaccio/server': major
|
||||
'@verdaccio/store': major
|
||||
'@verdaccio/utils': major
|
||||
---
|
||||
|
||||
refactor: download manifest endpoint and integrate fastify
|
||||
|
||||
Much simpler API for fetching a package
|
||||
|
||||
```
|
||||
const manifest = await storage.getPackageNext({
|
||||
name,
|
||||
uplinksLook: true,
|
||||
req,
|
||||
version: queryVersion,
|
||||
requestOptions,
|
||||
});
|
||||
```
|
||||
|
||||
> not perfect, the `req` still is being passed to the proxy (this has to be refactored at proxy package) and then removed from here, in proxy we pass the request instance to the `request` library.
|
||||
|
||||
### Details
|
||||
|
||||
- `async/await` sugar for getPackage()
|
||||
- Improve and reuse code between current implementation and new fastify endpoint (add scaffolding for request manifest)
|
||||
- Improve performance
|
||||
- Add new tests
|
||||
|
||||
### Breaking changes
|
||||
|
||||
All storage plugins will stop to work since the storage uses `getPackageNext` method which is Promise based, I won't replace this now because will force me to update all plugins, I'll follow up in another PR. Currently will throw http 500
|
||||
5
.changeset/brown-cycles-laugh.md
Normal file
5
.changeset/brown-cycles-laugh.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@verdaccio/cli': patch
|
||||
---
|
||||
|
||||
chore: improve error logger message
|
||||
5
.changeset/brown-pandas-wink.md
Normal file
5
.changeset/brown-pandas-wink.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@verdaccio/ui-theme': patch
|
||||
---
|
||||
|
||||
add banner support ukraine
|
||||
5
.changeset/dull-monkeys-search.md
Normal file
5
.changeset/dull-monkeys-search.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@verdaccio/ui-theme': patch
|
||||
---
|
||||
|
||||
show verdaccio logo in the footer even when custom brand is set
|
||||
11
.changeset/eleven-brooms-hunt.md
Normal file
11
.changeset/eleven-brooms-hunt.md
Normal file
@@ -0,0 +1,11 @@
|
||||
---
|
||||
'@verdaccio/api': minor
|
||||
'@verdaccio/core': minor
|
||||
'@verdaccio/tarball': minor
|
||||
'@verdaccio/middleware': minor
|
||||
'verdaccio-audit': minor
|
||||
'@verdaccio/utils': minor
|
||||
'@verdaccio/web': minor
|
||||
---
|
||||
|
||||
refactor: improve docker image build with strict dependencies and prod build
|
||||
6
.changeset/fair-lemons-beam.md
Normal file
6
.changeset/fair-lemons-beam.md
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@verdaccio/logger-prettify': minor
|
||||
'@verdaccio/logger': patch
|
||||
---
|
||||
|
||||
hydrate template placeholders in log messages when format is set to 'json'
|
||||
5
.changeset/fuzzy-drinks-taste.md
Normal file
5
.changeset/fuzzy-drinks-taste.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@verdaccio/ui-theme': minor
|
||||
---
|
||||
|
||||
fix: remove engines from ui-theme
|
||||
5
.changeset/kind-bears-nail.md
Normal file
5
.changeset/kind-bears-nail.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@verdaccio/ui-theme': patch
|
||||
---
|
||||
|
||||
feat: add types and package module icons on sidebar
|
||||
7
.changeset/light-walls-begin.md
Normal file
7
.changeset/light-walls-begin.md
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
'@verdaccio/ui-theme': minor
|
||||
'@verdaccio/server': minor
|
||||
'@verdaccio/web': minor
|
||||
---
|
||||
|
||||
feat: align with v5 ui endpoints and ui small bugfix
|
||||
5
.changeset/loud-shoes-jog.md
Normal file
5
.changeset/loud-shoes-jog.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@verdaccio/ui-theme': patch
|
||||
---
|
||||
|
||||
chore: force publish
|
||||
5
.changeset/lovely-drinks-argue.md
Normal file
5
.changeset/lovely-drinks-argue.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@verdaccio/loaders': patch
|
||||
---
|
||||
|
||||
always create plugin instance with new
|
||||
5
.changeset/neat-toys-float.md
Normal file
5
.changeset/neat-toys-float.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@verdaccio/ui-theme': patch
|
||||
---
|
||||
|
||||
fix: replace ts icon by td and fix commonjs icon
|
||||
43
.changeset/orange-flowers-cover.md
Normal file
43
.changeset/orange-flowers-cover.md
Normal file
@@ -0,0 +1,43 @@
|
||||
---
|
||||
'@verdaccio/config': minor
|
||||
'@verdaccio/types': minor
|
||||
'@verdaccio/ui-theme': minor
|
||||
---
|
||||
|
||||
feat: rework web header for mobile, add new settings and raw manifest button
|
||||
|
||||
### New set of variables to hide features
|
||||
|
||||
Add set of new variables that allow hide different parts of the UI, buttons, footer or download tarballs. _All are
|
||||
enabled by default_.
|
||||
|
||||
```yaml
|
||||
# login: true <-- already exist but worth the reminder
|
||||
# showInfo: true
|
||||
# showSettings: true
|
||||
# In combination with darkMode you can force specific theme
|
||||
# showThemeSwitch: true
|
||||
# showFooter: true
|
||||
# showSearch: true
|
||||
# showDownloadTarball: true
|
||||
```
|
||||
|
||||
> If you disable `showThemeSwitch` and force `darkMode: true` the local storage settings would be
|
||||
> ignored and force all themes to the one in the configuration file.
|
||||
|
||||
Future could be extended to
|
||||
|
||||
### Raw button to display manifest package
|
||||
|
||||
A new experimental feature (enabled by default), button named RAW to be able navigate on the package manifest directly on the ui, kudos to [react-json-view](https://www.npmjs.com/package/react-json-view) that allows an easy integration, not configurable yet until get more feedback.
|
||||
|
||||
```yaml
|
||||
showRaw: true
|
||||
```
|
||||
|
||||
#### Rework header buttons
|
||||
|
||||
- The header has been rework, the mobile was not looking broken.
|
||||
- Removed info button in the header and moved to a dialog
|
||||
- Info dialog now contains more information about the project, license and the aid content for Ukrania now is inside of the info modal.
|
||||
- Separate settings and info to avoid collapse too much info (for mobile still need some work)
|
||||
@@ -41,19 +41,27 @@
|
||||
"@verdaccio/fastify-migration": "6.0.0-6-next.9",
|
||||
"@verdaccio/eslint-config": "1.0.0",
|
||||
"@verdaccio/benchmark": "1.0.0",
|
||||
"@verdaccio/website": "5.1.3",
|
||||
"@verdaccio/core": "6.0.0-next.0",
|
||||
"@verdaccio/helper": "1.0.0"
|
||||
"@verdaccio/test-helper": "1.0.0",
|
||||
"docusaurus-plugin-contributors": "1.0.0",
|
||||
"@verdaccio/website": "5.4.0"
|
||||
},
|
||||
"changesets": [
|
||||
"afraid-mice-obey",
|
||||
"big-lobsters-sin",
|
||||
"bright-poems-obey",
|
||||
"brown-cycles-laugh",
|
||||
"brown-pandas-wink",
|
||||
"calm-pants-impress",
|
||||
"dry-planes-tap",
|
||||
"dull-monkeys-search",
|
||||
"eleven-brooms-hunt",
|
||||
"eleven-spoons-matter",
|
||||
"fair-lemons-beam",
|
||||
"few-cooks-destroy",
|
||||
"few-mangos-grow",
|
||||
"fifty-jars-rest",
|
||||
"fuzzy-drinks-taste",
|
||||
"fuzzy-onions-draw",
|
||||
"gentle-parrots-lay",
|
||||
"gentle-trains-switch",
|
||||
@@ -62,13 +70,19 @@
|
||||
"healthy-poets-compare",
|
||||
"heavy-ravens-lay",
|
||||
"hip-hounds-destroy",
|
||||
"kind-bears-nail",
|
||||
"late-adults-love",
|
||||
"late-parents-act",
|
||||
"light-walls-begin",
|
||||
"little-stingrays-rule",
|
||||
"loud-shoes-jog",
|
||||
"lovely-drinks-argue",
|
||||
"many-vans-care",
|
||||
"modern-spies-tell",
|
||||
"neat-toes-report",
|
||||
"neat-toys-float",
|
||||
"olive-candles-speak",
|
||||
"orange-flowers-cover",
|
||||
"perfect-candles-clap",
|
||||
"perfect-emus-clean",
|
||||
"perfect-kangaroos-agree",
|
||||
@@ -77,13 +91,27 @@
|
||||
"plenty-tables-refuse",
|
||||
"pretty-hounds-tap",
|
||||
"proud-jeans-walk",
|
||||
"proud-jobs-hope",
|
||||
"red-chefs-float",
|
||||
"red-yaks-sell",
|
||||
"rich-ghosts-rule",
|
||||
"shaggy-carrots-unite",
|
||||
"shaggy-parrots-smash",
|
||||
"shiny-chefs-heal",
|
||||
"slow-carrots-relate",
|
||||
"smart-apricots-kneel",
|
||||
"smart-beds-cross",
|
||||
"sour-buses-shout",
|
||||
"spicy-frogs-press",
|
||||
"spicy-snakes-sip",
|
||||
"swift-pumpkins-knock",
|
||||
"ten-parents-breathe",
|
||||
"tender-bags-call",
|
||||
"thick-countries-move",
|
||||
"thick-readers-hang",
|
||||
"three-moles-drop",
|
||||
"three-pots-sit",
|
||||
"tiny-seals-join",
|
||||
"two-dolls-check",
|
||||
"wild-jokes-beam"
|
||||
]
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
'@verdaccio/logger': patch
|
||||
'@verdaccio/logger-prettify': patch
|
||||
'@verdaccio/middleware': patch
|
||||
'@verdaccio/mock': patch
|
||||
'@verdaccio/node-api': patch
|
||||
'@verdaccio/proxy': patch
|
||||
'@verdaccio/server': patch
|
||||
|
||||
45
.changeset/proud-jobs-hope.md
Normal file
45
.changeset/proud-jobs-hope.md
Normal file
@@ -0,0 +1,45 @@
|
||||
---
|
||||
'@verdaccio/api': major
|
||||
'@verdaccio/cli': major
|
||||
'@verdaccio/config': major
|
||||
'@verdaccio/core': major
|
||||
'@verdaccio/types': major
|
||||
'@verdaccio/logger': major
|
||||
'@verdaccio/node-api': major
|
||||
'verdaccio-aws-s3-storage': major
|
||||
'verdaccio-google-cloud': major
|
||||
'verdaccio-htpasswd': major
|
||||
'@verdaccio/local-storage': major
|
||||
'verdaccio-memory': major
|
||||
'@verdaccio/ui-theme': major
|
||||
'@verdaccio/proxy': major
|
||||
'@verdaccio/server': major
|
||||
'@verdaccio/mock': major
|
||||
'verdaccio': major
|
||||
'@verdaccio/web': major
|
||||
'@verdaccio/e2e-cli': major
|
||||
'@verdaccio/website': major
|
||||
---
|
||||
|
||||
feat!: config.logs throw an error, logging config not longer accept array or logs property
|
||||
|
||||
### 💥 Breaking change
|
||||
|
||||
This is valid
|
||||
|
||||
```yaml
|
||||
log: { type: stdout, format: pretty, level: http }
|
||||
```
|
||||
|
||||
This is invalid
|
||||
|
||||
```yaml
|
||||
logs: { type: stdout, format: pretty, level: http }
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```yaml
|
||||
logs:
|
||||
- [{ type: stdout, format: pretty, level: http }]
|
||||
```
|
||||
5
.changeset/red-yaks-sell.md
Normal file
5
.changeset/red-yaks-sell.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@verdaccio/logger': patch
|
||||
---
|
||||
|
||||
Fix re-opening log files using SIGUSR2
|
||||
10
.changeset/rich-ghosts-rule.md
Normal file
10
.changeset/rich-ghosts-rule.md
Normal file
@@ -0,0 +1,10 @@
|
||||
---
|
||||
'@verdaccio/types': major
|
||||
'@verdaccio/ui-theme': major
|
||||
'@verdaccio/dev-types': major
|
||||
'@verdaccio/web': major
|
||||
'@verdaccio/e2e-ui': major
|
||||
'@verdaccio/website': major
|
||||
---
|
||||
|
||||
feat: upgrade to material ui 5
|
||||
8
.changeset/shaggy-parrots-smash.md
Normal file
8
.changeset/shaggy-parrots-smash.md
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
'@verdaccio/cli': minor
|
||||
'@verdaccio/core': minor
|
||||
'@verdaccio/logger': minor
|
||||
'@verdaccio/node-api': minor
|
||||
---
|
||||
|
||||
feat: use warning codes for deprecation warnings
|
||||
6
.changeset/slow-carrots-relate.md
Normal file
6
.changeset/slow-carrots-relate.md
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@verdaccio/config': minor
|
||||
'@verdaccio/web': minor
|
||||
---
|
||||
|
||||
feat(web): add a config item to web,let the developer can select whet……her enable the html cache
|
||||
20
.changeset/smart-beds-cross.md
Normal file
20
.changeset/smart-beds-cross.md
Normal file
@@ -0,0 +1,20 @@
|
||||
---
|
||||
'@verdaccio/api': minor
|
||||
'@verdaccio/config': minor
|
||||
'@verdaccio/core': minor
|
||||
'@verdaccio/types': minor
|
||||
'@verdaccio/local-storage': minor
|
||||
'@verdaccio/ui-theme': minor
|
||||
'@verdaccio/proxy': minor
|
||||
'@verdaccio/server': minor
|
||||
'@verdaccio/store': minor
|
||||
'@verdaccio/test-helper': minor
|
||||
'@verdaccio/web': minor
|
||||
---
|
||||
|
||||
feat: ui search support for remote, local and private packages
|
||||
|
||||
The command `npm search` search globally and return all matches, with this improvement the user interface
|
||||
is powered with the same capabilities.
|
||||
|
||||
The UI also tag where is the origin the package with a tag, also provide the latest version and description of the package.
|
||||
11
.changeset/sour-buses-shout.md
Normal file
11
.changeset/sour-buses-shout.md
Normal file
@@ -0,0 +1,11 @@
|
||||
---
|
||||
'@verdaccio/fastify-migration': minor
|
||||
'@verdaccio/store': minor
|
||||
'@verdaccio/utils': minor
|
||||
'@verdaccio/web': minor
|
||||
'@verdaccio/website': minor
|
||||
---
|
||||
|
||||
feat: migrate web sidebar endpoint to fastify
|
||||
|
||||
reuse utils methods between packages
|
||||
5
.changeset/spicy-snakes-sip.md
Normal file
5
.changeset/spicy-snakes-sip.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@verdaccio/ui-theme': patch
|
||||
---
|
||||
|
||||
fix: specific version package detail page not showing
|
||||
6
.changeset/swift-pumpkins-knock.md
Normal file
6
.changeset/swift-pumpkins-knock.md
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@verdaccio/auth': patch
|
||||
'verdaccio-htpasswd': patch
|
||||
---
|
||||
|
||||
Refactor htpasswd plugin to use the bcryptjs 'compare' api call instead of 'comparSync'. Add a new configuration value named 'slow_verify_ms' to the htpasswd plugin that when exceeded during password verification will log a warning message.
|
||||
7
.changeset/ten-parents-breathe.md
Normal file
7
.changeset/ten-parents-breathe.md
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
'@verdaccio/auth': minor
|
||||
'@verdaccio/fastify-migration': minor
|
||||
'@verdaccio/web': minor
|
||||
---
|
||||
|
||||
dist tags Implementation on Fastify
|
||||
6
.changeset/thick-countries-move.md
Normal file
6
.changeset/thick-countries-move.md
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@verdaccio/logger': major
|
||||
'@verdaccio/logger-prettify': major
|
||||
---
|
||||
|
||||
feat: upgrade to pino v7
|
||||
5
.changeset/thick-readers-hang.md
Normal file
5
.changeset/thick-readers-hang.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@verdaccio/ui-theme': patch
|
||||
---
|
||||
|
||||
fix: fixes some style issues on mobile, particularly related to the Ukraine support message - [@s-h-a-d-o-w](https://github.com/s-h-a-d-o-w)
|
||||
7
.changeset/three-moles-drop.md
Normal file
7
.changeset/three-moles-drop.md
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
'@verdaccio/api': minor
|
||||
'@verdaccio/store': minor
|
||||
'@verdaccio/utils': minor
|
||||
---
|
||||
|
||||
refactor: improve versions and dist-tag filters
|
||||
5
.changeset/tiny-seals-join.md
Normal file
5
.changeset/tiny-seals-join.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@verdaccio/ui-theme': minor
|
||||
---
|
||||
|
||||
feat: improve registry info dialog and language switch
|
||||
52
.github/workflows/benchmark.yml
vendored
52
.github/workflows/benchmark.yml
vendored
@@ -4,9 +4,9 @@ name: ci - benchmark
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
# 3 times day
|
||||
# 1 time peer week
|
||||
# collecting enough data to draw some graphics
|
||||
- cron: '0 1 * * *'
|
||||
- cron: '0 1 * * 1'
|
||||
# push:
|
||||
# branches:
|
||||
# - master
|
||||
@@ -15,12 +15,12 @@ jobs:
|
||||
name: Prepare build
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-node@v2
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 14.x
|
||||
node-version: 16.x
|
||||
- name: install pnpm
|
||||
run: sudo npm i pnpm@6.6.1 -g
|
||||
run: sudo npm i pnpm@6.24.1 -g
|
||||
- name: set store
|
||||
run: |
|
||||
mkdir ~/.pnpm-store
|
||||
@@ -30,7 +30,7 @@ jobs:
|
||||
- name: install dependencies
|
||||
run: pnpm install
|
||||
- name: Cache .pnpm-store
|
||||
uses: actions/cache@v2
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: ~/.pnpm-store
|
||||
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
|
||||
@@ -41,7 +41,7 @@ jobs:
|
||||
- name: tar packages
|
||||
run: |
|
||||
tar -czvf ${{ github.workspace }}/pkg.tar.gz -C ${{ github.workspace }}/packages .
|
||||
- uses: actions/upload-artifact@v2
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: verdaccio-artifact
|
||||
path: pkg.tar.gz
|
||||
@@ -57,24 +57,24 @@ jobs:
|
||||
# - local
|
||||
- 3.13.1
|
||||
- 4.12.2
|
||||
- 5.1.3
|
||||
- 6.0.0-6-next.24
|
||||
- 5.7.0
|
||||
- 6.0.0-6-next.35
|
||||
name: Benchmark autocannon
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-node@v2
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 14.x
|
||||
- uses: actions/download-artifact@v2
|
||||
node-version: 16.x
|
||||
- uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: verdaccio-artifact
|
||||
- name: untar packages
|
||||
run: tar -xzvf pkg.tar.gz -C ${{ github.workspace }}/packages
|
||||
- name: install pnpm
|
||||
# require fixed version
|
||||
run: sudo npm i pnpm@6.6.1 -g
|
||||
- uses: actions/cache@v2
|
||||
run: sudo npm i pnpm@6.24.1 -g
|
||||
- uses: actions/cache@v3
|
||||
with:
|
||||
path: ~/.pnpm-store
|
||||
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
|
||||
@@ -87,7 +87,7 @@ jobs:
|
||||
shell: bash
|
||||
env:
|
||||
DEBUG: metrics*
|
||||
- uses: actions/upload-artifact@v2
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: verdaccio-metrics-api
|
||||
path: ./api-results-${{matrix.verdaccioVersion}}-${{matrix.benchmark}}.json
|
||||
@@ -118,24 +118,24 @@ jobs:
|
||||
# old versions to compare same test along previous releases
|
||||
- 3.13.1
|
||||
- 4.12.2
|
||||
- 5.1.3
|
||||
- 6.0.0-6-next.24
|
||||
- 5.7.0
|
||||
- 6.0.0-6-next.35
|
||||
name: Benchmark hyperfine
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-node@v2
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 14.x
|
||||
- uses: actions/download-artifact@v2
|
||||
node-version: 16.x
|
||||
- uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: verdaccio-artifact
|
||||
- name: untar packages
|
||||
run: tar -xzvf pkg.tar.gz -C ${{ github.workspace }}/packages
|
||||
- name: install pnpm
|
||||
# require fixed version
|
||||
run: sudo npm i pnpm@6.6.1 -g
|
||||
- uses: actions/cache@v2
|
||||
run: sudo npm i pnpm@6.24.1 -g
|
||||
- uses: actions/cache@v3
|
||||
with:
|
||||
path: ~/.pnpm-store
|
||||
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
|
||||
@@ -153,7 +153,7 @@ jobs:
|
||||
shell: bash
|
||||
- name: rename
|
||||
run: mv ./hyper-results.json ./hyper-results-${{matrix.verdaccioVersion}}-${{matrix.benchmark}}.json
|
||||
- uses: actions/upload-artifact@v2
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: verdaccio-metrics
|
||||
path: ./hyper-results-${{matrix.verdaccioVersion}}-${{matrix.benchmark}}.json
|
||||
|
||||
4
.github/workflows/changesets.yml
vendored
4
.github/workflows/changesets.yml
vendored
@@ -20,12 +20,12 @@ jobs:
|
||||
if: github.ref == 'refs/heads/master' && github.repository == 'verdaccio/verdaccio'
|
||||
steps:
|
||||
- name: checkout code repository
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: setup node.js
|
||||
uses: actions/setup-node@v2
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 14
|
||||
registry-url: 'https://registry.npmjs.org'
|
||||
|
||||
246
.github/workflows/ci.yml
vendored
246
.github/workflows/ci.yml
vendored
@@ -10,6 +10,7 @@ on:
|
||||
- .changeset/**
|
||||
- .github/workflows/ci.yml
|
||||
- 'packages/**'
|
||||
- 'docker-examples/**'
|
||||
- 'jest/**'
|
||||
- 'package.json'
|
||||
- 'pnpm-workspace.yaml'
|
||||
@@ -19,25 +20,25 @@ jobs:
|
||||
name: setup verdaccio
|
||||
services:
|
||||
verdaccio:
|
||||
image: verdaccio/verdaccio:5
|
||||
image: verdaccio/verdaccio:nightly-master
|
||||
ports:
|
||||
- 4873:4873
|
||||
steps:
|
||||
- uses: actions/checkout@v2.3.1
|
||||
- name: Use Node 14
|
||||
uses: actions/setup-node@v1
|
||||
- uses: actions/checkout@v3
|
||||
- name: Use Node 16
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 14
|
||||
node-version: 16
|
||||
- name: Install pnpm
|
||||
run: npm i pnpm@6.10.3 -g
|
||||
run: npm i pnpm@6.32.3 -g
|
||||
- name: set store
|
||||
run: |
|
||||
run: |
|
||||
mkdir ~/.pnpm-store
|
||||
pnpm config set store-dir ~/.pnpm-store
|
||||
- name: Install
|
||||
run: pnpm recursive install --frozen-lockfile --registry http://localhost:4873
|
||||
- name: Cache .pnpm-store
|
||||
uses: actions/cache@v2
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: ~/.pnpm-store
|
||||
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
|
||||
@@ -48,17 +49,17 @@ jobs:
|
||||
name: Lint
|
||||
needs: prepare
|
||||
steps:
|
||||
- uses: actions/checkout@v2.3.1
|
||||
- uses: actions/checkout@v3
|
||||
- name: Use Node 16
|
||||
uses: actions/setup-node@v1
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 16
|
||||
- name: Install pnpm
|
||||
run: npm i pnpm@6.10.3 -g
|
||||
- uses: actions/cache@v2
|
||||
run: npm i pnpm@6.32.3 -g
|
||||
- uses: actions/cache@v3
|
||||
with:
|
||||
path: ~/.pnpm-store
|
||||
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
|
||||
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
|
||||
- name: Install
|
||||
run: pnpm recursive install --frozen-lockfile --ignore-scripts
|
||||
- name: Lint
|
||||
@@ -68,195 +69,126 @@ jobs:
|
||||
name: Format
|
||||
needs: prepare
|
||||
steps:
|
||||
- uses: actions/checkout@v2.3.1
|
||||
- uses: actions/checkout@v3
|
||||
- name: Use Node 16
|
||||
uses: actions/setup-node@v1
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 16
|
||||
- name: Install pnpm
|
||||
run: npm i pnpm@6.10.3 -g
|
||||
- uses: actions/cache@v2
|
||||
run: npm i pnpm@6.32.3 -g
|
||||
- uses: actions/cache@v3
|
||||
with:
|
||||
path: ~/.pnpm-store
|
||||
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
|
||||
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
|
||||
- name: Install
|
||||
run: pnpm recursive install --frozen-lockfile --ignore-scripts
|
||||
- name: Lint
|
||||
run: pnpm format:check
|
||||
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
name: build
|
||||
needs: [format, lint]
|
||||
steps:
|
||||
- uses: actions/checkout@v2.3.1
|
||||
- name: Use Node 16
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 16
|
||||
- name: Install pnpm
|
||||
run: npm i pnpm@6.10.3 -g
|
||||
- uses: actions/cache@v2
|
||||
with:
|
||||
path: ~/.pnpm-store
|
||||
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
|
||||
- name: Install
|
||||
run: pnpm recursive install --frozen-lockfile --ignore-scripts
|
||||
- name: crowdin download
|
||||
env:
|
||||
CROWDIN_VERDACCIO_PROJECT_ID: ${{ secrets.CROWDIN_VERDACCIO_PROJECT_ID }}
|
||||
CROWDIN_VERDACCIO_API_KEY: ${{ secrets.CROWDIN_VERDACCIO_API_KEY }}
|
||||
CONTEXT: production
|
||||
run: pnpm crowdin:download
|
||||
## this step is optional, translations are not mandatory for PR
|
||||
## secrets keys are not available on forks, the failure here is guaranteed
|
||||
continue-on-error: true
|
||||
- name: build
|
||||
run: pnpm build
|
||||
- name: tar packages
|
||||
run: |
|
||||
tar -czvf ${{ github.workspace }}/pkg.tar.gz -C ${{ github.workspace }}/packages .
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: verdaccio-artifact
|
||||
path: pkg.tar.gz
|
||||
test:
|
||||
needs: build
|
||||
strategy:
|
||||
fail-fast: true
|
||||
matrix:
|
||||
os: [ubuntu-latest]
|
||||
os: [ubuntu-latest, windows-latest]
|
||||
## Node 16 breaks UI test, jest issue
|
||||
node_version: [14]
|
||||
node_version: [16, 17]
|
||||
name: ${{ matrix.os }} / Node ${{ matrix.node_version }}
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2.3.1
|
||||
- uses: actions/checkout@v3
|
||||
- name: Use Node ${{ matrix.node_version }}
|
||||
uses: actions/setup-node@v1
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: ${{ matrix.node_version }}
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: verdaccio-artifact
|
||||
- name: untar packages
|
||||
run: tar -xzvf pkg.tar.gz -C ${{ github.workspace }}/packages
|
||||
- name: Install pnpm
|
||||
run: npm i pnpm@6.10.3 -g
|
||||
- uses: actions/cache@v2
|
||||
run: npm i pnpm@6.32.3 -g
|
||||
- uses: actions/cache@v3
|
||||
with:
|
||||
path: ~/.pnpm-store
|
||||
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
|
||||
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
|
||||
- name: Install
|
||||
run: pnpm recursive install --frozen-lockfile --ignore-scripts
|
||||
- name: Test
|
||||
run: pnpm test
|
||||
ci-e2e-ui:
|
||||
needs: build
|
||||
runs-on: ubuntu-latest
|
||||
name: UI Test E2E Node 14
|
||||
steps:
|
||||
- uses: actions/checkout@v2.3.1
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 14
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: verdaccio-artifact
|
||||
- name: untar packages
|
||||
run: tar -xzvf pkg.tar.gz -C ${{ github.workspace }}/packages
|
||||
- name: Install pnpm
|
||||
run: npm i pnpm@6.10.3 -g
|
||||
- uses: actions/cache@v2
|
||||
with:
|
||||
path: ~/.pnpm-store
|
||||
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
|
||||
- name: Install
|
||||
## we need scripts, pupetter downloads aditional content
|
||||
run: pnpm recursive install --frozen-lockfile
|
||||
- name: Test UI
|
||||
run: pnpm test:e2e:ui
|
||||
# env:
|
||||
# DEBUG: verdaccio:e2e*
|
||||
ci-e2e-cli:
|
||||
needs: build
|
||||
runs-on: ubuntu-latest
|
||||
name: CLI Test E2E Node 14
|
||||
steps:
|
||||
- uses: actions/checkout@v2.3.1
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 14
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: verdaccio-artifact
|
||||
- name: untar packages
|
||||
run: tar -xzvf pkg.tar.gz -C ${{ github.workspace }}/packages
|
||||
- name: Install pnpm
|
||||
run: npm i pnpm@6.10.3 -g
|
||||
- uses: actions/cache@v2
|
||||
with:
|
||||
path: ~/.pnpm-store
|
||||
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
|
||||
- name: Install
|
||||
## we need scripts, pupetter downloads aditional content
|
||||
run: pnpm recursive install --frozen-lockfile
|
||||
- name: Test CLI
|
||||
run: pnpm test:e2e:cli
|
||||
# env:
|
||||
# DEBUG: verdaccio*
|
||||
test-windows:
|
||||
needs: [format, lint]
|
||||
runs-on: windows-latest
|
||||
name: windows test node 14
|
||||
steps:
|
||||
- uses: actions/checkout@v2.3.1
|
||||
- name: Use Node 14
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 14
|
||||
- name: Install pnpm
|
||||
run: npm i pnpm@6.10.3 -g
|
||||
# pnpm cache is not working for windows (we need a solution)
|
||||
- uses: actions/cache@v2
|
||||
with:
|
||||
path: ~/.pnpm-store
|
||||
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
|
||||
- name: Install
|
||||
run: pnpm recursive install --frozen-lockfile --ignore-scripts
|
||||
run: pnpm recursive install --frozen-lockfile --ignore-scripts
|
||||
- name: build
|
||||
run: pnpm build
|
||||
- name: Test
|
||||
run: pnpm test
|
||||
ci-e2e-ui:
|
||||
needs: [format, lint]
|
||||
runs-on: ubuntu-latest
|
||||
name: UI Test E2E Node 16
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 16
|
||||
- name: Install pnpm
|
||||
run: npm i pnpm@latest -g
|
||||
- uses: actions/cache@v3
|
||||
with:
|
||||
path: ~/.pnpm-store
|
||||
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
|
||||
- name: Install
|
||||
## we need scripts, pupetter downloads aditional content
|
||||
run: pnpm recursive install --frozen-lockfile
|
||||
- name: build
|
||||
run: pnpm build
|
||||
- name: Test UI
|
||||
run: pnpm test:e2e:ui
|
||||
# env:
|
||||
# DEBUG: verdaccio:e2e*
|
||||
# FIXME verify why fails on Node 16 (locally works fine)
|
||||
# ci-e2e-cli:
|
||||
# needs: [format, lint]
|
||||
# runs-on: ubuntu-latest
|
||||
# # TODO: fails on migrate to node 16, we need to check why
|
||||
# name: CLI Test E2E Node 16
|
||||
# steps:
|
||||
# - uses: actions/checkout@v3
|
||||
# - uses: actions/setup-node@v3
|
||||
# with:
|
||||
# node-version: 16
|
||||
# - name: Install pnpm
|
||||
# run: npm i pnpm@latest -g
|
||||
# - uses: actions/cache@v3
|
||||
# with:
|
||||
# path: ~/.pnpm-store
|
||||
# key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
|
||||
# - name: Install
|
||||
# ## we need scripts, pupetter downloads aditional content
|
||||
# run: pnpm recursive install --frozen-lockfile
|
||||
# - name: build
|
||||
# run: pnpm build
|
||||
# - name: Test CLI
|
||||
# run: pnpm test:e2e:cli
|
||||
# env:
|
||||
# DEBUG: verdaccio*
|
||||
sync-translations:
|
||||
needs: [ci-e2e-cli, ci-e2e-ui, test-windows, test]
|
||||
# needs: [ci-e2e-cli, ci-e2e-ui]
|
||||
needs: [ci-e2e-ui]
|
||||
runs-on: ubuntu-latest
|
||||
name: synchronize translations
|
||||
if: (github.event_name == 'push' && github.ref == 'refs/heads/master') || github.event_name == 'workflow_dispatch'
|
||||
steps:
|
||||
- uses: actions/checkout@v2.3.1
|
||||
- uses: actions/setup-node@v1
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 14
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: verdaccio-artifact
|
||||
- name: untar packages
|
||||
run: tar -xzvf pkg.tar.gz -C ${{ github.workspace }}/packages
|
||||
node-version: 16
|
||||
- name: Install pnpm
|
||||
run: npm i pnpm@6.10.3 -g
|
||||
- uses: actions/cache@v2
|
||||
run: npm i pnpm@6.32.3 -g
|
||||
- uses: actions/cache@v3
|
||||
with:
|
||||
path: ~/.pnpm-store
|
||||
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
|
||||
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}
|
||||
- name: Install
|
||||
## we need scripts, pupetter downloads aditional content
|
||||
run: pnpm recursive install --frozen-lockfile
|
||||
- name: build
|
||||
run: pnpm build
|
||||
- name: generate website translations
|
||||
run: pnpm write-translations --filter ...@verdaccio/website
|
||||
run: pnpm write-translations --filter ...@verdaccio/website
|
||||
- name: sync
|
||||
env:
|
||||
CROWDIN_VERDACCIO_PROJECT_ID: ${{ secrets.CROWDIN_VERDACCIO_PROJECT_ID }}
|
||||
CROWDIN_VERDACCIO_API_KEY: ${{ secrets.CROWDIN_VERDACCIO_API_KEY }}
|
||||
CONTEXT: production
|
||||
run: pnpm crowdin:sync
|
||||
run: pnpm crowdin:sync
|
||||
|
||||
2
.github/workflows/codeql-analysis.yml
vendored
2
.github/workflows/codeql-analysis.yml
vendored
@@ -14,7 +14,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2.3.1
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
# We must fetch at least the immediate parents so that if this is
|
||||
# a pull request then we can checkout the head.
|
||||
|
||||
48
.github/workflows/contributors.yml
vendored
Normal file
48
.github/workflows/contributors.yml
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
---
|
||||
name: contributors
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
# twice peer week
|
||||
- cron: '0 0 * * 1,4'
|
||||
# for now, scheduled, we can enable on push master but not make much sense now
|
||||
# push:
|
||||
# branches:
|
||||
# - master
|
||||
jobs:
|
||||
prepare:
|
||||
name: Run script
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
persist-credentials: false
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 17.x
|
||||
- name: install pnpm
|
||||
run: sudo npm i pnpm@6.24.1 -g
|
||||
- name: set store
|
||||
run: |
|
||||
mkdir ~/.pnpm-store
|
||||
pnpm config set store-dir ~/.pnpm-store
|
||||
- name: setup pnpm config registry
|
||||
run: pnpm config set registry https://registry.verdaccio.org
|
||||
- name: install dependencies
|
||||
run: pnpm install
|
||||
- name: update contributors
|
||||
run: pnpm run contributors
|
||||
env:
|
||||
TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: format
|
||||
run: pnpm format
|
||||
- name: Commit & Push changes
|
||||
uses: actions-js/push@v1.3
|
||||
with:
|
||||
github_token: ${{ secrets.TOKEN_VERDACCIOBOT_GITHUB }}
|
||||
message: "chore: updated contributors list"
|
||||
branch: master
|
||||
author_email: verdaccio.npm@gmail.com
|
||||
author_name: verdacciobot
|
||||
2
.github/workflows/docker-publish.yml
vendored
2
.github/workflows/docker-publish.yml
vendored
@@ -19,7 +19,7 @@ jobs:
|
||||
docker:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
- uses: docker/setup-qemu-action@v1
|
||||
- uses: docker/setup-buildx-action@v1
|
||||
with:
|
||||
|
||||
30
.github/workflows/website.yml
vendored
30
.github/workflows/website.yml
vendored
@@ -24,15 +24,15 @@ jobs:
|
||||
env:
|
||||
NODE_OPTIONS: --max_old_space_size=4096
|
||||
steps:
|
||||
- uses: actions/checkout@v2.3.1
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Use Node 14
|
||||
uses: actions/setup-node@v2
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 14
|
||||
|
||||
- name: Cache pnpm modules
|
||||
uses: actions/cache@v2
|
||||
uses: actions/cache@v3
|
||||
env:
|
||||
cache-name: cache-pnpm-modules
|
||||
with:
|
||||
@@ -41,20 +41,16 @@ jobs:
|
||||
restore-keys: |
|
||||
${{ runner.os }}-build-${{ env.cache-name }}-${{ matrix.node-version }}-
|
||||
|
||||
- uses: pnpm/action-setup@v2.0.1
|
||||
- uses: pnpm/action-setup@v2.2.1
|
||||
with:
|
||||
version: 6.10.2
|
||||
run_install: |
|
||||
- recursive: true
|
||||
args: [--frozen-lockfile]
|
||||
|
||||
- name: Lint And Pretty
|
||||
run: |
|
||||
pnpm eslint:check --filter ...@verdaccio/website
|
||||
pnpm prettier:check --filter ...@verdaccio/website
|
||||
|
||||
- name: Build Plugins
|
||||
run: pnpm build --filter "docusaurus-plugin-contributors"
|
||||
- name: Cache Docusaurus Build
|
||||
uses: actions/cache@v2
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: website/node_modules/.cache/webpack
|
||||
key: cache/webpack-${{github.ref}}-${{ hashFiles('**/pnpm-lock.yaml') }}
|
||||
@@ -82,13 +78,11 @@ jobs:
|
||||
|
||||
# Will deploy to Preview URL, only when a pull request is open with changes on the website
|
||||
- name: Build Deployment Preview
|
||||
if: github.event_name == 'pull_request' && github.ref != 'refs/heads/master' && github.event.label.name == 'trigger-preview'
|
||||
env:
|
||||
CONTEXT: deploy-preview
|
||||
run: pnpm netlify:build:deployPreview --filter ...@verdaccio/website
|
||||
|
||||
- name: 🤖 Deploy Preview Netlify
|
||||
if: github.event_name == 'pull_request' && github.ref != 'refs/heads/master' && github.event.label.name == 'trigger-preview'
|
||||
uses: semoal/action-netlify-deploy@master
|
||||
id: netlify_preview
|
||||
with:
|
||||
@@ -102,9 +96,8 @@ jobs:
|
||||
build-dir: './website/build'
|
||||
|
||||
- name: Audit preview URL with Lighthouse
|
||||
if: github.event_name == 'pull_request' && github.ref != 'refs/heads/master' && github.event.label.name == 'trigger-preview'
|
||||
id: lighthouse_audit
|
||||
uses: treosh/lighthouse-ci-action@v3
|
||||
uses: treosh/lighthouse-ci-action@9.3.0
|
||||
with:
|
||||
urls: |
|
||||
${{ steps.netlify_preview.outputs.preview-url }}
|
||||
@@ -112,9 +105,8 @@ jobs:
|
||||
temporaryPublicStorage: true
|
||||
|
||||
- name: Format lighthouse score
|
||||
if: github.event_name == 'pull_request' && github.ref != 'refs/heads/master' && github.event.label.name == 'trigger-preview'
|
||||
id: format_lighthouse_score
|
||||
uses: actions/github-script@v3
|
||||
uses: actions/github-script@v6
|
||||
with:
|
||||
github-token: ${{secrets.GITHUB_TOKEN}}
|
||||
script: |
|
||||
@@ -137,12 +129,12 @@ jobs:
|
||||
core.setOutput("comment", comment);
|
||||
|
||||
- name: Add comment to PR
|
||||
if: github.event_name == 'pull_request' && github.ref != 'refs/heads/master' && github.event.label.name == 'trigger-preview'
|
||||
id: comment_to_pr
|
||||
uses: marocchino/sticky-pull-request-comment@v1
|
||||
uses: marocchino/sticky-pull-request-comment@v2
|
||||
with:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
number: ${{ github.event.issue.number }}
|
||||
delete: true
|
||||
header: lighthouse
|
||||
message: |
|
||||
${{ steps.format_lighthouse_score.outputs.comment }}
|
||||
|
||||
@@ -19,8 +19,8 @@ node_modules/
|
||||
packages/core/local-storage/_storage/**
|
||||
packages/partials/storage_default_storage/
|
||||
packages/standalone/dist/bundle.js
|
||||
packages/verdaccio/dist/bundle.js
|
||||
docker-examples/v5/reverse_proxy/nginx/relative_path/storage/*
|
||||
docker-examples/
|
||||
build/
|
||||
.vscode/
|
||||
.github/
|
||||
|
||||
11
.prettierrc
11
.prettierrc
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"endOfLine": "lf",
|
||||
"useTabs": false,
|
||||
"printWidth": 100,
|
||||
"tabWidth": 2,
|
||||
"singleQuote": true,
|
||||
"bracketSpacing": true,
|
||||
"jsxBracketSameLine": true,
|
||||
"trailingComma": "es5",
|
||||
"semi": true
|
||||
}
|
||||
@@ -129,9 +129,21 @@ More details in the debug section
|
||||
|
||||
### Running and debugging
|
||||
|
||||
> Check the debugging guidelines [here](https://github.com/verdaccio/verdaccio/wiki/Debugging-Verdaccio)
|
||||
|
||||
We use [`debug`](https://www.npmjs.com/package/debug) to add helpful debugging
|
||||
output to the code. Each package has it owns namespace.
|
||||
|
||||
#### Useful Scripts
|
||||
|
||||
To run the application from the source code, ensure the project has been built with `pnpm build`, once this is done, there are few commands that helps to run server:
|
||||
|
||||
- `pnpm start`: Runs server on port `8000` and UI on port `4873`. This is particularly useful if you want to contribute to the UI, since it runs with hot reload.
|
||||
- `pnpm debug`: Run the server in debug mode `--inspect`. UI runs too but without hot reload. For automatic break use `pnpm debug:break`.
|
||||
- `pnpm debug:fastify`: To contribute on the [fastify migration](https://github.com/verdaccio/verdaccio/discussions/2155) this is a temporary command for such purpose.
|
||||
- `pnpm website`: Build the website, for more commands to run the _website_, run `cd website` and then `pnpm serve`, website will run on port `3000`.
|
||||
- `pnpm docker`: Build the docker image. Requires `docker` command available in your system.
|
||||
|
||||
#### Debugging compiled code
|
||||
|
||||
Currently you can only run pre-compiled packages in debug mode. To enable debug
|
||||
@@ -319,8 +331,8 @@ We use [changesets](https://github.com/atlassian/changesets) in order to
|
||||
generate a detailed Changelog as possible.
|
||||
|
||||
Adding a changeset with your Pull Request is essential if you want your
|
||||
contribution to get merged (unless is a change that does not affect library
|
||||
functionality, eg: typo, docs, readme, add additional test or linting code). To
|
||||
contribution to get merged (unless it does not affect functionality or
|
||||
user-facing content, eg: docs, readme, adding test or typo/lint fixes). To
|
||||
create a changeset please run:
|
||||
|
||||
```
|
||||
|
||||
13
Dockerfile
13
Dockerfile
@@ -1,25 +1,26 @@
|
||||
FROM --platform=${BUILDPLATFORM:-linux/amd64} node:14.18.1-alpine as builder
|
||||
FROM --platform=${BUILDPLATFORM:-linux/amd64} node:16.14.2-alpine as builder
|
||||
|
||||
ENV NODE_ENV=development \
|
||||
VERDACCIO_BUILD_REGISTRY=https://registry.verdaccio.org
|
||||
|
||||
RUN apk --no-cache add openssl ca-certificates wget && \
|
||||
apk --no-cache add g++ gcc libgcc libstdc++ linux-headers make python && \
|
||||
apk --no-cache add g++ gcc libgcc libstdc++ linux-headers make python2 && \
|
||||
wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub && \
|
||||
wget -q https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.25-r0/glibc-2.25-r0.apk && \
|
||||
apk add glibc-2.25-r0.apk
|
||||
|
||||
WORKDIR /opt/verdaccio-build
|
||||
COPY . .
|
||||
|
||||
RUN npm -g i pnpm@6.10.3 && \
|
||||
RUN npm -g i pnpm@6.24.1 && \
|
||||
pnpm config set registry $VERDACCIO_BUILD_REGISTRY && \
|
||||
pnpm recursive install --frozen-lockfile --ignore-scripts && \
|
||||
pnpm run build
|
||||
rm -Rf test && \
|
||||
pnpm run build && \
|
||||
pnpm install -P
|
||||
# FIXME: need to remove devDependencies from the build
|
||||
# RUN pnpm install --prod --ignore-scripts
|
||||
|
||||
FROM node:14.18.1-alpine
|
||||
FROM node:16.14.2-alpine
|
||||
LABEL maintainer="https://github.com/verdaccio/verdaccio"
|
||||
|
||||
ENV VERDACCIO_APPDIR=/opt/verdaccio \
|
||||
|
||||
34
README.md
34
README.md
@@ -1,10 +1,14 @@
|
||||
[](https://donate.redcrossredcrescent.org/ua/donate/~my-donation?_cv=1)
|
||||
|
||||
> Verdaccio stands for **peace**, stop the war, we will be yellow / blue 🇺🇦 until that happens.
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
# Version 6 (Development branch)
|
||||
|
||||
> Looking for Verdaccio 5? Check branch `5.x`.
|
||||
> Looking for Verdaccio 5? Check branch `5.x`
|
||||
|
||||
[Verdaccio](https://verdaccio.org/) is a simple, **zero-config-required local private npm registry**.
|
||||
No need for an entire database just to get started! Verdaccio comes out of the box with
|
||||
@@ -26,10 +30,11 @@ Google Cloud Storage** or create your own plugin.
|
||||
|
||||
[](https://twitter.com/verdaccio_npm)
|
||||
[](https://github.com/verdaccio/verdaccio/stargazers)
|
||||
[](https://github.com/vshymanskyy/StandWithUkraine/blob/main/docs/README.md)
|
||||
|
||||
## Install
|
||||
|
||||
> Latest Node.js v14
|
||||
> Latest Node.js v16 required
|
||||
|
||||
Install with npm:
|
||||
|
||||
@@ -45,7 +50,7 @@ docker pull verdaccio/verdaccio:nightly-master
|
||||
|
||||
## Donations
|
||||
|
||||
Verdaccio is run by **volunteers**; nobody is working full-time on it. If you find this project to be useful and would like to support its development, consider making a donation - **your logo might end up in this readme.** 😉
|
||||
Verdaccio is run by **volunteers**; nobody is working full-time on it. If you find this project to be useful and would like to support its development, consider do a long support donation - **and your logo will be on this section of the readme.**
|
||||
|
||||
**[Donate](https://github.com/sponsors/verdaccio)** 💵👍🏻 starting from _$1/month_ or just one single contribution.
|
||||
|
||||
@@ -73,17 +78,26 @@ If you want to use a modified version of some 3rd-party package (for example, yo
|
||||
Verdaccio has proved to be a lightweight registry that can be
|
||||
booted in a couple of seconds, fast enough for any CI. Many open source projects use verdaccio for end to end testing, to mention some examples, **create-react-app**, **mozilla neutrino**, **pnpm**, **storybook**, **alfresco** or **eclipse theia**. You can read more in dedicated article to E2E in our blog.
|
||||
|
||||
## Talks
|
||||
## Watch our Videos
|
||||
|
||||
### **Testing the integrity of your React components by publishing in a private registry - React Finland 2021**.
|
||||
**Node Congress 2022, February 2022, Online Free**
|
||||
|
||||
[](https://www.youtube.com/watch?v=bRKZbrlQqLY&t=16s&ab_channel=ReactFinland)
|
||||
<div>
|
||||
<a href="https://portal.gitnation.org/contents/five-ways-of-taking-advantage-of-verdaccio-your-private-and-proxy-nodejs-registry">
|
||||
<img src="https://cdn.verdaccio.dev/readme/nodejscongress2022.jpg" alt="nodejs" width="300"/>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
### **Using Docker and Verdaccio to make Integration Testing Easy - Docker All Hands #4 December - 2021**.
|
||||
|
||||
[](https://www.youtube.com/watch?v=zRI0skF1f8I)
|
||||
|
||||
You might want to check out as well our previous talks:
|
||||
|
||||
- [**Juan Picado** – Testing the integrity of React components by publishing in a private registry - React Finland - 2021](https://www.youtube.com/watch?v=bRKZbrlQqLY&t=16s&ab_channel=ReactFinland)
|
||||
- [BeerJS Cba Meetup No. 53 May 2021 - **Juan Picado**](https://www.youtube.com/watch?v=6SyjqBmS49Y&ab_channel=BeerJSCba)
|
||||
- [Node.js Dependency Confusion Attacks - April 2021 - **Juan Picado\***](https://www.youtube.com/watch?v=qTRADSp3Hpo)
|
||||
- [**OpenJS World 2020** about \*Cover your Projects with a Multi purpose Lightweight Node.js Registry - **Juan Picado\***](https://www.youtube.com/watch?v=oVCjDWeehAQ)
|
||||
- [Node.js Dependency Confusion Attacks - April 2021 - **Juan Picado**](https://www.youtube.com/watch?v=qTRADSp3Hpo)
|
||||
- [**OpenJS World 2020** about \*Cover your Projects with a Multi purpose Lightweight Node.js Registry - **Juan Picado**](https://www.youtube.com/watch?v=oVCjDWeehAQ)
|
||||
- [ViennaJS Meetup - Introduction to Verdaccio by **Priscila Olivera** and **Juan Picado**](https://www.youtube.com/watch?v=hDIFKzmoCa)
|
||||
- [Open Source? trivago - Verdaccio (**Ayush** and **Juan Picado**) January 2020](https://www.youtube.com/watch?v=A5CWxJC9xzc)
|
||||
- [GitNation Open Source Stage - How we have built a Node.js Registry with React - **Juan Picado** December 2019](https://www.youtube.com/watch?v=gpjC8Qp9B9A)
|
||||
@@ -100,7 +114,7 @@ verdaccio
|
||||
You would need set some npm configuration, this is optional.
|
||||
|
||||
```bash
|
||||
$ npm set registry http://localhost:4873/
|
||||
npm set registry http://localhost:4873/
|
||||
```
|
||||
|
||||
For one-off commands or to avoid setting the registry globally:
|
||||
@@ -124,7 +138,7 @@ npm adduser --registry http://localhost:4873
|
||||
> if you use HTTPS, add an appropriate CA information ("null" means get CA list from OS)
|
||||
|
||||
```bash
|
||||
$ npm set ca null
|
||||
npm set ca null
|
||||
```
|
||||
|
||||
#### 2. publish your package
|
||||
|
||||
@@ -8,12 +8,14 @@ The following examples aim to be demonstrative and can be either improved or upd
|
||||
|
||||
- [v4 examples](v4/README.md)
|
||||
- [v5 examples](v5/README.md)
|
||||
- [v6 examples](v6/README.md)
|
||||
|
||||
## Aditional data
|
||||
|
||||
This folder aims to create a collection of Docker and Kubernetes examples.
|
||||
|
||||
For more information about the **Helm** Chart, please check it [owns repo](https://github.com/verdaccio/charts).
|
||||
|
||||
### Kubernetes
|
||||
|
||||
- Kubernetes (minikube) + Verdaccio (Basic Configuration)
|
||||
|
||||
@@ -4,6 +4,9 @@ Verdaccio running with [Localstack](https://github.com/localstack/localstack) pr
|
||||
|
||||
## Usage
|
||||
|
||||
> You might need to create bucket manually here
|
||||
> aws --endpoint-url=http://localhost:4572 s3 mb s3://localstack.s3.plugin.test
|
||||
|
||||
```
|
||||
docker-compose up --force-recreate --build --always-recreate-deps
|
||||
```
|
||||
|
||||
@@ -13,7 +13,6 @@ uplinks:
|
||||
|
||||
packages:
|
||||
'@*/*':
|
||||
# scoped packages
|
||||
access: $all
|
||||
publish: $all
|
||||
proxy: npmjs
|
||||
|
||||
@@ -14,7 +14,7 @@ services:
|
||||
links:
|
||||
- localstack-s3
|
||||
localstack-s3:
|
||||
image: localstack/localstack:latest
|
||||
image: localstack/localstack:0.10.9
|
||||
container_name: localstack-s3-1
|
||||
environment:
|
||||
- DEBUG=0
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
FROM python:2.7
|
||||
FROM python:3.7-alpine
|
||||
|
||||
ENV AWS_ACCESS_KEY_ID='[something]'
|
||||
ENV AWS_SECRET_ACCESS_KEY='[something]'
|
||||
@@ -7,4 +7,4 @@ ENV AWS_S3_ENDPOINT='http://localstack-s3:4572'
|
||||
RUN pip install awscli
|
||||
COPY entry.sh /entry.sh
|
||||
RUN chmod +x /entry.sh
|
||||
ENTRYPOINT ["/entry.sh"]
|
||||
ENTRYPOINT ["/entry.sh"]
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
aws --endpoint-url http://localstack-s3:4572 s3 mb s3://localstack.s3.plugin.test --region eu-west-2
|
||||
aws --endpoint-url http://localstack-s3:4572 s3 mb s3://localstack.s3.plugin.test --region eu-west-2
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
# see https://github.com/verdaccio/verdaccio/blob/master/wiki/docker.md#docker-and-custom-port-configuration
|
||||
#
|
||||
# Look here for more config file examples:
|
||||
# https://github.com/verdaccio/verdaccio/tree/master/conf
|
||||
# https://github.com/verdaccio/verdaccio/tree/master/packages/config/src/conf
|
||||
#
|
||||
|
||||
# path to a directory with all packages
|
||||
|
||||
@@ -10,7 +10,7 @@ let _localMemory = require('./local-memory');
|
||||
let _localMemory2 = _interopRequireDefault(_localMemory);
|
||||
|
||||
function _interopRequireDefault(obj) {
|
||||
return obj && obj.__esModule ? obj : {default: obj};
|
||||
return obj && obj.__esModule ? obj : { default: obj };
|
||||
}
|
||||
|
||||
exports.LocalMemory = _localMemory2.default;
|
||||
|
||||
@@ -9,7 +9,7 @@ let _memoryHandler = require('./memory-handler');
|
||||
let _memoryHandler2 = _interopRequireDefault(_memoryHandler);
|
||||
|
||||
function _interopRequireDefault(obj) {
|
||||
return obj && obj.__esModule ? obj : {default: obj};
|
||||
return obj && obj.__esModule ? obj : { default: obj };
|
||||
}
|
||||
|
||||
const DEFAULT_LIMIT = 1000;
|
||||
@@ -43,8 +43,8 @@ class LocalMemory {
|
||||
cb(null);
|
||||
} else {
|
||||
this.logger.info(
|
||||
{limit: this.limit},
|
||||
'Storage memory has reached limit of @{limit} packages',
|
||||
{ limit: this.limit },
|
||||
'Storage memory has reached limit of @{limit} packages'
|
||||
);
|
||||
cb(new Error('Storage memory has reached limit of limit packages'));
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ let _memoryFs2 = _interopRequireDefault(_memoryFs);
|
||||
let _streams = require('@verdaccio/streams');
|
||||
|
||||
function _interopRequireDefault(obj) {
|
||||
return obj && obj.__esModule ? obj : {default: obj};
|
||||
return obj && obj.__esModule ? obj : { default: obj };
|
||||
}
|
||||
|
||||
// $FlowFixMe
|
||||
@@ -111,8 +111,8 @@ class MemoryHandler {
|
||||
const uploadStream = new _streams.UploadTarball();
|
||||
const temporalName = `/${name}`;
|
||||
|
||||
process.nextTick(function() {
|
||||
fs.exists(temporalName, function(exists) {
|
||||
process.nextTick(function () {
|
||||
fs.exists(temporalName, function (exists) {
|
||||
if (exists) {
|
||||
return uploadStream.emit('error', fSError(fileExist));
|
||||
}
|
||||
@@ -122,7 +122,7 @@ class MemoryHandler {
|
||||
|
||||
uploadStream.pipe(file);
|
||||
|
||||
uploadStream.done = function() {
|
||||
uploadStream.done = function () {
|
||||
const onEnd = function onEnd() {
|
||||
uploadStream.emit('success');
|
||||
};
|
||||
@@ -130,7 +130,7 @@ class MemoryHandler {
|
||||
uploadStream.on('end', onEnd);
|
||||
};
|
||||
|
||||
uploadStream.abort = function() {
|
||||
uploadStream.abort = function () {
|
||||
uploadStream.emit('error', fSError('transmision aborted', 400));
|
||||
file.end();
|
||||
};
|
||||
@@ -150,8 +150,8 @@ class MemoryHandler {
|
||||
|
||||
const readTarballStream = new _streams.ReadTarball();
|
||||
|
||||
process.nextTick(function() {
|
||||
fs.exists(pathName, function(exists) {
|
||||
process.nextTick(function () {
|
||||
fs.exists(pathName, function (exists) {
|
||||
if (!exists) {
|
||||
readTarballStream.emit('error', noPackageFoundError());
|
||||
} else {
|
||||
@@ -164,7 +164,7 @@ class MemoryHandler {
|
||||
readTarballStream.emit('error', error);
|
||||
});
|
||||
|
||||
readTarballStream.abort = function() {
|
||||
readTarballStream.abort = function () {
|
||||
readStream.destroy(fSError('read has been aborted', 400));
|
||||
};
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
# see https://github.com/verdaccio/verdaccio/blob/master/wiki/docker.md#docker-and-custom-port-configuration
|
||||
#
|
||||
# Look here for more config file examples:
|
||||
# https://github.com/verdaccio/verdaccio/tree/master/conf
|
||||
# https://github.com/verdaccio/verdaccio/tree/master/packages/config/src/conf
|
||||
#
|
||||
|
||||
# path to a directory with all packages
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
# see https://github.com/verdaccio/verdaccio/blob/master/wiki/docker.md#docker-and-custom-port-configuration
|
||||
#
|
||||
# Look here for more config file examples:
|
||||
# https://github.com/verdaccio/verdaccio/tree/master/conf
|
||||
# https://github.com/verdaccio/verdaccio/tree/master/packages/config/src/conf
|
||||
#
|
||||
|
||||
# path to a directory with all packages
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
# see https://github.com/verdaccio/verdaccio/blob/master/wiki/docker.md#docker-and-custom-port-configuration
|
||||
#
|
||||
# Look here for more config file examples:
|
||||
# https://github.com/verdaccio/verdaccio/tree/master/conf
|
||||
# https://github.com/verdaccio/verdaccio/tree/master/packages/config/src/conf
|
||||
#
|
||||
|
||||
# path to a directory with all packages
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
# see https://github.com/verdaccio/verdaccio/blob/master/wiki/docker.md#docker-and-custom-port-configuration
|
||||
#
|
||||
# Look here for more config file examples:
|
||||
# https://github.com/verdaccio/verdaccio/tree/master/conf
|
||||
# https://github.com/verdaccio/verdaccio/tree/master/packages/config/src/conf
|
||||
#
|
||||
|
||||
# path to a directory with all packages
|
||||
|
||||
@@ -19,7 +19,7 @@ security:
|
||||
expiresIn: 7d
|
||||
|
||||
## IMPORTANT
|
||||
## This setup is required for relative path
|
||||
## This setup is required for relative path
|
||||
url_prefix: /verdaccio/
|
||||
server:
|
||||
behindProxy: true
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Verdaccio 5
|
||||
|
||||
> Before run examples, build the local image by running `pnpm docker`.
|
||||
> Before run examples, build the local image by running `pnpm docker`.
|
||||
|
||||
- [Docker + Nginx + Verdaccio](reverse_proxy/nginx/README.md)
|
||||
|
||||
@@ -14,7 +14,7 @@ services:
|
||||
- verdaccio
|
||||
- verdaccio-root
|
||||
verdaccio:
|
||||
image: verdaccio/verdaccio:local
|
||||
image: verdaccio/verdaccio:5
|
||||
container_name: 'verdaccio_relative_path_v5'
|
||||
networks:
|
||||
- node-network
|
||||
@@ -27,7 +27,7 @@ services:
|
||||
- './storage:/verdaccio/storage'
|
||||
- './conf/v5:/verdaccio/conf'
|
||||
verdaccio-root:
|
||||
image: verdaccio/verdaccio:local
|
||||
image: verdaccio/verdaccio:5
|
||||
container_name: 'verdaccio_relative_path_v5_root'
|
||||
networks:
|
||||
- node-network
|
||||
|
||||
@@ -17,7 +17,7 @@ services:
|
||||
- verdaccio
|
||||
- verdaccio-root
|
||||
verdaccio:
|
||||
image: verdaccio/verdaccio:local
|
||||
image: verdaccio/verdaccio:5
|
||||
container_name: 'verdaccio_relative_path_v5'
|
||||
networks:
|
||||
- node-network
|
||||
@@ -29,7 +29,7 @@ services:
|
||||
- './storage:/verdaccio/storage'
|
||||
- './conf/v5:/verdaccio/conf'
|
||||
verdaccio-root:
|
||||
image: verdaccio/verdaccio:local
|
||||
image: verdaccio/verdaccio:5
|
||||
container_name: 'verdaccio_relative_path_v5_root'
|
||||
networks:
|
||||
- node-network
|
||||
|
||||
@@ -2,7 +2,7 @@ version: '2'
|
||||
|
||||
services:
|
||||
verdaccio:
|
||||
image: verdaccio/verdaccio:local
|
||||
image: verdaccio/verdaccio:5
|
||||
container_name: verdaccio_root_path
|
||||
ports:
|
||||
- '4873:4873'
|
||||
|
||||
8
docker-examples/v6/README.md
Normal file
8
docker-examples/v6/README.md
Normal file
@@ -0,0 +1,8 @@
|
||||
# Verdaccio 6
|
||||
|
||||
> We recommend to have installed [docker-compose >= 1.29.0](https://github.com/docker/compose/releases/tag/1.29.2)
|
||||
|
||||
- [Docker + Nginx + Verdaccio](reverse_proxy/nginx/README.md)
|
||||
- [Docker + Apache + Verdaccio](apache-verdaccio/README.md)
|
||||
- [Docker + Local Storage Volume + Verdaccio](docker-local-storage-volume/README.md)
|
||||
- [Docker + HTTPS Portal + Verdaccio](https-portal-example/README.md)
|
||||
93
docker-examples/v6/apache-verdaccio/README.md
Normal file
93
docker-examples/v6/apache-verdaccio/README.md
Normal file
@@ -0,0 +1,93 @@
|
||||
# Verdaccio and Apache2
|
||||
|
||||
Running `verdaccio` via reverse proxy is a common practice. This configuration provides a quick way to run the application through **apache2** as reverse proxy.
|
||||
|
||||
To run the containers, run the following command in this folder, it should start the containers in detach mode.
|
||||
|
||||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
To recreate the nginx image you can force the build.
|
||||
|
||||
```bash
|
||||
docker-compose up --build -d
|
||||
|
||||
Building apacheproxy
|
||||
Step 1/5 : FROM eboraas/apache
|
||||
---> 1ba66e3f5580
|
||||
Step 2/5 : MAINTAINER Juan Picado <juanpicado19@gmail.com>
|
||||
---> Using cache
|
||||
---> 4317b29c20ec
|
||||
Step 3/5 : RUN a2enmod proxy
|
||||
---> Using cache
|
||||
---> b9334b33e2f1
|
||||
Step 4/5 : COPY ./conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf
|
||||
---> Using cache
|
||||
---> 6d464388db8f
|
||||
Step 5/5 : COPY ./conf/env.load /etc/apache2/mods-enabled/env.load
|
||||
---> Using cache
|
||||
---> 66740b6ffb97
|
||||
Successfully built 66740b6ffb97
|
||||
Recreating verdaccio
|
||||
Recreating apacheverdaccio_apacheproxy_1
|
||||
```
|
||||
|
||||
To force recreate the images.
|
||||
|
||||
```bash
|
||||
docker-compose up --build --force-recreate -d
|
||||
```
|
||||
|
||||
To stop all containers
|
||||
|
||||
```bash
|
||||
docker-compose stop
|
||||
```
|
||||
|
||||
To display container logs
|
||||
|
||||
```bash
|
||||
$> docker-compose logs
|
||||
Attaching to apacheverdaccio_apacheproxy_1, verdaccio
|
||||
verdaccio | warn --- config file - /verdaccio/conf/config.yaml
|
||||
verdaccio | warn --- http address - http://0.0.0.0:4873/ - verdaccio/2.1.7
|
||||
verdaccio | http <-- 304, user: undefined, req: 'GET /', bytes: 0/0
|
||||
verdaccio | http <-- 304, user: undefined, req: 'GET /-/static/jquery.min.js', bytes: 0/0
|
||||
verdaccio | http <-- 304, user: undefined, req: 'GET /-/static/main.css', bytes: 0/0
|
||||
verdaccio | http <-- 304, user: undefined, req: 'GET /-/static/main.js', bytes: 0/0
|
||||
verdaccio | http <-- 304, user: undefined, req: 'GET /-/logo', bytes: 0/0
|
||||
verdaccio | http <-- 304, user: undefined, req: 'GET /-/static/fontello.woff?10872183', bytes: 0/0
|
||||
verdaccio | http <-- 200, user: undefined, req: 'GET /-/static/favicon.png', bytes: 0/315
|
||||
```
|
||||
|
||||
To access the apache logs
|
||||
|
||||
```bash
|
||||
&> docker exec -it {ID} /bin/bash
|
||||
|
||||
root@da8ee3cb484c:~# tail -f /var/log/apache2/verdaccio-access.log
|
||||
172.20.0.1 - - [31/May/2017:21:16:37 +0000] "GET /xmlhttprequest-ssl HTTP/1.1" 200 2616 "install sails" "npm/5.0.0 node/v4.6.1 darwin x64"
|
||||
172.20.0.1 - - [31/May/2017:21:16:37 +0000] "GET /yeast HTTP/1.1" 200 2706 "install sails" "npm/5.0.0 node/v4.6.1 darwin x64"
|
||||
172.20.0.1 - - [31/May/2017:21:16:37 +0000] "GET /has-cors HTTP/1.1" 200 1347 "install sails" "npm/5.0.0 node/v4.6.1 darwin x64"
|
||||
172.20.0.1 - - [31/May/2017:21:16:37 +0000] "GET /parsejson HTTP/1.1" 200 1234 "install sails" "npm/5.0.0 node/v4.6.1 darwin x64"
|
||||
172.20.0.1 - - [31/May/2017:21:16:37 +0000] "GET /better-assert HTTP/1.1" 200 2462 "install sails" "npm/5.0.0 node/v4.6.1 darwin x64"
|
||||
172.20.0.1 - - [31/May/2017:21:16:37 +0000] "GET /callsite HTTP/1.1" 200 1369 "install sails" "npm/5.0.0 node/v4.6.1 darwin x64"
|
||||
172.20.0.1 - - [31/May/2017:21:16:37 +0000] "GET /dot-access HTTP/1.1" 200 1477 "install sails" "npm/5.0.0 node/v4.6.1 darwin x64"
|
||||
172.20.0.1 - - [31/May/2017:21:16:37 +0000] "GET /skipper-disk HTTP/1.1" 200 3801 "install sails" "npm/5.0.0 node/v4.6.1 darwin x64"
|
||||
172.20.0.1 - - [31/May/2017:21:16:37 +0000] "GET /native-or-bluebird HTTP/1.1" 200 2257 "install sails" "npm/5.0.0 node/v4.6.1 darwin x64"
|
||||
172.20.0.1 - - [31/May/2017:21:16:37 +0000] "GET /foreachasync HTTP/1.1" 200 2742 "install sails" "npm/5.0.0 node/v4.6.1 darwin x64"
|
||||
tail: unrecognized file system type 0x794c7630 for '/var/log/apache2/verdaccio-access.log'. please report this to bug-coreutils@gnu.org. reverting to polling
|
||||
```
|
||||
|
||||
### Display Information
|
||||
|
||||
To display the containers running
|
||||
|
||||
```bash
|
||||
&> docker-compose ps
|
||||
Name Command State Ports
|
||||
----------------------------------------------------------------------------------------------------
|
||||
apacheverdaccio_apacheproxy_1 /usr/sbin/apache2ctl -D FO ... Up 443/tcp, 0.0.0.0:80->80/tcp
|
||||
verdaccio /usr/src/app/bin/verdaccio ... Up 0.0.0.0:4873->4873/tcp
|
||||
```
|
||||
@@ -0,0 +1,6 @@
|
||||
FROM eboraas/apache
|
||||
MAINTAINER Juan Picado <juanpicado19@gmail.com>
|
||||
# http://pierrecaserta.com/apache-proxy-one-docker-server-many-domains/
|
||||
RUN a2enmod proxy
|
||||
COPY ./conf/000-default.conf /etc/apache2/sites-enabled/000-default.conf
|
||||
COPY ./conf/env.load /etc/apache2/mods-enabled/env.load
|
||||
@@ -0,0 +1,17 @@
|
||||
ServerName localhost:80
|
||||
ServerAdmin admin@localhost
|
||||
|
||||
<VirtualHost *:80>
|
||||
ServerName localhost
|
||||
<Proxy *>
|
||||
Allow from localhost
|
||||
</Proxy>
|
||||
SSLProxyEngine On
|
||||
ProxyRequests Off
|
||||
ProxyPreserveHost On
|
||||
AllowEncodedSlashes NoDecode
|
||||
ProxyPass / http://verdaccio:4873/ nocanon
|
||||
ProxyPassReverse / http://verdaccio:4873/
|
||||
CustomLog /var/log/apache2/verdaccio-access.log combined
|
||||
ErrorLog /var/log/apache2/verdaccio-error.log
|
||||
</VirtualHost>
|
||||
@@ -0,0 +1,4 @@
|
||||
LoadModule env_module /usr/lib/apache2/modules/mod_env.so
|
||||
LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
|
||||
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so
|
||||
LoadModule socache_shmcb_module /usr/lib/apache2/modules/mod_socache_shmcb.so
|
||||
21
docker-examples/v6/apache-verdaccio/docker-compose.yaml
Normal file
21
docker-examples/v6/apache-verdaccio/docker-compose.yaml
Normal file
@@ -0,0 +1,21 @@
|
||||
services:
|
||||
verdaccio:
|
||||
image: verdaccio/verdaccio:nightly-master
|
||||
container_name: verdaccio
|
||||
ports:
|
||||
- '4873:4873'
|
||||
volumes:
|
||||
- verdaccio:/verdaccio
|
||||
|
||||
apacheproxy:
|
||||
build: apache_proxy/
|
||||
links:
|
||||
- verdaccio
|
||||
ports:
|
||||
- '80:80'
|
||||
volumes_from:
|
||||
- verdaccio
|
||||
|
||||
volumes:
|
||||
verdaccio:
|
||||
driver: local
|
||||
@@ -0,0 +1,71 @@
|
||||
#
|
||||
# This is the config file used for the docker images.
|
||||
# It allows all users to do anything, so don't use it on production systems.
|
||||
#
|
||||
# Do not configure host and port under `listen` in this file
|
||||
# as it will be ignored when using docker.
|
||||
# see https://github.com/verdaccio/verdaccio/blob/master/wiki/docker.md#docker-and-custom-port-configuration
|
||||
#
|
||||
# Look here for more config file examples:
|
||||
# https://github.com/verdaccio/verdaccio/tree/master/packages/config/src/conf
|
||||
#
|
||||
|
||||
# path to a directory with all packages
|
||||
storage: /verdaccio/storage
|
||||
|
||||
auth:
|
||||
htpasswd:
|
||||
file: /verdaccio/conf/htpasswd
|
||||
# Maximum amount of users allowed to register, defaults to "+inf".
|
||||
# You can set this to -1 to disable registration.
|
||||
#max_users: 1000
|
||||
security:
|
||||
api:
|
||||
jwt:
|
||||
sign:
|
||||
expiresIn: 60d
|
||||
notBefore: 1
|
||||
web:
|
||||
sign:
|
||||
expiresIn: 7d
|
||||
|
||||
# a list of other known repositories we can talk to
|
||||
uplinks:
|
||||
npmjs:
|
||||
url: https://registry.npmjs.org/
|
||||
|
||||
packages:
|
||||
'@jota/*':
|
||||
access: $all
|
||||
publish: $all
|
||||
|
||||
'@*/*':
|
||||
# scoped packages
|
||||
access: $all
|
||||
publish: $all
|
||||
proxy: npmjs
|
||||
|
||||
'**':
|
||||
# allow all users (including non-authenticated users) to read and
|
||||
# publish all packages
|
||||
#
|
||||
# you can specify usernames/groupnames (depending on your auth plugin)
|
||||
# and three keywords: "$all", "$anonymous", "$authenticated"
|
||||
access: $all
|
||||
|
||||
# allow all known users to publish packages
|
||||
# (anyone can register by default, remember?)
|
||||
publish: $all
|
||||
|
||||
# if package is not available locally, proxy requests to 'npmjs' registry
|
||||
proxy: npmjs
|
||||
|
||||
# To use `npm audit` uncomment the following section
|
||||
middlewares:
|
||||
audit:
|
||||
enabled: true
|
||||
|
||||
# log settings
|
||||
logs:
|
||||
- { type: stdout, format: pretty, level: trace }
|
||||
#- {type: file, path: verdaccio.log, level: info}
|
||||
@@ -0,0 +1 @@
|
||||
jpicado:$6vkdNgRX2npc:autocreated 2017-07-11T18:48:38.003Z
|
||||
@@ -0,0 +1,12 @@
|
||||
services:
|
||||
verdaccio:
|
||||
image: verdaccio/verdaccio:nightly-master
|
||||
container_name: verdaccio-docker-local-storage-vol
|
||||
ports:
|
||||
- '4873:4873'
|
||||
volumes:
|
||||
- './storage:/verdaccio/storage'
|
||||
- './conf:/verdaccio/conf'
|
||||
volumes:
|
||||
verdaccio:
|
||||
driver: local
|
||||
31
docker-examples/v6/docker-local-storage-volume/readme.md
Normal file
31
docker-examples/v6/docker-local-storage-volume/readme.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# Verdaccio and simple local storage
|
||||
|
||||
This example shows a simple configuration for `verdaccio` plus the default local storage with the minimum configuration required using `docker-compose`.
|
||||
|
||||
Contains
|
||||
|
||||
- conf: Configuration file and default user httpasswd
|
||||
- storage: A published default package with 2 versions.
|
||||
|
||||
```bash
|
||||
$> docker-compose up
|
||||
```
|
||||
|
||||
## Login
|
||||
|
||||
If you want to login into the Verdaccio instance created via these Docker Examples, please try:
|
||||
|
||||
Username: jpicado
|
||||
Password: jpicado
|
||||
|
||||
## Running in Dokku
|
||||
|
||||
If you use Dokku, an open-source alternative for Heroku, you can run this example using the following steps:
|
||||
|
||||
1. Create a new application `dokku apps:create verdaccio`
|
||||
2. Pull the verdaccio image `docker pull verdaccio/verdaccio:`
|
||||
3. Tag the docker image for the app: `docker tag verdaccio/verdaccio:nightly-master dokku/verdaccio:v1`
|
||||
4. Create the directories for persistent storage `mkdir -p /var/lib/dokku/data/storage/verdaccio/storage`, `mkdir -p /var/lib/dokku/data/storage/verdaccio/storage`
|
||||
5. Mount the volumes: `dokku storage:mount verdaccio /var/lib/dokku/data/storage/verdaccio/storage:/verdaccio/storage` and `dokku storage:mount verdaccio /var/lib/dokku/data/storage/verdaccio/conf:/verdaccio/conf`
|
||||
6. Deploy the docker image `dokku tags:deploy verdaccio v1`
|
||||
7. Enjoy the application
|
||||
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"name": "@jota/pk1-juan-1",
|
||||
"versions": {
|
||||
"1.0.0": {
|
||||
"name": "@jota/pk1-juan-1",
|
||||
"version": "1.0.0",
|
||||
"description": "Simple React Webpack Babel Starter Kit",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": {
|
||||
"name": "Juan Picado",
|
||||
"email": "juan@jotadeveloper.com"
|
||||
},
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"angular": "^1.6.8",
|
||||
"angular2": "^2.0.0-beta.21",
|
||||
"babel-core": "^6.26.0",
|
||||
"babel-env": "^2.4.1",
|
||||
"jquery": "^3.2.1",
|
||||
"react": "^16.2.0",
|
||||
"test_npm_18": "^1.0.1",
|
||||
"typescript": "^2.6.2",
|
||||
"verdaccio": "^2.7.2",
|
||||
"verdaccio-memory": "0.0.3",
|
||||
"webpack": "^3.10.0"
|
||||
},
|
||||
"readmeFilename": "README.md",
|
||||
"_id": "@jota/pk1-juan-1@1.0.0",
|
||||
"_npmVersion": "5.5.1",
|
||||
"_nodeVersion": "8.7.0",
|
||||
"_npmUser": {},
|
||||
"dist": {
|
||||
"integrity": "sha512-aKXCuBayXFdSVt4+94B7lqvsPsM0KIsIcXvc7Ghkir3OsE6FQl2bXBBWe6deNuTwJihsFvDbCDiMq+0TIUENBQ==",
|
||||
"shasum": "faf627d746ce7c670aed088b761960716e68e186",
|
||||
"tarball": "http://0.0.0.0:4873/@jota/pk1-juan-1/-/@jota/pk1-juan-1-1.0.0.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
"dist-tags": {
|
||||
"latest": "1.0.0"
|
||||
},
|
||||
"time": {
|
||||
"modified": "2018-01-17T18:32:18.049Z",
|
||||
"created": "2018-01-17T18:32:18.049Z",
|
||||
"1.0.0": "2018-01-17T18:32:18.049Z"
|
||||
},
|
||||
"_distfiles": {},
|
||||
"_attachments": {
|
||||
"pk1-juan-1-1.0.0.tgz": {
|
||||
"shasum": "faf627d746ce7c670aed088b761960716e68e186",
|
||||
"version": "1.0.0"
|
||||
}
|
||||
},
|
||||
"_uplinks": {},
|
||||
"_rev": "3-5cf06458deec6f04",
|
||||
"readme": "# react-webpack-babel\nSimple React Webpack Babel Starter Kit\n\nTired of complicated starters with 200MB of dependencies which are hard to understand and modify?\n\nTry this is a simple [React](https://facebook.github.io/react/), [Webpack](http://webpack.github.io/) and [Babel](https://babeljs.io/) application with nothing else in it.\n\n### What's in it?\n\n* Simple src/index.jsx and src/index.css (local module css).\n* Webpack configuration for development (with hot reloading) and production (with minification).\n* CSS module loading, so you can include your css by ```import styles from './path/to.css';```.\n* Both js(x) and css hot loaded during development.\n* [Webpack Dashboard Plugin](https://github.com/FormidableLabs/webpack-dashboard) on dev server.\n\n### To run\n\n* You'll need to have [git](https://git-scm.com/) and [node](https://nodejs.org/en/) installed in your system.\n* Fork and clone the project:\n\n```\ngit clone https://github.com/alicoding/react-webpack-babel.git\n```\n\n* Then install the dependencies:\n\n```\nnpm install\n```\n\n* Run development server:\n\n```\nnpm start\n```\n\n* Or you can run development server with [webpack-dashboard](https://github.com/FormidableLabs/webpack-dashboard):\n\n```\nnpm run dev\n```\n\nOpen the web browser to `http://localhost:8888/`\n\n### To build the production package\n\n```\nnpm run build\n```\n\n### Nginx Config\n\nHere is an example Nginx config:\n```\nserver {\n\t# ... root and other options\n\n\tgzip on;\n\tgzip_http_version 1.1;\n\tgzip_types text/plain text/css text/xml application/javascript image/svg+xml;\n\n\tlocation / {\n\t\ttry_files $uri $uri/ /index.html;\n\t}\n\n\tlocation ~ \\.html?$ {\n\t\texpires 1d;\n\t}\n\n\tlocation ~ \\.(svg|ttf|js|css|svgz|eot|otf|woff|jpg|jpeg|gif|png|ico)$ {\n\t\taccess_log off;\n\t\tlog_not_found off;\n\t\texpires max;\n\t}\n}\n```\n\n### Eslint\nThere is a .eslint.yaml config for eslint ready with React plugin.\nTo use it, you need to install additional dependencies though:\n\n```\nnpm install --save-dev eslint eslint-plugin-react\n```\n\nTo do the actual linting, run:\n\n```\nnpm run lint\n```\n\n### Notes on importing css styles\n* styles having /src/ in their absolute path are considered part of the application and exported as local css modules.\n* other styles are considered global styles used by many components and are included in the css bundle directly.\n\n### Contribute\nPlease contribute to the project if you know how to make it better, including this README :)"
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,105 @@
|
||||
{
|
||||
"name": "@jota/pk1-juan",
|
||||
"versions": {
|
||||
"1.0.0": {
|
||||
"name": "@jota/pk1-juan",
|
||||
"version": "1.0.0",
|
||||
"description": "Simple React Webpack Babel Starter Kit",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": {
|
||||
"name": "Juan Picado",
|
||||
"email": "juan@jotadeveloper.com"
|
||||
},
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"angular": "^1.6.8",
|
||||
"angular2": "^2.0.0-beta.21",
|
||||
"babel-core": "^6.26.0",
|
||||
"babel-env": "^2.4.1",
|
||||
"jquery": "^3.2.1",
|
||||
"react": "^16.2.0",
|
||||
"test_npm_18": "^1.0.1",
|
||||
"typescript": "^2.6.2",
|
||||
"verdaccio": "^2.7.2",
|
||||
"verdaccio-memory": "0.0.3",
|
||||
"webpack": "^3.10.0"
|
||||
},
|
||||
"readmeFilename": "README.md",
|
||||
"_id": "@jota/pk1-juan@1.0.0",
|
||||
"_npmVersion": "5.5.1",
|
||||
"_nodeVersion": "8.7.0",
|
||||
"_npmUser": {},
|
||||
"dist": {
|
||||
"integrity": "sha512-JC4y+iHrUpD+li3Pf9z2oFxw2Mtbqi6vgnIDBB3H/P/t0gAuCKK/LJ86kV7TRyvQwVvyJk1qI61iOVLiMwjZ8Q==",
|
||||
"shasum": "95a21c648054c7144a23995a519930255f35b6c2",
|
||||
"tarball": "http://0.0.0.0:4873/@jota/pk1-juan/-/@jota/pk1-juan-1.0.0.tgz"
|
||||
}
|
||||
},
|
||||
"1.0.1": {
|
||||
"name": "@jota/pk1-juan",
|
||||
"version": "1.0.1",
|
||||
"description": "Simple React Webpack Babel Starter Kit",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": {
|
||||
"name": "Juan Picado",
|
||||
"email": "juan@jotadeveloper.com"
|
||||
},
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"angular": "^1.6.8",
|
||||
"angular2": "^2.0.0-beta.21",
|
||||
"babel-core": "^6.26.0",
|
||||
"babel-env": "^2.4.1",
|
||||
"jquery": "^3.2.1",
|
||||
"react": "^16.2.0",
|
||||
"test_npm_18": "^1.0.1",
|
||||
"typescript": "^2.6.2",
|
||||
"verdaccio": "^2.7.2",
|
||||
"verdaccio-memory": "0.0.3",
|
||||
"webpack": "^3.10.0"
|
||||
},
|
||||
"readmeFilename": "README.md",
|
||||
"_id": "@jota/pk1-juan@1.0.1",
|
||||
"_npmVersion": "5.5.1",
|
||||
"_nodeVersion": "8.7.0",
|
||||
"_npmUser": {},
|
||||
"dist": {
|
||||
"integrity": "sha512-copZNn2mMX8S3W9czxd3GXKj8vKu1v7JrUD9zOtriP8v9AvZOHIt6nW8+1114cumNGukFxjBO+2VlZC793ynTA==",
|
||||
"shasum": "ed59869c54d1bec7bc19732c4c23c97633ea30e2",
|
||||
"tarball": "http://0.0.0.0:4873/@jota/pk1-juan/-/@jota/pk1-juan-1.0.1.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
"dist-tags": {
|
||||
"latest": "1.0.0",
|
||||
"beta2": "1.0.1"
|
||||
},
|
||||
"time": {
|
||||
"modified": "2018-01-17T18:49:09.087Z",
|
||||
"created": "2018-01-17T18:27:39.952Z",
|
||||
"1.0.0": "2018-01-17T18:27:39.952Z",
|
||||
"1.0.1": "2018-01-17T18:49:09.087Z"
|
||||
},
|
||||
"_distfiles": {},
|
||||
"_attachments": {
|
||||
"pk1-juan-1.0.0.tgz": {
|
||||
"shasum": "95a21c648054c7144a23995a519930255f35b6c2",
|
||||
"version": "1.0.0"
|
||||
},
|
||||
"pk1-juan-1.0.1.tgz": {
|
||||
"shasum": "ed59869c54d1bec7bc19732c4c23c97633ea30e2",
|
||||
"version": "1.0.1"
|
||||
}
|
||||
},
|
||||
"_uplinks": {},
|
||||
"_rev": "18-5118c5019a188840",
|
||||
"readme": "# react-webpack-babel\nSimple React Webpack Babel Starter Kit\n\nTired of complicated starters with 200MB of dependencies which are hard to understand and modify?\n\nTry this is a simple [React](https://facebook.github.io/react/), [Webpack](http://webpack.github.io/) and [Babel](https://babeljs.io/) application with nothing else in it.\n\n### What's in it?\n\n* Simple src/index.jsx and src/index.css (local module css).\n* Webpack configuration for development (with hot reloading) and production (with minification).\n* CSS module loading, so you can include your css by ```import styles from './path/to.css';```.\n* Both js(x) and css hot loaded during development.\n* [Webpack Dashboard Plugin](https://github.com/FormidableLabs/webpack-dashboard) on dev server.\n\n### To run\n\n* You'll need to have [git](https://git-scm.com/) and [node](https://nodejs.org/en/) installed in your system.\n* Fork and clone the project:\n\n```\ngit clone https://github.com/alicoding/react-webpack-babel.git\n```\n\n* Then install the dependencies:\n\n```\nnpm install\n```\n\n* Run development server:\n\n```\nnpm start\n```\n\n* Or you can run development server with [webpack-dashboard](https://github.com/FormidableLabs/webpack-dashboard):\n\n```\nnpm run dev\n```\n\nOpen the web browser to `http://localhost:8888/`\n\n### To build the production package\n\n```\nnpm run build\n```\n\n### Nginx Config\n\nHere is an example Nginx config:\n```\nserver {\n\t# ... root and other options\n\n\tgzip on;\n\tgzip_http_version 1.1;\n\tgzip_types text/plain text/css text/xml application/javascript image/svg+xml;\n\n\tlocation / {\n\t\ttry_files $uri $uri/ /index.html;\n\t}\n\n\tlocation ~ \\.html?$ {\n\t\texpires 1d;\n\t}\n\n\tlocation ~ \\.(svg|ttf|js|css|svgz|eot|otf|woff|jpg|jpeg|gif|png|ico)$ {\n\t\taccess_log off;\n\t\tlog_not_found off;\n\t\texpires max;\n\t}\n}\n```\n\n### Eslint\nThere is a .eslint.yaml config for eslint ready with React plugin.\nTo use it, you need to install additional dependencies though:\n\n```\nnpm install --save-dev eslint eslint-plugin-react\n```\n\nTo do the actual linting, run:\n\n```\nnpm run lint\n```\n\n### Notes on importing css styles\n* styles having /src/ in their absolute path are considered part of the application and exported as local css modules.\n* other styles are considered global styles used by many components and are included in the css bundle directly.\n\n### Contribute\nPlease contribute to the project if you know how to make it better, including this README :)"
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,70 @@
|
||||
{
|
||||
"name": "npm_test_pkg1",
|
||||
"versions": {
|
||||
"1.0.0": {
|
||||
"name": "npm_test_pkg1",
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"_id": "npm_test_pkg1@1.0.0",
|
||||
"_npmVersion": "5.1.0",
|
||||
"_nodeVersion": "4.6.1",
|
||||
"_npmUser": {},
|
||||
"dist": {
|
||||
"integrity": "sha512-qq8u/xKpYFCfmANLg5ohY4ZBkzM7NsKjIpYH+eSXji69aceMQvltRXx0O1qo7yAIORiCFsMTGLlkDCQtbhByxg==",
|
||||
"shasum": "d058de16fdf8bde775ef2898e682faacc3eaa67f",
|
||||
"tarball": "http://localhost:4873/npm_test_pkg1/-/npm_test_pkg1-1.0.0.tgz"
|
||||
}
|
||||
},
|
||||
"1.0.1": {
|
||||
"name": "npm_test_pkg1",
|
||||
"version": "1.0.1",
|
||||
"description": "",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"_id": "npm_test_pkg1@1.0.1",
|
||||
"_npmVersion": "5.1.0",
|
||||
"_nodeVersion": "4.6.1",
|
||||
"_npmUser": {},
|
||||
"dist": {
|
||||
"integrity": "sha512-0YLdKRIAbZJoLpOFqXZE/JldTnGRKjIX999xV4PMJ+sUO6pWiLO8NbG4wuT5738Re3D5WTRa743y9uPvgrTD0A==",
|
||||
"shasum": "1f6251ce59e375a6328958202ec07eb7de38dae6",
|
||||
"tarball": "http://localhost:4873/npm_test_pkg1/-/npm_test_pkg1-1.0.1.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
"dist-tags": {
|
||||
"latest": "1.0.1"
|
||||
},
|
||||
"time": {
|
||||
"modified": "2017-07-11T18:52:35.061Z",
|
||||
"created": "2017-07-11T18:49:27.417Z",
|
||||
"1.0.0": "2017-07-11T18:49:27.417Z",
|
||||
"1.0.1": "2017-07-11T18:52:35.061Z"
|
||||
},
|
||||
"_distfiles": {},
|
||||
"_attachments": {
|
||||
"npm_test_pkg1-1.0.0.tgz": {
|
||||
"shasum": "d058de16fdf8bde775ef2898e682faacc3eaa67f",
|
||||
"version": "1.0.0"
|
||||
},
|
||||
"npm_test_pkg1-1.0.1.tgz": {
|
||||
"shasum": "1f6251ce59e375a6328958202ec07eb7de38dae6",
|
||||
"version": "1.0.1"
|
||||
}
|
||||
},
|
||||
"_uplinks": {},
|
||||
"_rev": "11-382567c9979db3fd",
|
||||
"readme": "ERROR: No README data found!"
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"name": "pk1-juan",
|
||||
"versions": {
|
||||
"1.0.0": {
|
||||
"name": "pk1-juan",
|
||||
"version": "1.0.0",
|
||||
"description": "Simple React Webpack Babel Starter Kit",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": {
|
||||
"name": "Juan Picado",
|
||||
"email": "juan@jotadeveloper.com"
|
||||
},
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"angular": "^1.6.8",
|
||||
"angular2": "^2.0.0-beta.21",
|
||||
"babel-core": "^6.26.0",
|
||||
"babel-env": "^2.4.1",
|
||||
"jquery": "^3.2.1",
|
||||
"react": "^16.2.0",
|
||||
"test_npm_18": "^1.0.1",
|
||||
"typescript": "^2.6.2",
|
||||
"verdaccio": "^2.7.2",
|
||||
"verdaccio-memory": "0.0.3",
|
||||
"webpack": "^3.10.0"
|
||||
},
|
||||
"readmeFilename": "README.md",
|
||||
"_id": "pk1-juan@1.0.0",
|
||||
"_npmVersion": "5.5.1",
|
||||
"_nodeVersion": "8.7.0",
|
||||
"_npmUser": {},
|
||||
"dist": {
|
||||
"integrity": "sha512-K3ifqa0DEndma1RPhM83TBVISIY3wq2JdTL0GafvJno6z6JvFBp4iQgyrKn7Yjkd0J/LZ9IJvhNWsGQZuoXMPQ==",
|
||||
"shasum": "5d670df046b9bc4bc1714efe8873a614c522e41d",
|
||||
"tarball": "http://0.0.0.0:4873/pk1-juan/-/pk1-juan-1.0.0.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
"dist-tags": {
|
||||
"latest": "1.0.0"
|
||||
},
|
||||
"time": {
|
||||
"modified": "2018-01-17T18:27:09.087Z",
|
||||
"created": "2018-01-17T18:27:09.087Z",
|
||||
"1.0.0": "2018-01-17T18:27:09.087Z"
|
||||
},
|
||||
"_distfiles": {},
|
||||
"_attachments": {
|
||||
"pk1-juan-1.0.0.tgz": {
|
||||
"shasum": "5d670df046b9bc4bc1714efe8873a614c522e41d",
|
||||
"version": "1.0.0"
|
||||
}
|
||||
},
|
||||
"_uplinks": {},
|
||||
"_rev": "5-e7a0e845b8b0cdc8",
|
||||
"readme": "# react-webpack-babel\nSimple React Webpack Babel Starter Kit\n\nTired of complicated starters with 200MB of dependencies which are hard to understand and modify?\n\nTry this is a simple [React](https://facebook.github.io/react/), [Webpack](http://webpack.github.io/) and [Babel](https://babeljs.io/) application with nothing else in it.\n\n### What's in it?\n\n* Simple src/index.jsx and src/index.css (local module css).\n* Webpack configuration for development (with hot reloading) and production (with minification).\n* CSS module loading, so you can include your css by ```import styles from './path/to.css';```.\n* Both js(x) and css hot loaded during development.\n* [Webpack Dashboard Plugin](https://github.com/FormidableLabs/webpack-dashboard) on dev server.\n\n### To run\n\n* You'll need to have [git](https://git-scm.com/) and [node](https://nodejs.org/en/) installed in your system.\n* Fork and clone the project:\n\n```\ngit clone https://github.com/alicoding/react-webpack-babel.git\n```\n\n* Then install the dependencies:\n\n```\nnpm install\n```\n\n* Run development server:\n\n```\nnpm start\n```\n\n* Or you can run development server with [webpack-dashboard](https://github.com/FormidableLabs/webpack-dashboard):\n\n```\nnpm run dev\n```\n\nOpen the web browser to `http://localhost:8888/`\n\n### To build the production package\n\n```\nnpm run build\n```\n\n### Nginx Config\n\nHere is an example Nginx config:\n```\nserver {\n\t# ... root and other options\n\n\tgzip on;\n\tgzip_http_version 1.1;\n\tgzip_types text/plain text/css text/xml application/javascript image/svg+xml;\n\n\tlocation / {\n\t\ttry_files $uri $uri/ /index.html;\n\t}\n\n\tlocation ~ \\.html?$ {\n\t\texpires 1d;\n\t}\n\n\tlocation ~ \\.(svg|ttf|js|css|svgz|eot|otf|woff|jpg|jpeg|gif|png|ico)$ {\n\t\taccess_log off;\n\t\tlog_not_found off;\n\t\texpires max;\n\t}\n}\n```\n\n### Eslint\nThere is a .eslint.yaml config for eslint ready with React plugin.\nTo use it, you need to install additional dependencies though:\n\n```\nnpm install --save-dev eslint eslint-plugin-react\n```\n\nTo do the actual linting, run:\n\n```\nnpm run lint\n```\n\n### Notes on importing css styles\n* styles having /src/ in their absolute path are considered part of the application and exported as local css modules.\n* other styles are considered global styles used by many components and are included in the css bundle directly.\n\n### Contribute\nPlease contribute to the project if you know how to make it better, including this README :)"
|
||||
}
|
||||
Binary file not shown.
69
docker-examples/v6/https-portal-example/README.md
Normal file
69
docker-examples/v6/https-portal-example/README.md
Normal file
@@ -0,0 +1,69 @@
|
||||
# Verdaccio and https-portal Example
|
||||
|
||||
Run `verdaccio` under fully automated HTTPS server powered by Nginx, Let's Encrypt was never so easy. Using [https-portal](https://github.com/SteveLTN/https-portal) all is builtin and no need for extra configuration.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
In order to make it work, this is just a local setup, so you must update your `host` file.
|
||||
|
||||
On Mac
|
||||
|
||||
```
|
||||
➜ sudo vi /etc/hosts
|
||||
|
||||
##
|
||||
# Host Database
|
||||
#
|
||||
# localhost is used to configure the loopback interface
|
||||
# when the system is booting. Do not change this entry.
|
||||
##
|
||||
127.0.0.1 localhost
|
||||
127.0.0.1 example.com
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
To run the containers, run the followingcommands in this folder, it should start the containers in detach mode.
|
||||
|
||||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
To recreate the nginx image you can force the build.
|
||||
|
||||
```bash
|
||||
docker-compose up --build -d
|
||||
```
|
||||
|
||||
To force recreate the images.
|
||||
|
||||
```bash
|
||||
docker-compose up --build --force-recreate -d
|
||||
```
|
||||
|
||||
To stop all containers
|
||||
|
||||
```bash
|
||||
docker-compose stop
|
||||
```
|
||||
|
||||
From your Javascript project
|
||||
|
||||
```bash
|
||||
npm publish --registry https://example.com
|
||||
```
|
||||
|
||||
## NPM and self-signed certificates
|
||||
|
||||
Be aware of disabling strict SSL in `./npmrc`config file as explained [here](https://stackoverflow.com/questions/9626990/receiving-error-error-ssl-error-self-signed-cert-in-chain-while-using-npm).
|
||||
|
||||
```bash
|
||||
npm config set strict-ssl false
|
||||
```
|
||||
|
||||
## Login
|
||||
|
||||
If you want to login into the Verdaccio instance created via these Docker Examples, please try:
|
||||
|
||||
Username: jpicado
|
||||
Password: jpicado
|
||||
28
docker-examples/v6/https-portal-example/conf/config.yaml
Normal file
28
docker-examples/v6/https-portal-example/conf/config.yaml
Normal file
@@ -0,0 +1,28 @@
|
||||
plugins: /verdaccio/plugins
|
||||
storage: /verdaccio/storage
|
||||
|
||||
auth:
|
||||
htpasswd:
|
||||
file: /verdaccio/conf/htpasswd
|
||||
|
||||
uplinks:
|
||||
npmjs:
|
||||
url: https://registry.npmjs.org/
|
||||
|
||||
middlewares:
|
||||
audit:
|
||||
enabled: true
|
||||
|
||||
packages:
|
||||
'@*/*':
|
||||
access: $all
|
||||
publish: $all
|
||||
proxy: npmjs
|
||||
|
||||
'**':
|
||||
access: $all
|
||||
publish: $all
|
||||
proxy: npmjs
|
||||
|
||||
logs:
|
||||
- { type: stdout, format: pretty, level: trace }
|
||||
1
docker-examples/v6/https-portal-example/conf/htpasswd
Normal file
1
docker-examples/v6/https-portal-example/conf/htpasswd
Normal file
@@ -0,0 +1 @@
|
||||
jpicado:$6vkdNgRX2npc:autocreated 2018-09-22T10:24:17.535Z
|
||||
20
docker-examples/v6/https-portal-example/docker-compose.yml
Normal file
20
docker-examples/v6/https-portal-example/docker-compose.yml
Normal file
@@ -0,0 +1,20 @@
|
||||
services:
|
||||
verdaccio:
|
||||
image: verdaccio/verdaccio:nightly-master
|
||||
container_name: verdaccio-https
|
||||
ports:
|
||||
- '4873:4873'
|
||||
volumes:
|
||||
- './storage:/verdaccio/storage'
|
||||
- './conf:/verdaccio/conf'
|
||||
https-portal:
|
||||
image: steveltn/https-portal:1
|
||||
ports:
|
||||
- '80:80'
|
||||
- '443:443'
|
||||
links:
|
||||
- verdaccio:verdaccio
|
||||
environment:
|
||||
DOMAINS: 'example.com -> http://verdaccio:4873'
|
||||
STAGE: local
|
||||
FORCE_RENEW: 'true'
|
||||
Binary file not shown.
@@ -0,0 +1,51 @@
|
||||
{
|
||||
"name": "@scope/example",
|
||||
"versions": {
|
||||
"1.0.0": {
|
||||
"name": "@scope/example",
|
||||
"version": "1.0.0",
|
||||
"description": "exampled scoped module",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"keywords": [
|
||||
"example"
|
||||
],
|
||||
"author": {
|
||||
"name": "Juan Picado"
|
||||
},
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"jquery": "^3.3.1"
|
||||
},
|
||||
"_id": "@scope/example@1.0.0",
|
||||
"_npmVersion": "6.3.0",
|
||||
"_nodeVersion": "10.1.0",
|
||||
"_npmUser": {},
|
||||
"dist": {
|
||||
"integrity": "sha512-UrpRhmCAwyGF2pWWd+fGDN8tFsVcCoLmK/qHaVAamphR+E4ZUjGf6N5GGgneFwbSeZ0FQrDYtUTPKrysxGIihQ==",
|
||||
"shasum": "4c36e40e65049b32cd49599f65cb50b81b9d8810",
|
||||
"tarball": "http://example.com/@scope/example/-/@scope/example-1.0.0.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
"time": {
|
||||
"modified": "2018-09-22T10:27:32.723Z",
|
||||
"created": "2018-09-22T10:27:32.723Z",
|
||||
"1.0.0": "2018-09-22T10:27:32.723Z"
|
||||
},
|
||||
"dist-tags": {
|
||||
"latest": "1.0.0"
|
||||
},
|
||||
"_uplinks": {},
|
||||
"_distfiles": {},
|
||||
"_attachments": {
|
||||
"example-1.0.0.tgz": {
|
||||
"shasum": "4c36e40e65049b32cd49599f65cb50b81b9d8810",
|
||||
"version": "1.0.0"
|
||||
}
|
||||
},
|
||||
"_rev": "7-24f17006c03f69b9",
|
||||
"readme": "ERROR: No README data found!"
|
||||
}
|
||||
4914
docker-examples/v6/https-portal-example/storage/jquery/package.json
Normal file
4914
docker-examples/v6/https-portal-example/storage/jquery/package.json
Normal file
File diff suppressed because it is too large
Load Diff
60
docker-examples/v6/reverse_proxy/nginx/README.md
Executable file
60
docker-examples/v6/reverse_proxy/nginx/README.md
Executable file
@@ -0,0 +1,60 @@
|
||||
# Verdaccio and Nginx
|
||||
|
||||
Running `verdaccio` via reverse proxy is a common practice. This configuration provides a quick way to run the application behind **nginx**.
|
||||
|
||||
This folder provides the following examples:
|
||||
|
||||
- root_path: Using reverse proxy with `/` as a path.
|
||||
- relative_path: Using `/verdaccio/` as a subdirectory. It includes also SSL examples with reverse proxy.
|
||||
|
||||
To run the containers, run the following commands in this folder. The containers should start in detach mode.
|
||||
|
||||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
To recreate the nginx image you can force the build.
|
||||
|
||||
```bash
|
||||
docker-compose up --build -d
|
||||
```
|
||||
|
||||
To force recreate the images.
|
||||
|
||||
```bash
|
||||
docker-compose up --build --force-recreate -d
|
||||
```
|
||||
|
||||
To stop all containers
|
||||
|
||||
```bash
|
||||
docker-compose stop
|
||||
```
|
||||
|
||||
To display container logs
|
||||
|
||||
```bash
|
||||
$> docker-compose logs
|
||||
Attaching to nginxverdaccio_nginx_1, verdaccio
|
||||
verdaccio | warn --- config file - /verdaccio/conf/config.yaml
|
||||
verdaccio | warn --- http address - http://0.0.0.0:4873/ - verdaccio/2.1.7
|
||||
verdaccio | http <-- 304, user: undefined, req: 'GET /', bytes: 0/0
|
||||
verdaccio | http <-- 304, user: undefined, req: 'GET /-/static/jquery.min.js', bytes: 0/0
|
||||
verdaccio | http <-- 304, user: undefined, req: 'GET /-/static/main.css', bytes: 0/0
|
||||
verdaccio | http <-- 304, user: undefined, req: 'GET /-/static/main.js', bytes: 0/0
|
||||
verdaccio | http <-- 304, user: undefined, req: 'GET /-/logo', bytes: 0/0
|
||||
verdaccio | http <-- 304, user: undefined, req: 'GET /-/static/fontello.woff?10872183', bytes: 0/0
|
||||
verdaccio | http <-- 200, user: undefined, req: 'GET /-/static/favicon.png', bytes: 0/315
|
||||
```
|
||||
|
||||
### Display Information
|
||||
|
||||
To display the containers running
|
||||
|
||||
```bash
|
||||
&> docker-compose ps
|
||||
Name Command State Ports
|
||||
----------------------------------------------------------------------------------------
|
||||
nginxverdaccio_nginx_1 /usr/sbin/nginx Up 0.0.0.0:80->80/tcp
|
||||
verdaccio /usr/src/app/bin/verdaccio ... Up 0.0.0.0:4873->4873/tcp
|
||||
```
|
||||
31
docker-examples/v6/reverse_proxy/nginx/relative_path/README.md
Executable file
31
docker-examples/v6/reverse_proxy/nginx/relative_path/README.md
Executable file
@@ -0,0 +1,31 @@
|
||||
# Nginx Relative Path with Verdaccio 6
|
||||
|
||||
This example runs two verdaccio versions:
|
||||
|
||||
- Running `verdaccio:6.x` http://localhost/verdaccio/
|
||||
|
||||
Note: we should add more sort of configurations here.
|
||||
|
||||
**Nginx HTTP Example**
|
||||
|
||||
```bash
|
||||
docker-compose up --build --force-recreate
|
||||
```
|
||||
|
||||
open the browser
|
||||
|
||||
```
|
||||
http://localhost/verdaccio/
|
||||
```
|
||||
|
||||
**Nginx SSL Example**
|
||||
|
||||
```bash
|
||||
docker-compose -f docker-compose_ssl.yml up --build --force-recreate
|
||||
```
|
||||
|
||||
open the browser
|
||||
|
||||
```
|
||||
https://localhost/verdaccio/
|
||||
```
|
||||
49
docker-examples/v6/reverse_proxy/nginx/relative_path/conf/v6/config.yaml
Executable file
49
docker-examples/v6/reverse_proxy/nginx/relative_path/conf/v6/config.yaml
Executable file
@@ -0,0 +1,49 @@
|
||||
storage: /verdaccio/storage
|
||||
|
||||
web:
|
||||
enable: true
|
||||
title: VerdaccioV6 Relative Path
|
||||
primary_color: red
|
||||
|
||||
auth:
|
||||
htpasswd:
|
||||
file: /verdaccio/conf/htpasswd
|
||||
security:
|
||||
api:
|
||||
jwt:
|
||||
sign:
|
||||
expiresIn: 60d
|
||||
notBefore: 1
|
||||
web:
|
||||
sign:
|
||||
expiresIn: 7d
|
||||
|
||||
## IMPORTANT
|
||||
## This will configure verdaccio to rely on a relative path
|
||||
url_prefix: /verdaccio
|
||||
|
||||
uplinks:
|
||||
npmjs:
|
||||
url: https://registry.npmjs.org/
|
||||
|
||||
packages:
|
||||
'@jota/*':
|
||||
access: $all
|
||||
publish: $all
|
||||
|
||||
'@*/*':
|
||||
# scoped packages
|
||||
access: $all
|
||||
publish: $all
|
||||
proxy: npmjs
|
||||
|
||||
'**':
|
||||
access: $all
|
||||
publish: $all
|
||||
proxy: npmjs
|
||||
|
||||
middlewares:
|
||||
audit:
|
||||
enabled: true
|
||||
|
||||
log: { type: stdout, format: pretty, level: trace }
|
||||
2
docker-examples/v6/reverse_proxy/nginx/relative_path/conf/v6/htpasswd
Executable file
2
docker-examples/v6/reverse_proxy/nginx/relative_path/conf/v6/htpasswd
Executable file
@@ -0,0 +1,2 @@
|
||||
jpicado:$6vkdNgRX2npc:autocreated 2017-07-11T18:48:38.003Z
|
||||
test:$6FrCaT/v0dwE:autocreated 2019-05-06T22:06:54.513Z
|
||||
@@ -0,0 +1,45 @@
|
||||
storage: /verdaccio/storage
|
||||
|
||||
web:
|
||||
enable: true
|
||||
title: VerdaccioV6 Root Path
|
||||
primary_color: redF
|
||||
|
||||
auth:
|
||||
htpasswd:
|
||||
file: /verdaccio/conf/htpasswd
|
||||
security:
|
||||
api:
|
||||
jwt:
|
||||
sign:
|
||||
expiresIn: 60d
|
||||
notBefore: 1
|
||||
web:
|
||||
sign:
|
||||
expiresIn: 7d
|
||||
|
||||
uplinks:
|
||||
npmjs:
|
||||
url: https://registry.npmjs.org/
|
||||
|
||||
packages:
|
||||
'@jota/*':
|
||||
access: $all
|
||||
publish: $all
|
||||
|
||||
'@*/*':
|
||||
# scoped packages
|
||||
access: $all
|
||||
publish: $all
|
||||
proxy: npmjs
|
||||
|
||||
'**':
|
||||
access: $all
|
||||
publish: $all
|
||||
proxy: npmjs
|
||||
|
||||
middlewares:
|
||||
audit:
|
||||
enabled: true
|
||||
|
||||
log: { type: stdout, format: json, level: trace }
|
||||
@@ -0,0 +1 @@
|
||||
jpicado:$6vkdNgRX2npc:autocreated 2017-07-11T18:48:38.003Z
|
||||
41
docker-examples/v6/reverse_proxy/nginx/relative_path/docker-compose.yml
Executable file
41
docker-examples/v6/reverse_proxy/nginx/relative_path/docker-compose.yml
Executable file
@@ -0,0 +1,41 @@
|
||||
services:
|
||||
nginx:
|
||||
build:
|
||||
context: ''
|
||||
dockerfile: nginx/Dockerfile
|
||||
ports:
|
||||
- '80:80'
|
||||
networks:
|
||||
- node-network
|
||||
container_name: 'nginx'
|
||||
depends_on:
|
||||
- verdaccio
|
||||
- verdaccio-root
|
||||
verdaccio:
|
||||
image: verdaccio/verdaccio:nightly-master
|
||||
container_name: 'verdaccio_relative_path_v6'
|
||||
networks:
|
||||
- node-network
|
||||
environment:
|
||||
- VERDACCIO_PORT=4873
|
||||
- DEBUG=verdaccio:*
|
||||
ports:
|
||||
- '4873:4873'
|
||||
volumes:
|
||||
- './storage:/verdaccio/storage'
|
||||
- './conf/v6:/verdaccio/conf'
|
||||
verdaccio-root:
|
||||
image: verdaccio/verdaccio:nightly-master
|
||||
container_name: 'verdaccio_relative_path_v6_root'
|
||||
networks:
|
||||
- node-network
|
||||
environment:
|
||||
- VERDACCIO_PORT=8000
|
||||
ports:
|
||||
- '8000:8000'
|
||||
volumes:
|
||||
- './storage:/verdaccio/storage'
|
||||
- './conf/v6_root:/verdaccio/conf'
|
||||
networks:
|
||||
node-network:
|
||||
driver: bridge
|
||||
44
docker-examples/v6/reverse_proxy/nginx/relative_path/docker-compose_ssl.yml
Executable file
44
docker-examples/v6/reverse_proxy/nginx/relative_path/docker-compose_ssl.yml
Executable file
@@ -0,0 +1,44 @@
|
||||
services:
|
||||
nginx:
|
||||
build:
|
||||
context: './nginx_ssl'
|
||||
dockerfile: Dockerfile
|
||||
ports:
|
||||
- '443:443'
|
||||
- '80:80'
|
||||
environment:
|
||||
- REMOTE_URL=http://verdaccio_relative_path_v6:4873/
|
||||
networks:
|
||||
- node-network
|
||||
container_name: 'nginx_ssl'
|
||||
depends_on:
|
||||
- verdaccio
|
||||
- verdaccio-root
|
||||
verdaccio:
|
||||
image: verdaccio/verdaccio:nightly-master
|
||||
container_name: 'verdaccio_relative_path_v6'
|
||||
networks:
|
||||
- node-network
|
||||
environment:
|
||||
- VERDACCIO_PORT=4873
|
||||
ports:
|
||||
- '4873:4873'
|
||||
volumes:
|
||||
- './storage:/verdaccio/storage'
|
||||
- './conf/v6:/verdaccio/conf'
|
||||
verdaccio-root:
|
||||
image: verdaccio/verdaccio:nightly-master
|
||||
container_name: 'verdaccio_relative_path_v6_root'
|
||||
networks:
|
||||
- node-network
|
||||
environment:
|
||||
- VERDACCIO_PORT=8000
|
||||
ports:
|
||||
- '8000:8000'
|
||||
volumes:
|
||||
- './storage:/verdaccio/storage'
|
||||
- './conf/v6_root:/verdaccio/conf'
|
||||
|
||||
networks:
|
||||
node-network:
|
||||
driver: bridge
|
||||
@@ -0,0 +1,2 @@
|
||||
FROM nginx:1.21-alpine
|
||||
COPY nginx/default.conf /etc/nginx/conf.d/default.conf
|
||||
33
docker-examples/v6/reverse_proxy/nginx/relative_path/nginx/default.conf
Executable file
33
docker-examples/v6/reverse_proxy/nginx/relative_path/nginx/default.conf
Executable file
@@ -0,0 +1,33 @@
|
||||
upstream verdaccio_relative_v6 {
|
||||
server verdaccio_relative_path_v6:4873;
|
||||
keepalive 8;
|
||||
}
|
||||
|
||||
upstream verdaccio_v6_root {
|
||||
server verdaccio_relative_path_v6_root:8000;
|
||||
keepalive 8;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 80 default_server;
|
||||
access_log /var/log/nginx/verdaccio.log;
|
||||
charset utf-8;
|
||||
|
||||
location / {
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-NginX-Proxy true;
|
||||
proxy_pass http://verdaccio_v6_root;
|
||||
proxy_redirect off;
|
||||
}
|
||||
|
||||
location ~ ^/verdaccio/(.*)$ {
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-NginX-Proxy true;
|
||||
proxy_pass http://verdaccio_relative_v6/$1;
|
||||
proxy_redirect off;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
FROM nginx:1
|
||||
|
||||
COPY cert.crt /etc/nginx/cert.crt
|
||||
COPY cert.key /etc/nginx/cert.key
|
||||
COPY nginx-default.conf /etc/nginx/conf.d/default.conf
|
||||
COPY run.sh /run.sh
|
||||
|
||||
ENV REMOTE_URL="http://localhost:8080/"
|
||||
|
||||
CMD ["/run.sh"]
|
||||
5
docker-examples/v6/reverse_proxy/nginx/relative_path/nginx_ssl/README.md
Executable file
5
docker-examples/v6/reverse_proxy/nginx/relative_path/nginx_ssl/README.md
Executable file
@@ -0,0 +1,5 @@
|
||||
Example taken from:
|
||||
|
||||
[https://github.com/foxylion/docker-nginx-self-signed-https](https://github.com/foxylion/docker-nginx-self-signed-https)
|
||||
|
||||
by [@foxylion](https://github.com/foxylion)
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user