📄 | .gitignore |
📄 | LICENSE.md |
📄 | README.md |
📄 | bin.js |
📄 | example.html |
📄 | index.js |
📁 | lib |
📄 | package.json |
📄 | render.js |
📁 | static |
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 threadbase=...
: base url for links that ssb-viewer can handlemsg_base=...
: base url for links to messagesfeed_base=...
: base url for links to feedsblob_base=...
: base url for links to blobsimg_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 handleviewer.msg_base
: base url for links to ssb messagesviewer.feed_base
: base url for links to ssb feedsviewer.blob_base
: base url for links to ssb blobsviewer.img_base
: base url for embedded blobs (images)viewer.emoji_base
: base url for emoji imagesviewer.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-2020 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