Skip to content

Latest commit

 

History

History
148 lines (89 loc) · 3.06 KB

README.md

File metadata and controls

148 lines (89 loc) · 3.06 KB

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.


Installation

Install the Holesail Server module via npm:

npm install holesail-server

Usage

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 serve method and retrieve its public key:

server.serve({ port: 5000, host: "127.0.0.1" }, () => {
    console.log("Server started");
    console.log(server.getPublicKey());

    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:

server.serve({
    port: 5000,
    host: "127.0.0.1",
    seed: "4917816487c1822049939ff1abbf515663275105d01361bbc84fe2000e594539"
}, () => {
    console.log("Server started");
    console.log(server.getPublicKey());

    setTimeout(() => {
        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:

server.destroy();

API Reference

server.serve(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.getPublicKey()

Retrieves the server's public 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.


server.destroy()

Stops the server and cleans up resources.


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.