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 -
viewer.require_opt_in
: whether to serve content from feeds that have not published apublicWebHosting
about
message. default:true
-
viewer.disallowRobots
: whether to direct search engines to not index the site. default:true
References
- Concept: ssb-porthole
- UI ideas: sdash, patchbay
- Server techniques: ssb-web-server, ssb-ws, git-ssb-web
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/.