hub.js - amark/gun GitHub Wiki

lib/hub.js (server-side only)

Host your website on Gun !

The hub feature is an optional feature that allows you to watch a directory and upload all of its content on the database (only text files are supported for now).

How to use it ?

First, you must install Chokidar. When it’s done, import hub.js :

const hub = require('gun/lib/hub'); // Classic 
// or
import hub from β€˜gun/lib/hub’; // ES6’s way
// then
hub.watch(/* The path you want to watch. */)

Options

what (String) - Which directory hub should watch.
options (Object) - Change the behavior of hub.

// Available options
{
   msg: true // or false | disable or enable update messages,
   hubignore: false // or true | Activate the .hubignore feature
}

The .hubignore file

It'd be really dangerous if you upload all your files on the DB !

The purpose of the .hubignore is to give you the possibility to choose what files are watched by hub & sent to Gun ! It works exactly as the .gitignore file. It must be in the root of the folder you're watching.

# Very important API KEY !
/whatever/api-key.txt 
.
β”œβ”€β”€ index.html
β”œβ”€β”€ .hubignore
└── whatever/
    └── api-key.txt

Example

Given this directory :

.
└── directory/
    β”œβ”€β”€ index.html
    β”œβ”€β”€ .hubignore
    └── whatever/
        β”œβ”€β”€ style.css
        └── api-key.txt
// Basic usage.
const hub = require(β€˜gun/lib/hub’); // OR import hub from β€˜gun/lib/hub’;

hub.watch(β€˜./directory’);
gun.get(β€˜hub’).on(data => {
    console.log(data[β€˜/directory/index.html’]) // Get the content of index.html
    console.log(data[β€˜/directory/folder/whatever.css’]) // Get the content of whatever.css
})
# .hubignore
/whatever/api-key.txt # Won't be uploaded !