diff --git a/README.md b/README.md index 5c8ea0c0..d591f1cd 100644 --- a/README.md +++ b/README.md @@ -33,9 +33,13 @@ The system comprises the following components: ## Code Prerequisites In order to build and run the code, you need the following installed: - - [Node](https://nodejs.org/) (version `16.13.0`) - - [NPM](http://npmjs.org/) (version `8.1.0`) - - [Wine](https://www.winehq.org/download), if you would like to generate binaries for Windows. + - [Node](https://nodejs.org/en/download/) LTS (`lts/gallium`, version `16.13.0`) + - [NPM](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) (version `8.1.0`) + - Manager-specic + - [Wine](https://www.winehq.org/download), if you would like to generate binaries for Windows. + - Server-specific + - [Docker](https://docs.docker.com/engine/install/), to build the Docker image and to run the integration test. + - [docker-compose](https://docs.docker.com/compose/install/), to run the integration test. > 💡 NOTE: if you have `nvm` installed, run `nvm use` to switch to the correct node version! diff --git a/package-lock.json b/package-lock.json index 1164ec61..46f6a078 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,8 +20,8 @@ "typescript": "^4" }, "engines": { - "node": ">=16.13.0", - "npm": ">=8.1.0" + "node": "^16.13.0", + "npm": "^8.1.0" } }, "node_modules/@babel/code-frame": { @@ -13611,6 +13611,24 @@ "resolved": "src/shadowbox", "link": true }, + "node_modules/outline-shadowsocksconfig": { + "version": "0.2.0", + "resolved": "git+ssh://git@github.com/Jigsaw-Code/outline-shadowsocksconfig.git#add590ed57277653d02dd2031ae301500ae881e1", + "license": "Apache-2.0", + "dependencies": { + "ipaddr.js": "^2.0.0", + "js-base64": "^3.5.2", + "punycode": "^1.4.1" + } + }, + "node_modules/outline-shadowsocksconfig/node_modules/ipaddr.js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", + "engines": { + "node": ">= 10" + } + }, "node_modules/p-cancelable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", @@ -16858,25 +16876,6 @@ "sha.js": "bin.js" } }, - "node_modules/ShadowsocksConfig": { - "name": "outline-shadowsocksconfig", - "version": "0.1.4", - "resolved": "git+ssh://git@github.com/Jigsaw-Code/outline-shadowsocksconfig.git#88c9459b12d8810748d76295110f71c988d8a196", - "license": "Apache-2.0", - "dependencies": { - "ipaddr.js": "^2.0.0", - "js-base64": "^3.5.2", - "punycode": "^1.4.1" - } - }, - "node_modules/ShadowsocksConfig/node_modules/ipaddr.js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", - "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", - "engines": { - "node": ">= 10" - } - }, "node_modules/shallow-clone": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", @@ -21471,18 +21470,18 @@ }, "src/shadowbox": { "name": "outline-server", - "version": "1.6.1", + "version": "1.6.2", "license": "Apache", "dependencies": { "ip-regex": "^4.1.0", "js-yaml": "^3.12.0", "node-fetch": "^2.6.1", + "outline-shadowsocksconfig": "github:Jigsaw-Code/outline-shadowsocksconfig#v0.2.0", "prom-client": "^11.1.3", "randomstring": "^1.1.5", "restify": "^8.5.1", "restify-cors-middleware": "^1.1.1", "restify-errors": "^8.0.2", - "ShadowsocksConfig": "Jigsaw-Code/outline-shadowsocksconfig#v0.1.4", "uuid": "^3.1.0" }, "devDependencies": { @@ -32935,12 +32934,12 @@ "ip-regex": "^4.1.0", "js-yaml": "^3.12.0", "node-fetch": "^2.6.1", + "outline-shadowsocksconfig": "github:Jigsaw-Code/outline-shadowsocksconfig#v0.2.0", "prom-client": "^11.1.3", "randomstring": "^1.1.5", "restify": "^8.5.1", "restify-cors-middleware": "^1.1.1", "restify-errors": "^8.0.2", - "ShadowsocksConfig": "Jigsaw-Code/outline-shadowsocksconfig#v0.1.4", "tmp": "^0.2.1", "ts-loader": "^7.0.4", "uuid": "^3.1.0", @@ -32956,6 +32955,22 @@ } } }, + "outline-shadowsocksconfig": { + "version": "git+ssh://git@github.com/Jigsaw-Code/outline-shadowsocksconfig.git#add590ed57277653d02dd2031ae301500ae881e1", + "from": "outline-shadowsocksconfig@github:Jigsaw-Code/outline-shadowsocksconfig#v0.2.0", + "requires": { + "ipaddr.js": "^2.0.0", + "js-base64": "^3.5.2", + "punycode": "^1.4.1" + }, + "dependencies": { + "ipaddr.js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==" + } + } + }, "p-cancelable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", @@ -35610,22 +35625,6 @@ "safe-buffer": "^5.0.1" } }, - "ShadowsocksConfig": { - "version": "git+ssh://git@github.com/Jigsaw-Code/outline-shadowsocksconfig.git#88c9459b12d8810748d76295110f71c988d8a196", - "from": "ShadowsocksConfig@Jigsaw-Code/outline-shadowsocksconfig#v0.1.4", - "requires": { - "ipaddr.js": "^2.0.0", - "js-base64": "^3.5.2", - "punycode": "^1.4.1" - }, - "dependencies": { - "ipaddr.js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", - "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==" - } - } - }, "shallow-clone": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", diff --git a/src/shadowbox/docker/Dockerfile b/src/shadowbox/docker/Dockerfile index d8dc7fd3..c040e589 100644 --- a/src/shadowbox/docker/Dockerfile +++ b/src/shadowbox/docker/Dockerfile @@ -37,7 +37,7 @@ RUN ROOT_DIR=/ npm run action shadowbox/server/build FROM ${NODE_IMAGE} # Save metadata on the software versions we are using. -LABEL shadowbox.node_version=16.12.0 +LABEL shadowbox.node_version=16.14.0 ARG GITHUB_RELEASE LABEL shadowbox.github.release="${GITHUB_RELEASE}" diff --git a/src/shadowbox/docker/build.action.sh b/src/shadowbox/docker/build.action.sh index fbbcc352..59010bdb 100755 --- a/src/shadowbox/docker/build.action.sh +++ b/src/shadowbox/docker/build.action.sh @@ -19,9 +19,9 @@ export DOCKER_CONTENT_TRUST="${DOCKER_CONTENT_TRUST:-1}" export DOCKER_BUILDKIT=1 # Newer node images have no valid content trust data. -# Pin the image node:16.12-alpine3.14 by hash. +# Pin the image node:16.14.0-alpine3.15 by hash. # See versions at https://hub.docker.com/_/node/ -readonly NODE_IMAGE="node@sha256:b45a4d2e291af6ed859c8e54d4f70389443373b9293c469b80b5435046127a75" +readonly NODE_IMAGE="node@sha256:425c81a04546a543da824e67c91d4a603af16fbc3d875ee2f276acf8ec2b1577" # Doing an explicit `docker pull` of the container base image to work around an issue where # Travis fails to pull the base image when using BuildKit. Seems to be related to: diff --git a/src/shadowbox/package.json b/src/shadowbox/package.json index e39629ca..fc83cadc 100644 --- a/src/shadowbox/package.json +++ b/src/shadowbox/package.json @@ -1,7 +1,7 @@ { "name": "outline-server", "private": true, - "version": "1.6.1", + "version": "1.6.2", "description": "Outline server", "main": "build/server/main.js", "author": "Outline", @@ -10,10 +10,10 @@ "Using https:// for ShadowsocksConfig to avoid adding git in the Docker image" ], "dependencies": { - "ShadowsocksConfig": "Jigsaw-Code/outline-shadowsocksconfig#v0.1.4", "ip-regex": "^4.1.0", "js-yaml": "^3.12.0", "node-fetch": "^2.6.1", + "outline-shadowsocksconfig": "github:Jigsaw-Code/outline-shadowsocksconfig#v0.2.0", "prom-client": "^11.1.3", "randomstring": "^1.1.5", "restify": "^8.5.1", diff --git a/src/shadowbox/server/manager_service.ts b/src/shadowbox/server/manager_service.ts index 8dd934fa..68dd5970 100644 --- a/src/shadowbox/server/manager_service.ts +++ b/src/shadowbox/server/manager_service.ts @@ -16,7 +16,7 @@ import * as crypto from 'crypto'; import * as ipRegex from 'ip-regex'; import * as restify from 'restify'; import * as restifyErrors from 'restify-errors'; -import {makeConfig, SIP002_URI} from 'ShadowsocksConfig'; +import {makeConfig, SIP002_URI} from 'outline-shadowsocksconfig'; import {JsonConfig} from '../infrastructure/json_config'; import * as logging from '../infrastructure/logging'; diff --git a/third_party/prometheus/METADATA b/third_party/prometheus/METADATA index 17c95e59..8ca9dd5c 100644 --- a/third_party/prometheus/METADATA +++ b/third_party/prometheus/METADATA @@ -10,9 +10,13 @@ third_party { } url { type: ARCHIVE - value: "https://github.com/prometheus/prometheus/releases/download/v2.18.1/prometheus-2.18.1.linux-amd64.tar.gz" + value: "https://github.com/prometheus/prometheus/releases/download/v2.33.5/prometheus-2.33.5.linux-amd64.tar.gz" } - version: "2.18.1" - last_upgrade_date { year: 2020 month: 5 day: 14 } + url { + type: ARCHIVE + value: "https://github.com/prometheus/prometheus/releases/download/v2.33.5/prometheus-2.33.5.darwin-amd64.tar.gz" + } + version: "2.33.5" + last_upgrade_date { year: 2022 month: 3 day: 8 } license_type: PERMISSIVE } diff --git a/third_party/prometheus/linux/prometheus b/third_party/prometheus/linux/prometheus index 1f6e116f..bafe400c 100755 Binary files a/third_party/prometheus/linux/prometheus and b/third_party/prometheus/linux/prometheus differ diff --git a/third_party/prometheus/macos/prometheus b/third_party/prometheus/macos/prometheus index 63041737..d90d3370 100755 Binary files a/third_party/prometheus/macos/prometheus and b/third_party/prometheus/macos/prometheus differ