https://github.com/http-party/node-portfinder
A simple tool to find an open port or domain socket on the current machine
https://github.com/http-party/node-portfinder
Last synced: 5 days ago
JSON representation
A simple tool to find an open port or domain socket on the current machine
- Host: GitHub
- URL: https://github.com/http-party/node-portfinder
- Owner: http-party
- License: other
- Created: 2011-07-08T16:15:01.000Z (almost 14 years ago)
- Default Branch: master
- Last Pushed: 2025-04-02T02:40:12.000Z (13 days ago)
- Last Synced: 2025-04-03T08:02:14.691Z (12 days ago)
- Language: JavaScript
- Homepage: https://github.com/http-party/node-portfinder
- Size: 530 KB
- Stars: 889
- Watchers: 11
- Forks: 98
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-nodejs - node-portfinder - A simple tool to find an open port or domain socket on the current machine.  (Repository / Network)
- awesome-github-star - node-portfinder - party | 856 | (JavaScript)
- awesome-nodejs - portfinder - 自动获取可用端口 (Uncategorized / Uncategorized)
README
# node-portfinder
[](https://github.com/http-party/node-portfinder/actions/workflows/ci.yml)
## Installation
You can install `portfinder` using a package manager like npm, yarn, or bun:
``` bash
npm install portfinder
```## Usage
The `portfinder` module has a simple interface:``` js
const portfinder = require('portfinder');portfinder.getPort(function (err, port) {
//
// `port` is guaranteed to be a free port
// in this scope.
//
});
```Or using promises:
``` js
const portfinder = require('portfinder');portfinder.getPortPromise()
.then((port) => {
//
// `port` is guaranteed to be a free port
// in this scope.
//
})
.catch((err) => {
//
// Could not get a free port, `err` contains the reason.
//
});
```### Ports search scope
By default `portfinder` will start searching from `8000` and scan until maximum port number (`65535`) is reached.
You can change this globally by setting:
```js
portfinder.setBasePort(3000); // default: 8000
portfinder.setHighestPort(3333); // default: 65535
```or by passing optional options object on each invocation:
```js
portfinder.getPort({
port: 3000, // minimum port
stopPort: 3333 // maximum port
}, callback);
```## Run Tests
``` bash
npm test
```#### Author: [Charlie Robbins][0]
#### Author/Maintainer: [Erik Trom][1]
#### License: MIT/X11
[0]: http://nodejitsu.com
[1]: https://github.com/eriktrom