git ssb

16+

cel / patchfoo



Tree:
πŸ“„.gitignore
πŸ“„LICENSE.md
πŸ“„README.md
πŸ“„binary-install-1.6.0.sh
πŸ“doc
πŸ“„enable-plugin.js
πŸ“„index.js
πŸ“lib
πŸ“„licenses-1.6.0.txt
πŸ“„licenses.js
πŸ“„package.json
πŸ“„server.js
πŸ“static
πŸ“vendor
README.md

patchfoo

扒扯福 <pΓ‘chΔ›fΓΊ>, the fortune of raked-together chatter

Plain SSB web UI. Uses HTML forms instead of client-side JS. Designed for use on low-power and low-resource computers.

Goals

Features

Joining SSB with Patchfoo

Note: these guides may or may not be updated for using the binary installer, which may be an easier way to install patchfoo. (See the Install section below.)

Find this guide on github or on SSB.

Requirements

For development and installing from source:

Recommended ssb-server plugins (see "Install extras" below):

Note about Node v12

If you are installing patchfoo from source or ssb-npm with Node v12 or later, after the installation process you may need to separately install sodium-native v3. Some of patchfoo's dependencies still depend on sodium-native v2 which does not work easily with Node v12. sodium-native v2 can be swapped with v3 without any problem. More info in this thread: %VPeffQA...

Install

Easy install: use the binary installer below.

patchfoo can run either as a standalone process or as an ssb-server plugin.

Running as a ssb-server plugin is faster and uses less resources. But it requires you to run ssb-server from the command-line, or use a ssb-server distribution that allows installing ssb-server plugins.

Running as a standalone process should work while you are running a ssb-server distribution such as Patchwork, Patchbay, or Oasis. It also could potentially work with ssb-server implementations other than the Node.js one.

The binary installer installs patchfoo to run as a standalone process. It bundles Node.js so you don't need to have node/npm installed. You still need a ssb-server running though. You also need a connection to the main SSB network for the installation script to fetch the necessary blobs.

Binary install

This installs a single executable file "patchfoo" on your system, with an embedded Node.js.

Install patchfoo v1.6.0 binary for linux-{x64,armv7,arm64,x86} or macos-x64:

curl 'http://localhost:8989/blobs/get/&gepauvmWgqFSfXz1Oa9H5sgDB5PIO72L4ffBqTlbc4A=.sha256' | sh

Licenses for patchfoo v1.6.0 binary release

Install from source

as a standalone process

This is how to install patchfoo using git-ssb and ssb-npm and run it as a standalone process with a local ssb-server.

Running as a standalone process this way is useful if you can use git-ssb and ssb-npm and are either just trying out patchfoo, or want to continue using a ssb-server distribution that doesn't allow installing ssb-server plugins, or want to develop patchfoo and not have to frequently restart ssb-server.

git clone ssb://%YAg1hicat+2GELjE2QJzDwlAWcx0ML+1sXEdsWwvdt8=.sha256 patchfoo
cd patchfoo
ssb-npm install --production --branch %Et6Ij2bOS4SUzpimKTVUdMPnb8vjP8Lg2dObBJ/0oGE=.sha256 --branch %0X6kyl7qterD0BgDcr1ChSbqJDdoeA+GW45lRwVTkMI=.sha256
npm start

as a ssb-server plugin

This is the traditional way to install and run patchfoo.

cd ~/.ssb/node_modules
git clone ssb://%YAg1hicat+2GELjE2QJzDwlAWcx0ML+1sXEdsWwvdt8=.sha256 patchfoo
cd patchfoo
ssb-npm install --production --branch %Et6Ij2bOS4SUzpimKTVUdMPnb8vjP8Lg2dObBJ/0oGE=.sha256 --branch %0X6kyl7qterD0BgDcr1ChSbqJDdoeA+GW45lRwVTkMI=.sha256
node enable-plugin.js

Install via ssb-npm

patchfoo sometimes has releases published on ssb-npm.

To install packages globally with [ssb-]npm, you need a npm prefix set. That is a directory that npm packages will get installed to when do a global (-g) install. If you don't already have a npm prefix set, I recommend using ~/.local:

npm config set prefix ~/.local

The bin directory under the prefix should also be in your $PATH. On some GNU/Linux systems, ~/.profile automatically adds ~/.local/bin to $PATH if that exists as a directory. Otherwise, you should edit your ~/.profile or similar file to add the npm prefix's bin directory to $PATH:

PATH="$HOME/.local/bin:$PATH

as a standalone process

This installs patchfoo globally and gives you a patchfoo executable.

Note: if you previously installed a patchfoo binary release, [ssb-]npm will not overwrite it. You must manually remove it (e.g. rm ~/.local/bin/patchfoo) before installing via ssb-npm.

ssb-npm install -g patchfoo --branch %Et6Ij2bOS4SUzpimKTVUdMPnb8vjP8Lg2dObBJ/0oGE=.sha256 --branch %0X6kyl7qterD0BgDcr1ChSbqJDdoeA+GW45lRwVTkMI=.sha256

as a ssb-server plugin

This does a global ssb-npm install and then symlinks it into place and installs it with ssb-server as a plugin.

ssb-npm install -g patchfoo --branch %Et6Ij2bOS4SUzpimKTVUdMPnb8vjP8Lg2dObBJ/0oGE=.sha256 --branch %0X6kyl7qterD0BgDcr1ChSbqJDdoeA+GW45lRwVTkMI=.sha256
dir=$(dirname $(realpath $(which patchfoo)))
ln -s "$dir" ~/.ssb/node_modules/
node "$dir/enable-plugin.js"

Install extras

To most effectively render things, patchfoo needs the ssb-backlinks
and ssb-private ssb-server plugins. The ssb-search plugin is also helpful, for fulltext search of your SSB DB.

If you are using a ssb-server distribution like Patchwork, Patchbay or Oasis's ssb-server, these plugins are already included. If you are using ssb-server from the command-line, the plugins have to be installed separately:

sbot plugins.install ssb-backlinks --yes
sbot plugins.install ssb-private --yes
sbot plugins.install ssb-search --yes

The --yes argument above is a "dummy" argument to work around the error "Cannot set property 'module' of undefined" (more info: %lvLBrXS...)

Config

Pass config options with args e.g. npm start -- --patchfoo.port 8027 if running standalone, or sbot server --patchfoo.port 8027 if running as an sbot plugin. To make config options persistent, set them in ~/.ssb/config, e.g.:

{
  "patchfoo": {
    "port": 8027,
    "host": "::",
    "filter": "all",
    "showPrivates": true,
    "previewVotes": true,
    "voteBranches": false,
    "ooo": true,
    "nav": [
      "new",
      "public",
      "private",
      "mentions",
      "peers",
      "status",
      "channels",
      "tags",
      "friends",
      "search"
      "live",
      "compose",
      "drafts",
      "emojis",
      "self",
      "searchbox"
    ],
    "dir": "patchfoo",
    "scriptDir": "script",
    "draftsDir": "drafts"
  }
}

Config options

TODO

Art

pache-hoo.png

Doodle by Mia Gooper from disussion of Chinese translation of the name of patchfoo: %SLqfK1Q...

troglodita-med.jpg

Troglodita Seal of Approval, presented by @hoz in %w+oNAm1...

Survey

Want to help patchfoo to improve? Share your feedback in the patchfoo User Survey!

License

Copyright (C) 2017-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