xj9 97b9923cf0 configure sbot host with environment variables, add build scripts 1 year ago
lib Handle boolean value false for publicWebHosting 1 year ago
static Initial commit 2 years ago
.gitignore configure sbot host with environment variables, add build scripts 1 year ago
Dockerfile configure sbot host with environment variables, add build scripts 1 year ago
LICENSE.md License under AGPLv3+ 2 years ago
README.md License under AGPLv3+ 2 years ago
bin.js configure sbot host with environment variables, add build scripts 1 year ago
build configure sbot host with environment variables, add build scripts 1 year ago
example.html Initial commit 2 years ago
index.js configure sbot host with environment variables, add build scripts 1 year ago
package.json Bump dependencies 1 year ago
render.js Handle empty description in about and align things to top 1 year ago
yarn-error.log configure sbot host with environment variables, add build scripts 1 year ago
yarn.lock configure sbot host with environment variables, add build scripts 1 year ago

README.md

ssb-viewer

HTTP server for read-only views of SSB content. Serves content as web pages or as scripts for embedding in other web pages.

Install & Run

As a sbot plugin:

mkdir -p ~/.ssb/node_modules
cd ~/.ssb/node_modules
git clone ssb://%MeCTQrz9uszf9EZoTnKCeFeIedhnKWuB3JHW2l1g9NA=.sha256 ssb-viewer && cd ssb-viewer
npm install
sbot plugins.enable ssb-viewer
# restart sbot

Or standalone:

git clone ssb://%MeCTQrz9uszf9EZoTnKCeFeIedhnKWuB3JHW2l1g9NA=.sha256 ssb-viewer && cd ssb-viewer
npm install
./bin.js

Usage

To view a thread as a web page, navigate to a url like http://localhost:8807/%MSGID.

To embed a thread into another web page, load it as follows:

<script src="http://localhost:8807/%MSGID.js"></script>

To add more than the base styles, you can also load http://localhost:8807/static/nicer.css.

Routes

  • /%msgid: web page showing a message thread
  • /%msgid.js: script to embed a message thread
  • /%msgid.json: message thread as JSON
  • /&feedid: web page showing a complete feed
  • /user-feed/&feedid: web page showing messages from followed users and channels of a feed
  • /channel/#channel: web page showing messages in a specific channel

Query options

  • noroot: don't include the root message in the thread
  • base=...: base url for links that ssb-viewer can handle
  • msg_base=...: base url for links to messages
  • feed_base=...: base url for links to feeds
  • blob_base=...: base url for links to blobs
  • img_base=...: base url for embedded blobs (images)
  • emoji_base=...: base url for emoji images

The *_base query options overwrite the defaults set in the config. The base option is a fallback instead of specifying the URLs separately. The base options are mostly useful for embedding, where the script is embedded on a different origin than where ssb-viewer is running. However, you may not need them, as the ssb-viewer embed script will detect the base where it is included from.

Config

To change ssb-viewer's default options, edit your ~/.ssb/config, to have properties like the following:

{
  "viewer": {
    "port": 8807,
    "host": "::"
  }
}

You can also pass these as command-line options to ./bin.js or sbot as, e.g. --viewer.port 8807.

  • viewer.port: port for the server to listen on. default: 8807
  • viewer.host: host address for the server to listen on. default: ::
  • viewer.base: default base url for links that ssb-viewer can handle
  • viewer.msg_base: base url for links to ssb messages
  • viewer.feed_base: base url for links to ssb feeds
  • viewer.blob_base: base url for links to ssb blobs
  • viewer.img_base: base url for embedded blobs (images)
  • viewer.emoji_base: base url for emoji images

References

License

Copyright (c) 2016-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/.