holesail-server
v2.4.0
Published
Proxy any server peer-to-peer using Holepunching.
Downloads
724
Maintainers
Readme
Holesail Server
Join our Discord Support Server
Holesail Server enables you to reverse proxy any local server peer-to-peer (P2P) using HyperDHT, no signalling server required.
Note: V2 has breaking changes, V2 is not compatible with V1 and will break infuture.
Installation
Install the Holesail Server module via npm:
npm install holesail-serverUsage
Importing the Module
Require the module in your project:
const HolesailServer = require('holesail-server')Creating an Instance
Create a new instance of the HolesailServer class:
const server = new HolesailServer()Starting the Server
Start the server using the start method and retrieve its public key:
await server.start({ port: 5000, host: '127.0.0.1' }, () => {
console.log('Server started')
console.log(server.key)
setTimeout(() => {
server.destroy()
console.log('Server destroyed')
}, 6000)
})Using a Fixed Connection Key
Optionally, you can set a seed to ensure the server generates the same connection key every time:
await server.start(
{
port: 5000,
host: '127.0.0.1',
seed: '4917816487c1822049939ff1abbf515663275105d01361bbc84fe2000e594539'
},
() => {
console.log('Server started')
console.log(server.key)
setTimeout(async () => {
await server.destroy()
console.log('Server destroyed')
}, 6000)
}
)
// Note: seed must be a 64-character long string.Destroying the Server
Use the destroy method to stop the server and clean up resources:
await server.destroy()API Reference
await server.start(options, callback)
Starts the server
Parameters:
options(object):port(number, required): The port to listen on.host(string, required): The local address to bind to. Use"0.0.0.0"to listen on all interfaces.seed(string, optional): A 64-character string used to generate a consistent connection key.secure(boolean, optional, recommended): Prevents leaking access capability to HyperDHT by listening on a different seed than the one needed to connect.udp(boolean, optional): Enables UDP instead of TCP connections.
callback(function): A function that is called when the server successfully starts.
server.key
Retrieves the server's connection key. Use this key to connect to the server from a client.
server.pause()
Pause the server.
server.resume()
Resume the server.
server.info
Returns an object containing server information.
await server.destroy()
Stops the server and cleans up resources.
await put(data)
Put a mutable record on DHT. Max size 1 KB
License
Holesail Server is released under the GPL-v3 License.
For more details, see the LICENSE file.
Community and Support
Join our Discord Support Server for help, discussions, and updates.
