My newly installed proxy is not accepting connection. I see many of these in the logs
1|proxy | 2017-12-22 18:03 +00:00: Error: Cannot find module 'multi-hashing'
This is a virtual machine from a cloud vender with 1 core and 2GB RAM. Am I to assume my VM does not have AES-NI? If so, I'm looking at the following from the readme:
If your system doesn't have AES-NI, then it will throw an error during the node-multi-hashing install, as this requires AES-NI. If this is the case, go ahead and change the following line: "multi-hashing": "git+https://github.com/Snipa22/node-multi-hashing-aesni.git", to: "multi-hashing": "git://github.com/clintar/node-multi-hashing.git#Nan-2.0",
In your packages.json, do a npm install, and it should pass.
I did find 'packages.json', but what exactly does 'do a NPM install' mean?
Thanks
FYI, this was the output during install - maybe something else entirely is wrong...
nodeproxy@Ubuntu1:~$ curl -L https://raw.githubusercontent.com/Snipa22/xmr-node-proxy/master/install.sh | bash
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1566 100 1566 0 0 1506 0 0:00:01 0:00:01 --:--:-- 1507
This assumes that you are doing a green-field install. If you're not, please exit in the next 15 seconds.
Continuing install, this will prompt you for your password if you're not already running as root and you didn't enable passwordless sudo. Please do not run me as root!
Hit:1 http://mirrors.service.networklayer.com/ubuntu xenial InRelease
Get:2 http://mirrors.service.networklayer.com/ubuntu xenial-updates InRelease [102 kB]
Get:3 http://mirrors.service.networklayer.com/ubuntu xenial-backports InRelease [102 kB]
Get:4 http://mirrors.service.networklayer.com/ubuntu xenial-security InRelease [102 kB]
Get:5 http://mirrors.service.networklayer.com/ubuntu xenial-updates/main amd64 Packages [683 kB]
Get:6 http://mirrors.service.networklayer.com/ubuntu xenial-updates/universe amd64 Packages [566 kB]
Fetched 1,555 kB in 2s (739 kB/s)
Reading package lists... Done
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
linux-headers-generic linux-headers-virtual linux-image-virtual linux-virtual
0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded.
Reading package lists... Done
Building dependency tree
Reading state information... Done
build-essential is already the newest version (12.1ubuntu2).
liblzma-dev is already the newest version (5.1.1alpha+20120614-2ubuntu2).
libunbound-dev is already the newest version (1.5.8-1ubuntu1).
libunwind8-dev is already the newest version (1.1-4.1).
pkg-config is already the newest version (0.29.1-0ubuntu1).
screen is already the newest version (4.3.1-2build1).
libboost-all-dev is already the newest version (1.58.0.1ubuntu1).
libgtest-dev is already the newest version (1.7.0-4ubuntu1).
libzmq3-dev is already the newest version (4.1.4-7).
cmake is already the newest version (3.5.1-1ubuntu3).
curl is already the newest version (7.47.0-1ubuntu2.5).
git is already the newest version (1:2.7.4-0ubuntu1.3).
libevent-dev is already the newest version (2.0.21-stable-2ubuntu0.16.04.1).
libexpat1-dev is already the newest version (2.1.0-7ubuntu0.16.04.3).
libldns-dev is already the newest version (1.6.17-8ubuntu0.1).
libminiupnpc-dev is already the newest version (1.9.20140610-2ubuntu2.16.04.1).
ntp is already the newest version (1:4.2.8p4+dfsg-3ubuntu5.7).
python-virtualenv is already the newest version (15.0.1+ds-3ubuntu1).
python3-virtualenv is already the newest version (15.0.1+ds-3ubuntu1).
0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded.
Cloning into 'xmr-node-proxy'...
remote: Counting objects: 438, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 438 (delta 0), reused 0 (delta 0), pack-reused 434
Receiving objects: 100% (438/438), 85.45 KiB | 0 bytes/s, done.
Resolving deltas: 100% (252/252), done.
Checking connectivity... done.
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 11329 100 11329 0 0 55710 0 --:--:-- --:--:-- --:--:-- 55807
=> nvm is already installed in /home/nodeproxy/.nvm, trying to update using git
=> => Compressing and cleaning up git repository
Counting objects: 6681, done.
Compressing objects: 100% (6636/6636), done.
Writing objects: 100% (6681/6681), done.
Total 6681 (delta 4426), reused 2255 (delta 0)
=> nvm source string already in /home/nodeproxy/.bashrc
=> bash_completion source string already in /home/nodeproxy/.bashrc
=> You currently have modules installed globally with npm. These will no
=> longer be linked to the active version of Node when you install a new node
=> with nvm; and they may (depending on how you construct your $PATH)
=> override the binaries of modules installed with nvm:
/home/nodeproxy/.nvm/versions/node/v6.9.2/lib
└── pm2@2.9.1
=> If you wish to uninstall them at a later point (or re-install them under your
=> nvm Nodes), you can remove them from the system Node as follows:
$ nvm use system
$ npm uninstall -g a_module
=> Close and reopen your terminal to start using nvm or run the following to use it now:
export NVM_DIR="/home/nodeproxy/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
v6.9.2 is already installed.
Now using node v6.9.2 (npm v3.10.9)
npm WARN deprecated crypto@0.0.3: This package is no longer supported. It's now a built-in Node module. If you've depended on crypto, you should switch to the one that's built-in.
npm WARN deprecated node-uuid@1.4.8: Use uuid module instead
gyp WARN download NVM_NODEJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, please use NODEJS_ORG_MIRROR
gyp WARN download NVM_NODEJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, please use NODEJS_ORG_MIRROR
gyp WARN download NVM_NODEJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, please use NODEJS_ORG_MIRROR
make: Entering directory '/home/nodeproxy/xmr-node-proxy/node_modules/cryptonote-util/build'
CXX(target) Release/obj.target/cryptonote/src/main.o
CXX(target) Release/obj.target/cryptonote/src/cryptonote_core/cryptonote_format_utils.o
../src/cryptonote_core/cryptonote_format_utils.cpp: In function ‘bool cryptonote::check_proof_of_work(const cryptonote::block&, cryptonote::difficulty_type, crypto::hash&)’:
../src/cryptonote_core/cryptonote_format_utils.cpp:938:3: warning: no return statement in function returning non-void [-Wreturn-type]
}
^
CC(target) Release/obj.target/cryptonote/src/crypto/tree-hash.o
CXX(target) Release/obj.target/cryptonote/src/crypto/crypto.o
CC(target) Release/obj.target/cryptonote/src/crypto/crypto-ops.o
CC(target) Release/obj.target/cryptonote/src/crypto/crypto-ops-data.o
CC(target) Release/obj.target/cryptonote/src/crypto/hash.o
CC(target) Release/obj.target/cryptonote/src/crypto/keccak.o
CXX(target) Release/obj.target/cryptonote/src/common/base58.o
SOLINK_MODULE(target) Release/obj.target/cryptonote.node
COPY Release/cryptonote.node
make: Leaving directory '/home/nodeproxy/xmr-node-proxy/node_modules/cryptonote-util/build'
My newly installed proxy is not accepting connection. I see many of these in the logs 1|proxy | 2017-12-22 18:03 +00:00: Error: Cannot find module 'multi-hashing'
This is a virtual machine from a cloud vender with 1 core and 2GB RAM. Am I to assume my VM does not have AES-NI? If so, I'm looking at the following from the readme: If your system doesn't have AES-NI, then it will throw an error during the node-multi-hashing install, as this requires AES-NI. If this is the case, go ahead and change the following line: "multi-hashing": "git+https://github.com/Snipa22/node-multi-hashing-aesni.git", to: "multi-hashing": "git://github.com/clintar/node-multi-hashing.git#Nan-2.0", In your packages.json, do a npm install, and it should pass.
I did find 'packages.json', but what exactly does 'do a NPM install' mean?
Thanks
FYI, this was the output during install - maybe something else entirely is wrong...
nodeproxy@Ubuntu1:~$ curl -L https://raw.githubusercontent.com/Snipa22/xmr-node-proxy/master/install.sh | bash % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 1566 100 1566 0 0 1506 0 0:00:01 0:00:01 --:--:-- 1507 This assumes that you are doing a green-field install. If you're not, please exit in the next 15 seconds. Continuing install, this will prompt you for your password if you're not already running as root and you didn't enable passwordless sudo. Please do not run me as root! Hit:1 http://mirrors.service.networklayer.com/ubuntu xenial InRelease Get:2 http://mirrors.service.networklayer.com/ubuntu xenial-updates InRelease [102 kB] Get:3 http://mirrors.service.networklayer.com/ubuntu xenial-backports InRelease [102 kB] Get:4 http://mirrors.service.networklayer.com/ubuntu xenial-security InRelease [102 kB] Get:5 http://mirrors.service.networklayer.com/ubuntu xenial-updates/main amd64 Packages [683 kB] Get:6 http://mirrors.service.networklayer.com/ubuntu xenial-updates/universe amd64 Packages [566 kB] Fetched 1,555 kB in 2s (739 kB/s) Reading package lists... Done Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done The following packages have been kept back: linux-headers-generic linux-headers-virtual linux-image-virtual linux-virtual 0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded. Reading package lists... Done Building dependency tree Reading state information... Done build-essential is already the newest version (12.1ubuntu2). liblzma-dev is already the newest version (5.1.1alpha+20120614-2ubuntu2). libunbound-dev is already the newest version (1.5.8-1ubuntu1). libunwind8-dev is already the newest version (1.1-4.1). pkg-config is already the newest version (0.29.1-0ubuntu1). screen is already the newest version (4.3.1-2build1). libboost-all-dev is already the newest version (1.58.0.1ubuntu1). libgtest-dev is already the newest version (1.7.0-4ubuntu1). libzmq3-dev is already the newest version (4.1.4-7). cmake is already the newest version (3.5.1-1ubuntu3). curl is already the newest version (7.47.0-1ubuntu2.5). git is already the newest version (1:2.7.4-0ubuntu1.3). libevent-dev is already the newest version (2.0.21-stable-2ubuntu0.16.04.1). libexpat1-dev is already the newest version (2.1.0-7ubuntu0.16.04.3). libldns-dev is already the newest version (1.6.17-8ubuntu0.1). libminiupnpc-dev is already the newest version (1.9.20140610-2ubuntu2.16.04.1). ntp is already the newest version (1:4.2.8p4+dfsg-3ubuntu5.7). python-virtualenv is already the newest version (15.0.1+ds-3ubuntu1). python3-virtualenv is already the newest version (15.0.1+ds-3ubuntu1). 0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded. Cloning into 'xmr-node-proxy'... remote: Counting objects: 438, done. remote: Compressing objects: 100% (4/4), done. remote: Total 438 (delta 0), reused 0 (delta 0), pack-reused 434 Receiving objects: 100% (438/438), 85.45 KiB | 0 bytes/s, done. Resolving deltas: 100% (252/252), done. Checking connectivity... done. % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 11329 100 11329 0 0 55710 0 --:--:-- --:--:-- --:--:-- 55807 => nvm is already installed in /home/nodeproxy/.nvm, trying to update using git => => Compressing and cleaning up git repository Counting objects: 6681, done. Compressing objects: 100% (6636/6636), done. Writing objects: 100% (6681/6681), done. Total 6681 (delta 4426), reused 2255 (delta 0)
=> nvm source string already in /home/nodeproxy/.bashrc => bash_completion source string already in /home/nodeproxy/.bashrc => You currently have modules installed globally with
npm
. These will no => longer be linked to the active version of Node when you install a new node => withnvm
; and they may (depending on how you construct your$PATH
) => override the binaries of modules installed withnvm
:/home/nodeproxy/.nvm/versions/node/v6.9.2/lib └── pm2@2.9.1 => If you wish to uninstall them at a later point (or re-install them under your =>
nvm
Nodes), you can remove them from the system Node as follows:=> Close and reopen your terminal to start using nvm or run the following to use it now:
export NVM_DIR="/home/nodeproxy/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm v6.9.2 is already installed. Now using node v6.9.2 (npm v3.10.9) npm WARN deprecated crypto@0.0.3: This package is no longer supported. It's now a built-in Node module. If you've depended on crypto, you should switch to the one that's built-in. npm WARN deprecated node-uuid@1.4.8: Use uuid module instead
[bignum] Success: "/home/nodeproxy/xmr-node-proxy/node_modules/bignum/binding/bignum.node" is installed via remote
gyp WARN download NVM_NODEJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, please use NODEJS_ORG_MIRROR gyp WARN download NVM_NODEJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, please use NODEJS_ORG_MIRROR gyp WARN download NVM_NODEJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, please use NODEJS_ORG_MIRROR make: Entering directory '/home/nodeproxy/xmr-node-proxy/node_modules/cryptonote-util/build' CXX(target) Release/obj.target/cryptonote/src/main.o CXX(target) Release/obj.target/cryptonote/src/cryptonote_core/cryptonote_format_utils.o ../src/cryptonote_core/cryptonote_format_utils.cpp: In function ‘bool cryptonote::check_proof_of_work(const cryptonote::block&, cryptonote::difficulty_type, crypto::hash&)’: ../src/cryptonote_core/cryptonote_format_utils.cpp:938:3: warning: no return statement in function returning non-void [-Wreturn-type] } ^ CC(target) Release/obj.target/cryptonote/src/crypto/tree-hash.o CXX(target) Release/obj.target/cryptonote/src/crypto/crypto.o CC(target) Release/obj.target/cryptonote/src/crypto/crypto-ops.o CC(target) Release/obj.target/cryptonote/src/crypto/crypto-ops-data.o CC(target) Release/obj.target/cryptonote/src/crypto/hash.o CC(target) Release/obj.target/cryptonote/src/crypto/keccak.o CXX(target) Release/obj.target/cryptonote/src/common/base58.o SOLINK_MODULE(target) Release/obj.target/cryptonote.node COPY Release/cryptonote.node make: Leaving directory '/home/nodeproxy/xmr-node-proxy/node_modules/cryptonote-util/build'
gyp WARN download NVM_NODEJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, please use NODEJS_ORG_MIRROR gyp WARN download NVM_NODEJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, please use NODEJS_ORG_MIRROR gyp WARN download NVM_NODEJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, please use NODEJS_ORG_MIRROR make: Entering directory '/home/nodeproxy/xmr-node-proxy/node_modules/multi-hashing/build' CXX(target) Release/obj.target/multihashing/multihashing.o ../multihashing.cc: In constructor ‘CNAsyncWorker::CNAsyncWorker(Nan::Callback, char, uint32_t)’: ../multihashing.cc:80:16: warning: ‘CNAsyncWorker::input’ will be initialized after [-Wreorder] char input; ^ ../multihashing.cc:79:18: warning: ‘uint32_t CNAsyncWorker::input_len’ [-Wreorder] uint32_t input_len; ^ ../multihashing.cc:59:9: warning: when initialized here [-Wreorder] CNAsyncWorker(Nan::Callback callback, char input, uint32_t input_len) ^ ../multihashing.cc: In constructor ‘CNLAsyncWorker::CNLAsyncWorker(Nan::Callback, char, uint32_t)’: ../multihashing.cc:121:16: warning: ‘CNLAsyncWorker::input’ will be initialized after [-Wreorder] char input; ^ ../multihashing.cc:120:18: warning: ‘uint32_t CNLAsyncWorker::input_len’ [-Wreorder] uint32_t input_len; ^ ../multihashing.cc:100:9: warning: when initialized here [-Wreorder] CNLAsyncWorker(Nan::Callback callback, char input, uint32_t input_len) ^ CC(target) Release/obj.target/multihashing/cryptonight.o ../cryptonight.c: In function ‘cryptonight_hash’: ../cryptonight.c:333:14: warning: passing argument 1 of ‘CNKeccak’ from incompatible pointer type [-Wincompatible-pointer-types] CNKeccak(&ctx->state.hs, input); ^ ../cryptonight.c:228:13: note: expected ‘uint64_t {aka long unsigned int }’ but argument is of type ‘union hash_state ’ static void CNKeccak(uint64_t output, uint64_t input) ^ ../cryptonight.c:333:30: warning: passing argument 2 of ‘CNKeccak’ from incompatible pointer type [-Wincompatible-pointer-types] CNKeccak(&ctx->state.hs, input); ^ ../cryptonight.c:228:13: note: expected ‘uint64_t {aka long unsigned int }’ but argument is of type ‘const char ’ static void CNKeccak(uint64_t output, uint64_t input) ^ ../cryptonight.c:337:21: warning: pointer targets in passing argument 1 of ‘ExpandAESKey256’ differ in signedness [-Wpointer-sign] ExpandAESKey256(ExpandedKey); ^ ../cryptonight.c:84:20: note: expected ‘char ’ but argument is of type ‘uint8_t {aka unsigned char }’ static inline void ExpandAESKey256(char keybuf) ^ ../cryptonight.c:413:18: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types] uint64_t dst = &ctx->long_state[c[0] & 0x1FFFF0]; ^ ../cryptonight.c:425:21: warning: pointer targets in passing argument 1 of ‘ExpandAESKey256’ differ in signedness [-Wpointer-sign] ExpandAESKey256(ExpandedKey); ^ ../cryptonight.c:84:20: note: expected ‘char ’ but argument is of type ‘uint8_t {aka unsigned char }’ static inline void ExpandAESKey256(char keybuf) ^ ../cryptonight.c:456:16: warning: passing argument 1 of ‘CNKeccakF1600’ from incompatible pointer type [-Wincompatible-pointer-types] CNKeccakF1600(&ctx->state.hs); ^ ../cryptonight.c:161:13: note: expected ‘uint64_t {aka long unsigned int }’ but argument is of type ‘union hash_state ’ static void CNKeccakF1600(uint64_t st) ^ ../cryptonight.c:377:47: warning: unused variable ‘b’ [-Wunused-variable] uint64_t a[2] attribute((aligned(16))), b[2] attribute((aligned(16))); ^ ../cryptonight.c: At top level: ../cryptonight.c:267:13: warning: ‘mul’ defined but not used [-Wunused-function] static void mul(const uint8_t a, const uint8_t b, uint8_t res) { ^ ../cryptonight.c:271:13: warning: ‘mul_sum_xor_dst’ defined but not used [-Wunused-function] static void mul_sum_xor_dst(const uint8_t a, uint8_t c, uint8_t dst) { ^ ../cryptonight.c:281:13: warning: ‘sum_half_blocks’ defined but not used [-Wunused-function] static void sum_half_blocks(uint8_t a, const uint8_t b) { ^ ../cryptonight.c:299:13: warning: ‘swap_blocks’ defined but not used [-Wunused-function] static void swap_blocks(uint8_t a, uint8_t b) { ^ In file included from /usr/lib/gcc/x86_64-linux-gnu/5/include/x86intrin.h:43:0, from ../cryptonight.c:13: ../cryptonight.c: In function ‘ExpandAESKey256_sub2’: /usr/lib/gcc/x86_64-linux-gnu/5/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline ‘_mm_aeskeygenassist_si128’: target specific option mismatch _mm_aeskeygenassist_si128 (m128i X, const int __C) ^ ../cryptonight.c:71:7: error: called from here tmp4 = _mm_aeskeygenassist_si128(tmp1, 0x00); ^ multihashing.target.mk:114: recipe for target 'Release/obj.target/multihashing/cryptonight.o' failed make: *** [Release/obj.target/multihashing/cryptonight.o] Error 1 make: Leaving directory '/home/nodeproxy/xmr-node-proxy/node_modules/multi-hashing/build' gyp ERR! build error gyp ERR! stack Error:
make
failed with exit code: 2 gyp ERR! stack at ChildProcess.onExit (/home/nodeproxy/.nvm/versions/node/v6.9.2/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:276:23) gyp ERR! stack at emitTwo (events.js:106:13) gyp ERR! stack at ChildProcess.emit (events.js:191:7) gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:215:12) gyp ERR! System Linux 4.4.0-98-generic gyp ERR! command "/home/nodeproxy/.nvm/versions/node/v6.9.2/bin/node" "/home/nodeproxy/.nvm/versions/node/v6.9.2/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" gyp ERR! cwd /home/nodeproxy/xmr-node-proxy/node_modules/multi-hashing gyp ERR! node -v v6.9.2 gyp ERR! node-gyp -v v3.4.0 gyp ERR! not ok xmr-node-proxy@0.0.1 /home/nodeproxy/xmr-node-proxy ├─┬ async@2.1.4 │ └── lodash@4.17.4 ├─┬ bignum@0.12.5 │ ├── nan@2.8.0 │ └─┬ node-pre-gyp@0.6.39 │ ├── detect-libc@1.0.3 │ ├─┬ hawk@3.1.3 │ │ ├── boom@2.10.1 │ │ ├── cryptiles@2.0.5 │ │ └── sntp@1.0.9 │ ├─┬ nopt@4.0.1 │ │ ├── abbrev@1.1.1 │ │ └─┬ osenv@0.1.4 │ │ ├── os-homedir@1.0.2 │ │ └── os-tmpdir@1.0.2 │ ├─┬ npmlog@4.1.2 │ │ ├─┬ are-we-there-yet@1.1.4 │ │ │ └── delegates@1.0.0 │ │ ├── console-control-strings@1.1.0 │ │ ├─┬ gauge@2.7.4 │ │ │ ├── aproba@1.2.0 │ │ │ ├── has-unicode@2.0.1 │ │ │ ├── signal-exit@3.0.2 │ │ │ ├─┬ string-width@1.0.2 │ │ │ │ ├── code-point-at@1.1.0 │ │ │ │ └─┬ is-fullwidth-code-point@1.0.0 │ │ │ │ └── number-is-nan@1.0.1 │ │ │ ├─┬ strip-ansi@3.0.1 │ │ │ │ └── ansi-regex@2.1.1 │ │ │ └── wide-align@1.1.2 │ │ └── set-blocking@2.0.0 │ ├─┬ rc@1.2.2 │ │ ├── deep-extend@0.4.2 │ │ ├── ini@1.3.5 │ │ └── strip-json-comments@2.0.1 │ ├─┬ request@2.81.0 │ │ ├── form-data@2.1.4 │ │ ├─┬ har-validator@4.2.1 │ │ │ ├─┬ ajv@4.11.8 │ │ │ │ └─┬ json-stable-stringify@1.0.1 │ │ │ │ └── jsonify@0.0.0 │ │ │ └── har-schema@1.0.5 │ │ ├── performance-now@0.2.0 │ │ └── qs@6.4.0 │ ├─┬ rimraf@2.6.2 │ │ └─┬ glob@7.1.2 │ │ ├── fs.realpath@1.0.0 │ │ ├── inflight@1.0.6 │ │ ├─┬ minimatch@3.0.4 │ │ │ └─┬ brace-expansion@1.1.8 │ │ │ ├── balanced-match@1.0.0 │ │ │ └── concat-map@0.0.1 │ │ └── path-is-absolute@1.0.1 │ ├── semver@5.4.1 │ ├─┬ tar@2.2.1 │ │ ├── block-stream@0.0.9 │ │ └─┬ fstream@1.0.11 │ │ └── graceful-fs@4.1.11 │ └─┬ tar-pack@3.4.1 │ ├── fstream-ignore@1.0.5 │ ├─┬ once@1.4.0 │ │ └── wrappy@1.0.2 │ ├─┬ readable-stream@2.3.3 │ │ ├── core-util-is@1.0.2 │ │ ├── isarray@1.0.0 │ │ ├── process-nextick-args@1.0.7 │ │ ├── string_decoder@1.0.3 │ │ └── util-deprecate@1.0.2 │ └── uid-number@0.0.6 ├─┬ body-parser@1.18.2 │ ├── bytes@3.0.0 │ ├── content-type@1.0.4 │ ├─┬ debug@2.6.9 │ │ └── ms@2.0.0 │ ├── depd@1.1.1 │ ├─┬ http-errors@1.6.2 │ │ ├── inherits@2.0.3 │ │ ├── setprototypeof@1.0.3 │ │ └── statuses@1.4.0 │ ├── iconv-lite@0.4.19 │ ├─┬ on-finished@2.3.0 │ │ └── ee-first@1.1.1 │ ├── qs@6.5.1 │ ├─┬ raw-body@2.3.2 │ │ └── unpipe@1.0.0 │ └─┬ type-is@1.6.15 │ └── media-typer@0.3.0 ├── circular-buffer@1.0.2 ├─┬ cluster@0.7.7 │ ├── log@1.4.0 │ └─┬ mkdirp@0.5.1 │ └── minimist@0.0.8 ├─┬ cors@2.8.4 │ ├── object-assign@4.1.1 │ └── vary@1.1.2 ├── crypto@0.0.3 ├─┬ cryptonote-util@0.0.3 (git://github.com/Snipa22/node-cryptonote-util.git#49d6ec72d499bba9144d4a3ebdf4b62a4262aa8a) │ └── bindings@1.3.0 ├─┬ debug@2.5.1 │ └── ms@0.7.2 ├─┬ express@4.14.0 │ ├─┬ accepts@1.3.4 │ │ └── negotiator@0.6.1 │ ├── array-flatten@1.1.1 │ ├── content-disposition@0.5.1 │ ├── cookie@0.3.1 │ ├── cookie-signature@1.0.6 │ ├─┬ debug@2.2.0 │ │ └── ms@0.7.1 │ ├── encodeurl@1.0.1 │ ├── escape-html@1.0.3 │ ├── etag@1.7.0 │ ├─┬ finalhandler@0.5.0 │ │ ├─┬ debug@2.2.0 │ │ │ └── ms@0.7.1 │ │ └── statuses@1.3.1 │ ├── fresh@0.3.0 │ ├── merge-descriptors@1.0.1 │ ├── methods@1.1.2 │ ├── parseurl@1.3.2 │ ├── path-to-regexp@0.1.7 │ ├─┬ proxy-addr@1.1.5 │ │ ├── forwarded@0.1.2 │ │ └── ipaddr.js@1.4.0 │ ├── qs@6.2.0 │ ├── range-parser@1.2.0 │ ├─┬ send@0.14.1 │ │ ├── debug@2.2.0 │ │ ├── destroy@1.0.4 │ │ ├─┬ http-errors@1.5.1 │ │ │ └── setprototypeof@1.0.2 │ │ ├── mime@1.3.4 │ │ ├── ms@0.7.1 │ │ └── statuses@1.3.1 │ ├─┬ serve-static@1.11.2 │ │ └─┬ send@0.14.2 │ │ ├─┬ debug@2.2.0 │ │ │ └── ms@0.7.1 │ │ ├─┬ http-errors@1.5.1 │ │ │ └── setprototypeof@1.0.2 │ │ └── statuses@1.3.1 │ └── utils-merge@1.0.0 ├─┬ jsonwebtoken@7.4.3 │ ├─┬ joi@6.10.1 │ │ ├── hoek@2.16.3 │ │ ├── isemail@1.2.0 │ │ └── topo@1.1.0 │ ├─┬ jws@3.1.4 │ │ ├── base64url@2.0.0 │ │ └─┬ jwa@1.1.5 │ │ ├── buffer-equal-constant-time@1.0.1 │ │ └── ecdsa-sig-formatter@1.0.9 │ ├── lodash.once@4.1.1 │ ├── ms@2.1.1 │ └── xtend@4.0.1 ├── minimist@1.2.0 ├── moment@2.17.1 ├── range@0.0.3 ├─┬ request@2.83.0 │ ├── aws-sign2@0.7.0 │ ├── aws4@1.6.0 │ ├── caseless@0.12.0 │ ├─┬ combined-stream@1.0.5 │ │ └── delayed-stream@1.0.0 │ ├── extend@3.0.1 │ ├── forever-agent@0.6.1 │ ├─┬ form-data@2.3.1 │ │ └── asynckit@0.4.0 │ ├─┬ har-validator@5.0.3 │ │ ├─┬ ajv@5.5.2 │ │ │ ├── co@4.6.0 │ │ │ ├── fast-deep-equal@1.0.0 │ │ │ ├── fast-json-stable-stringify@2.0.0 │ │ │ └── json-schema-traverse@0.3.1 │ │ └── har-schema@2.0.0 │ ├─┬ hawk@6.0.2 │ │ ├── boom@4.3.1 │ │ ├─┬ cryptiles@3.1.2 │ │ │ └── boom@5.2.0 │ │ ├── hoek@4.2.0 │ │ └── sntp@2.1.0 │ ├─┬ http-signature@1.2.0 │ │ ├── assert-plus@1.0.0 │ │ ├─┬ jsprim@1.4.1 │ │ │ ├── assert-plus@1.0.0 │ │ │ ├── extsprintf@1.3.0 │ │ │ ├── json-schema@0.2.3 │ │ │ └─┬ verror@1.10.0 │ │ │ └── assert-plus@1.0.0 │ │ └─┬ sshpk@1.13.1 │ │ ├── asn1@0.2.3 │ │ ├── assert-plus@1.0.0 │ │ ├── bcrypt-pbkdf@1.0.1 │ │ ├─┬ dashdash@1.14.1 │ │ │ └── assert-plus@1.0.0 │ │ ├── ecc-jsbn@0.1.1 │ │ ├─┬ getpass@0.1.7 │ │ │ └── assert-plus@1.0.0 │ │ ├── jsbn@0.1.1 │ │ └── tweetnacl@0.14.5 │ ├── is-typedarray@1.0.0 │ ├── isstream@0.1.2 │ ├── json-stringify-safe@5.0.1 │ ├─┬ mime-types@2.1.17 │ │ └── mime-db@1.30.0 │ ├── oauth-sign@0.8.2 │ ├── performance-now@2.1.0 │ ├── qs@6.5.1 │ ├── safe-buffer@5.1.1 │ ├── stringstream@0.0.5 │ ├─┬ tough-cookie@2.3.3 │ │ └── punycode@1.4.1 │ ├── tunnel-agent@0.6.0 │ └── uuid@3.1.0 ├─┬ request-json@0.6.1 │ ├── depd@1.1.0 │ └─┬ request@2.74.0 │ ├── aws-sign2@0.6.0 │ ├─┬ bl@1.1.2 │ │ └─┬ readable-stream@2.0.6 │ │ └── string_decoder@0.10.31 │ ├── caseless@0.11.0 │ ├── form-data@1.0.1 │ ├─┬ har-validator@2.0.6 │ │ ├─┬ chalk@1.1.3 │ │ │ ├── ansi-styles@2.2.1 │ │ │ ├── escape-string-regexp@1.0.5 │ │ │ ├── has-ansi@2.0.0 │ │ │ └── supports-color@2.0.0 │ │ ├── commander@2.12.2 │ │ ├─┬ is-my-json-valid@2.17.1 │ │ │ ├── generate-function@2.0.0 │ │ │ ├─┬ generate-object-property@1.2.0 │ │ │ │ └── is-property@1.0.2 │ │ │ └── jsonpointer@4.0.1 │ │ └─┬ pinkie-promise@2.0.1 │ │ └── pinkie@2.0.4 │ ├─┬ http-signature@1.1.1 │ │ └── assert-plus@0.2.0 │ ├── node-uuid@1.4.8 │ ├── qs@6.2.3 │ └── tunnel-agent@0.4.3 ├── sprintf-js@1.1.1 └── uuid@3.0.1npm WARN optional SKIPPING OPTIONAL DEPENDENCY: multi-hashing@0.0.10 (node_modules/multi-hashing): npm WARN optional SKIPPING OPTIONAL DEPENDENCY: multi-hashing@0.0.10 install:
node-gyp rebuild
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1 /home/nodeproxy/.nvm/versions/node/v6.9.2/bin/pm2 -> /home/nodeproxy/.nvm/versions/node/v6.9.2/lib/node_modules/pm2/bin/pm2 /home/nodeproxy/.nvm/versions/node/v6.9.2/bin/pm2-dev -> /home/nodeproxy/.nvm/versions/node/v6.9.2/lib/node_modules/pm2/bin/pm2-dev /home/nodeproxy/.nvm/versions/node/v6.9.2/bin/pm2-docker -> /home/nodeproxy/.nvm/versions/node/v6.9.2/lib/node_modules/pm2/bin/pm2-docker /home/nodeproxy/.nvm/versions/node/v6.9.2/bin/pm2-runtime -> /home/nodeproxy/.nvm/versions/node/v6.9.2/lib/node_modules/pm2/bin/pm2-runtime /home/nodeproxy/.nvm/versions/node/v6.9.2/lib └── pm2@2.9.1npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules/pm2/node_modules/chokidar/node_modules/fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.1.3: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"}) Generating a 2048 bit RSA private key .+++ ...........................+++ writing new private key to 'cert.key'
[PM2] Spawning PM2 daemon with pm2_home=/home/nodeproxy/.pm2 [PM2] PM2 Successfully daemonized [PM2][Module] Starting module pm2-logrotate [PM2][WARN] Applications pm2-logrotate not running, starting... [PM2] App [pm2-logrotate] launched (1 instances) [PM2][Module] Monitoring module behavior for potential issue (5secs...) ┌──────────┬────┬──────┬─────┬────────┬─────────┬────────┬─────┬─────┬──────┬──────────┐ │ App name │ id │ mode │ pid │ status │ restart │ uptime │ cpu │ mem │ user │ watching │ └──────────┴────┴──────┴─────┴────────┴─────────┴────────┴─────┴─────┴──────┴──────────┘ Module activated ┌───────────────┬─────────┬────────────┬────────┬─────────┬─────┬─────────────┬───────────┐ │ Module │ version │ target PID │ status │ restart │ cpu │ memory │ user │ ├───────────────┼─────────┼────────────┼────────┼─────────┼─────┼─────────────┼───────────┤ │ pm2-logrotate │ N/A │ N/A │ online │ 0 │ 1% │ 23.430 MB │ nodeproxy │ └───────────────┴─────────┴────────────┴────────┴─────────┴─────┴─────────────┴───────────┘ Use
pm2 show <id|name>
to get more details about an app [PM2] Init System found: systemd Platform systemd Template [Unit] Description=PM2 process manager Documentation=https://pm2.keymetrics.io/ After=network.target[Service] Type=forking User=nodeproxy LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity Environment=PATH=/home/nodeproxy/.nvm/versions/node/v6.9.2/bin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin Environment=PM2_HOME=/home/nodeproxy/.pm2 PIDFile=/home/nodeproxy/.pm2/pm2.pid
ExecStart=/home/nodeproxy/.nvm/versions/node/v6.9.2/lib/node_modules/pm2/bin/pm2 resurrect ExecReload=/home/nodeproxy/.nvm/versions/node/v6.9.2/lib/node_modules/pm2/bin/pm2 reload all ExecStop=/home/nodeproxy/.nvm/versions/node/v6.9.2/lib/node_modules/pm2/bin/pm2 kill
[Install] WantedBy=multi-user.target
Target path /etc/systemd/system/pm2-nodeproxy.service Command list [ 'systemctl enable pm2-nodeproxy', 'systemctl start pm2-nodeproxy', 'systemctl daemon-reload', 'systemctl status pm2-nodeproxy' ] [PM2] Writing init configuration in /etc/systemd/system/pm2-nodeproxy.service [PM2] Making script booting at startup...
Dec 22 18:16:54 Ubuntu1 pm2[10691]: │ proxy │ 1 │ fork │ 10700 │ online │ 0 │ 0s │ 16% │ 21.5 MB │ nodeproxy │ disabled │ Dec 22 18:16:54 Ubuntu1 pm2[10691]: └──────────┴────┴──────┴───────┴────────┴─────────┴────────┴─────┴───────────┴───────────┴──────────┘ Dec 22 18:16:54 Ubuntu1 pm2[10691]: Module activated Dec 22 18:16:54 Ubuntu1 pm2[10691]: ┌───────────────┬─────────┬────────────┬────────┬─────────┬─────┬─────────────┬───────────┐ Dec 22 18:16:54 Ubuntu1 pm2[10691]: │ Module │ version │ target PID │ status │ restart │ cpu │ memory │ user │ Dec 22 18:16:54 Ubuntu1 pm2[10691]: ├───────────────┼─────────┼────────────┼────────┼─────────┼─────┼─────────────┼───────────┤ Dec 22 18:16:54 Ubuntu1 pm2[10691]: │ pm2-logrotate │ 2.4.0 │ N/A │ online │ 0 │ 0% │ 42.223 MB │ nodeproxy │ Dec 22 18:16:54 Ubuntu1 pm2[10691]: └───────────────┴─────────┴────────────┴────────┴─────────┴─────┴─────────────┴───────────┘ Dec 22 18:16:54 Ubuntu1 pm2[10691]: Use
pm2 show <id|name>
to get more details about an app Dec 22 18:16:54 Ubuntu1 systemd[1]: Started PM2 process manager. [DONE] +---------------------------------------+ [PM2] Freeze a process list on reboot via: $ pm2 save[PM2] Remove init script via: $ pm2 unstartup systemd Installing pm2-logrotate in the background! You're setup with a shiny new proxy! Now, go configure it and have fun. nodeproxy@Ubuntu1:~$ [PM2][Module] Installing module pm2-logrotate [PM2][Module] Module already installed. Updating. [PM2] Applying action deleteProcessId on app [0](ids: 0) [PM2] pm2-logrotate ✓ In memory process deleted [PM2][Module] Calling [NPM] to install pm2-logrotate ... /home/nodeproxy/.pm2/modules/pm2-logrotate └─┬ pm2-logrotate@2.4.0 ├── graceful-fs@4.1.11 ├─┬ moment-timezone@0.5.14 │ └── moment@2.20.1 ├─┬ node-schedule@1.2.5 │ ├─┬ cron-parser@2.4.3 │ │ └─┬ is-nan@1.2.1 │ │ └─┬ define-properties@1.1.2 │ │ ├── foreach@2.0.5 │ │ └── object-keys@1.0.11 │ ├── long-timeout@0.1.1 │ └── sorted-array-functions@1.0.0 ├─┬ pm2@2.9.1 │ ├─┬ async@2.6.0 │ │ └── lodash@4.17.4 │ ├── blessed@0.1.81 │ ├─┬ chalk@1.1.3 │ │ ├── ansi-styles@2.2.1 │ │ ├── escape-string-regexp@1.0.5 │ │ ├─┬ has-ansi@2.0.0 │ │ │ └── ansi-regex@2.1.1 │ │ ├── strip-ansi@3.0.1 │ │ └── supports-color@2.0.0 │ ├─┬ chokidar@1.7.0 │ │ ├─┬ anymatch@1.3.2 │ │ │ ├─┬ micromatch@2.3.11 │ │ │ │ ├─┬ arr-diff@2.0.0 │ │ │ │ │ └── arr-flatten@1.1.0 │ │ │ │ ├── array-unique@0.2.1 │ │ │ │ ├─┬ braces@1.8.5 │ │ │ │ │ ├─┬ expand-range@1.8.2 │ │ │ │ │ │ └─┬ fill-range@2.2.3 │ │ │ │ │ │ ├── is-number@2.1.0 │ │ │ │ │ │ ├── isobject@2.1.0 │ │ │ │ │ │ ├─┬ randomatic@1.1.7 │ │ │ │ │ │ │ ├─┬ is-number@3.0.0 │ │ │ │ │ │ │ │ └── kind-of@3.2.2 │ │ │ │ │ │ │ └── kind-of@4.0.0 │ │ │ │ │ │ └── repeat-string@1.6.1 │ │ │ │ │ ├── preserve@0.2.0 │ │ │ │ │ └── repeat-element@1.1.2 │ │ │ │ ├─┬ expand-brackets@0.1.5 │ │ │ │ │ └── is-posix-bracket@0.1.1 │ │ │ │ ├── extglob@0.3.2 │ │ │ │ ├── filename-regex@2.0.1 │ │ │ │ ├─┬ kind-of@3.2.2 │ │ │ │ │ └── is-buffer@1.1.6 │ │ │ │ ├─┬ object.omit@2.0.1 │ │ │ │ │ ├─┬ for-own@0.1.5 │ │ │ │ │ │ └── for-in@1.0.2 │ │ │ │ │ └── is-extendable@0.1.1 │ │ │ │ ├─┬ parse-glob@3.0.4 │ │ │ │ │ ├── glob-base@0.3.0 │ │ │ │ │ └── is-dotfile@1.0.3 │ │ │ │ └─┬ regex-cache@0.4.4 │ │ │ │ └─┬ is-equal-shallow@0.1.3 │ │ │ │ └── is-primitive@2.0.0 │ │ │ └─┬ normalize-path@2.1.1 │ │ │ └── remove-trailing-separator@1.1.0 │ │ ├── async-each@1.0.1 │ │ ├── glob-parent@2.0.0 │ │ ├── inherits@2.0.3 │ │ ├─┬ is-binary-path@1.0.1 │ │ │ └── binary-extensions@1.11.0 │ │ ├─┬ is-glob@2.0.1 │ │ │ └── is-extglob@1.0.0 │ │ ├── path-is-absolute@1.0.1 │ │ └─┬ readdirp@2.1.0 │ │ ├─┬ minimatch@3.0.4 │ │ │ └─┬ brace-expansion@1.1.8 │ │ │ ├── balanced-match@1.0.0 │ │ │ └── concat-map@0.0.1 │ │ ├─┬ readable-stream@2.3.3 │ │ │ ├── core-util-is@1.0.2 │ │ │ ├── isarray@1.0.0 │ │ │ ├── process-nextick-args@1.0.7 │ │ │ ├── safe-buffer@5.1.1 │ │ │ ├── string_decoder@1.0.3 │ │ │ └── util-deprecate@1.0.2 │ │ └── set-immediate-shim@1.0.1 │ ├── cli-table-redemption@1.0.1 │ ├── commander@2.12.2 │ ├── cron@1.3.0 │ ├─┬ debug@3.1.0 │ │ └── ms@2.0.0 │ ├── eventemitter2@1.0.5 │ ├── fclone@1.0.11 │ ├── gkt@1.0.0 │ ├─┬ mkdirp@0.5.1 │ │ └── minimist@0.0.8 │ ├─┬ needle@1.6.0 │ │ ├── debug@2.6.9 │ │ └── iconv-lite@0.4.19 │ ├─┬ nssocket@0.6.0 │ │ ├── eventemitter2@0.4.14 │ │ └── lazy@1.0.11 │ ├── pidusage@1.2.0 │ ├─┬ pm2-axon@3.1.0 │ │ ├── amp@0.3.1 │ │ ├── amp-message@0.1.2 │ │ └── escape-regexp@0.0.1 │ ├── pm2-axon-rpc@0.5.0 │ ├─┬ pm2-deploy@0.3.9 │ │ ├── async@1.5.2 │ │ └── tv4@1.3.0 │ ├─┬ pm2-multimeter@0.1.2 │ │ └── charm@0.1.2 │ ├─┬ promptly@2.2.0 │ │ └─┬ read@1.0.7 │ │ └── mute-stream@0.0.7 │ ├── semver@5.4.1 │ ├─┬ shelljs@0.7.8 │ │ ├─┬ glob@7.1.2 │ │ │ ├── fs.realpath@1.0.0 │ │ │ ├─┬ inflight@1.0.6 │ │ │ │ └── wrappy@1.0.2 │ │ │ └── once@1.4.0 │ │ ├── interpret@1.1.0 │ │ └─┬ rechoir@0.6.2 │ │ └─┬ resolve@1.5.0 │ │ └── path-parse@1.0.5 │ ├─┬ source-map-support@0.5.0 │ │ └── source-map@0.6.1 │ ├── sprintf-js@1.1.1 │ ├─┬ vizion@0.2.13 │ │ └── async@1.5.2 │ └─┬ yamljs@0.3.0 │ └─┬ argparse@1.0.9 │ └── sprintf-js@1.0.3 └─┬ pmx@1.5.5 ├── json-stringify-safe@5.0.1 └─┬ vxx@1.2.2 ├─┬ continuation-local-storage@3.2.1 │ ├── async-listener@0.6.9 │ └── emitter-listener@1.1.1 ├── debug@2.6.9 ├── extend@3.0.1 ├── is@3.2.1 ├── lodash.findindex@4.6.0 ├── lodash.isequal@4.5.0 ├── lodash.merge@4.6.0 ├── methods@1.1.2 ├── shimmer@1.2.0 └── uuid@3.1.0
[PM2][Module] Module downloaded [PM2][WARN] Applications pm2-logrotate not running, starting... [PM2] App [pm2-logrotate] launched (1 instances) [PM2][Module] Monitoring module behavior for potential issue (5secs...) == pm2-logrotate == ┌────────────────┬─────────────────────┐ │ key │ value │ ├────────────────┼─────────────────────┤ │ max_size │ 10M │ │ retain │ all │ │ compress │ false │ │ dateFormat │ YYYY-MM-DD_HH-mm-ss │ │ workerInterval │ 30 │ │ rotateInterval │ 0 0 * │ │ rotateModule │ true │ └────────────────┴─────────────────────┘ [PM2][Module] Module successfully installed and launched [PM2][Module] Edit configuration via:
pm2 conf
┌──────────┬────┬──────┬───────┬────────┬─────────┬────────┬─────┬───────────┬───────────┬──────────┐ │ App name │ id │ mode │ pid │ status │ restart │ uptime │ cpu │ mem │ user │ watching │ ├──────────┼────┼──────┼───────┼────────┼─────────┼────────┼─────┼───────────┼───────────┼──────────┤ │ proxy │ 1 │ fork │ 12169 │ online │ 37 │ 0s │ 33% │ 22.3 MB │ nodeproxy │ disabled │ └──────────┴────┴──────┴───────┴────────┴─────────┴────────┴─────┴───────────┴───────────┴──────────┘ Module activated ┌───────────────┬─────────┬────────────┬────────┬─────────┬─────┬─────────────┬───────────┐ │ Module │ version │ target PID │ status │ restart │ cpu │ memory │ user │ ├───────────────┼─────────┼────────────┼────────┼─────────┼─────┼─────────────┼───────────┤ │ pm2-logrotate │ N/A │ N/A │ online │ 0 │ 15% │ 24.211 MB │ nodeproxy │ └───────────────┴─────────┴────────────┴────────┴─────────┴─────┴─────────────┴───────────┘ Usepm2 show <id|name>
to get more details about an app