sandbox-debugger-server
v0.2.45
Published
sandbox debugger server broker for node
Downloads
85
Maintainers
Readme
🐛 sandbox-debugger 🐛
Debug a Node.js process anywhere using chrome://inspect
or node-inspect
| node debug port 9229 | ⟷ | sandbox debug client | ⟷ | sandbox debug broker | | :-- | :-: | --: | --: | --: |
Interactive debugging using inspect, debug the same way you do with a local process.
Supports a Node.js process running
- [x] on a machine you can't ssh / don't have access to
- [x] in a Docker Container with no exposed ports
- [x] on Travis CI
- [x] on Github Actions
- [x] on Bitbucket Pipelines
- [x] on GitLab CI/CD
- [x] on AWS CodeBuild
- [x] on AWS Lambda
- [x] on Heroku
- [x] on Runkit
- [x] anywhere that allows outbound internet traffic to port 80
How it works?
Node opens a websocket when in debug mode, both the sandbox server and client work by piping the websocket data via the broker.
Run sandbox server
The server is used as a gatekeeper for the debug messages.
npx sandbox-debugger-server
or
ᐅ docker run \
--name sandbox-debugger \
-ti \
--rm \
-p 9229:9229 \
jameskyburz/sandbox-debugger
The server will output
Debug server started!
- To debug a new process:
export DEBUG_PROXY=xxx.xxx.x.xxx:9229
node index.js
- To debug an existing process:
export DEBUG_PROXY=xxx.xxx.x.xxx:9229
export DEBUG_PID=<pid of node process>
npx sandbox-debugger
- Find pid of first running Node.js process
ps ax |
grep 'no[d]e ' |
awk '{print $1}' |
head -n 1
- Allow remote access to me:
npx ngrok http 9229 --scheme http
Create a tunnel to our sandbox server process
Using ngrok you can tunnel to the locally running broker from for example aws lambda.
npx ngrok http 9229 --scheme http
Client
Example debug current process
// index.js
require('sandbox-debugger')
debugger
console.log('all done')
# DEBUG_PROXY is ip:port to sandbox broker
DEBUG_PROXY=ip:port node index.js
Example debug an already running process
# DEBUG_PROXY is ip:port to sandbox broker
# DEBUG_PID is pid of process to debug
DEBUG_PROXY=ip:port DEBUG_PID=x npx sandbox-debugger
AWS Lambda
Environment variable DEBUG_PROXY
needs to point to the ngrok
address including the port part :80
.
The easiest way to debug lambda is to edit the code in aws console.
Copy the contents of https://unpkg.com/sandbox-debugger@latest/dist/index.js
to debug.js, and require('./debug.cjs')
instead of sandbox-debugger
ESM example
import { createRequire } from 'node:module'
const require = createRequire(import.meta.url)
require('./debug.cjs')