tardis-dev / tardis-machine

Locally runnable server with built-in data caching, providing both tick-level historical and consolidated real-time cryptocurrency market data via HTTP and WebSocket APIs
https://docs.tardis.dev/api/tardis-machine
Mozilla Public License 2.0
235 stars 46 forks source link

Unhandled Rejection at Promise Error: listen EADDRINUSE: address already in use :::8000 #17

Closed ajaye2 closed 1 year ago

ajaye2 commented 1 year ago

I am unable to stream data using Tardis-machine when I run: tardis-machine --api-key=API_KEY-HERE

I am getting the following error on EC2:

Unhandled Rejection at Promise Error: listen EADDRINUSE: address already in use :::8000 at Server.setupListenHandle [as _listen2] (node:net:1463:16) at listenInCluster (node:net:1511:12) at Server.listen (node:net:1599:7) at /home/ec2-user/.nvm/versions/node/v16.18.0/lib/node_modules/tardis-machine/dist/tardismachine.js:94:34 at new Promise () at TardisMachine.start (/home/ec2-user/.nvm/versions/node/v16.18.0/lib/node_modules/tardis-machine/dist/tardismachine.js:91:15) at start (/home/ec2-user/.nvm/versions/node/v16.18.0/lib/node_modules/tardis-machine/bin/tardis-machine.js:86:19) at Object. (/home/ec2-user/.nvm/versions/node/v16.18.0/lib/node_modules/tardis-machine/bin/tardis-machine.js:104:1) at Module._compile (node:internal/modules/cjs/loader:1155:14) at Object.Module._extensions..js (node:internal/modules/cjs/loader:1209:10) { code: 'EADDRINUSE', errno: -98, syscall: 'listen', address: '::', port: 8000 } Promise {

Error: listen EADDRINUSE: address already in use :::8000 at Server.setupListenHandle [as _listen2] (node:net:1463:16) at listenInCluster (node:net:1511:12) at Server.listen (node:net:1599:7) at /home/ec2-user/.nvm/versions/node/v16.18.0/lib/node_modules/tardis-machine/dist/tardismachine.js:94:34 at new Promise () at TardisMachine.start (/home/ec2-user/.nvm/versions/node/v16.18.0/lib/node_modules/tardis-machine/dist/tardismachine.js:91:15) at start (/home/ec2-user/.nvm/versions/node/v16.18.0/lib/node_modules/tardis-machine/bin/tardis-machine.js:86:19) at Object. (/home/ec2-user/.nvm/versions/node/v16.18.0/lib/node_modules/tardis-machine/bin/tardis-machine.js:104:1) at Module._compile (node:internal/modules/cjs/loader:1155:14) at Object.Module._extensions..js (node:internal/modules/cjs/loader:1209:10) { code: 'EADDRINUSE', errno: -98, syscall: 'listen', address: '::', port: 8000 } }
thaaddeus commented 1 year ago

You're already have another process running on port 8000 or no rights to use it?

ajaye2 commented 1 year ago

I currently don't have any other port running, I just launched the ec2 server. Then ran the following in order:

docker run -p 8000:8000 -p 8001:8001 -e "TM_API_KEY=apikey" -d tardisdev/tardis-machine

npx tardis-machine --api-key=apikey

The following ports are running after running the docker command:

sudo lsof -i -P -n | grep LISTEN:

docker-pr 4794 root 4u IPv4 .... 0t0 TCP :8001 (LISTEN) docker-pr 4799 root 4u IPv6 ... 0t0 TCP :8001 (LISTEN) docker-pr 4812 root 4u IPv4 .... 0t0 TCP :8000 (LISTEN) docker-pr 4817 root 4u IPv6 .... 0t0 TCP :8000 (LISTEN)