# 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](%bS/WGqQrhQfH8eoyWieK+9M56DjJ8Q4ulkvb6sXZwPo=.sha256): ``` 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 8043 - `config.npm.autoAuth`: whether to automatically update `~/.npmrc` to add auth information for the server which the npm client expects. default is `true`. ## 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 .