Files: 47eb321ffd75f51568db7204562dbaa274e07bb5 / README.md
ssb-npm-registry
Serve an npm registry server backed by SSB.
Install
As a scuttlebot plugin:
git clone ssb://#ssb-npm-registry ~/.ssb/node_modules/ssb-npm-registry
sbot plugins.enable ssb-npm-registry
# restart sbot
Or run standalone with ssb-party:
git clone ssb://#ssb-npm-registry
ssb-party \#ssb-npm-registry
To make bootstrapping easier, this module does not require()
any external modules, so you do not have to run npm install
on it.
Set ssb-npm-registry as your default registry server:
npm config set registry http://localhost:8043
Config
~/.ssb/config
example:
{
"npm": {
"host": "localhost",
"port": 8043,
"autoAuth": true
}
}
config.npm.host
: hostname to listen on. default is "localhost"config.npm.port
: hostname to listen on. default is 8043config.npm.autoAuth
: whether to automatically update~/.npmrc
to add auth information for the server which the npm client expects. default istrue
.
API
var Registry = require('ssb-npm-registry')
var serve = Registry.respond(sbot, config)
Embed ssb-npm-registry into other applications using the respond
method
which returns a (req, res)
HTTP handler function, which can be passed to a
HTTP server:
var server = require('http').createServer(serve)
When using this method, the config properties npm.host
, npm.port
and
npm.autoAuth
do not have an effect, and ~/.npmrc
is not modified.
Registry.publishPkgMentions(sbot, mentions, cb(err, msgs))
Publish the given npm package mentions as one or more messages
Bootstrapping
This plugin includes a script for securely bootstrapping an npm-installation of scuttlebot from your machine to a peer's machine.
Steps for bootstrapping:
- Find your local IP.
- In your web browser, go to your IP, port 8043 (or other port, if you set
config.npm.port
). - Click the "bootstrap" link.
- Send that URL to your peer.
- Check that your peer sees the same hash on the bootstrap page as you do.
- While you are still online, have your peer run the script on that page.
- When your peer's sbot is running, verify that they have the same hash at
their
http://localhost:8043/bootstrap
page. - Proceed with gossip/pub onboarding.
License
Copyright (C) 2017 Secure Scuttlebutt Consortium
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see http://www.gnu.org/licenses/.
Built with git-ssb-web