adapter | ||
cli | ||
frontend | ||
models | ||
server | ||
.gitignore | ||
build.sh | ||
go.mod | ||
go.sum | ||
package-lock.json | ||
package.json | ||
README.md | ||
tsconfig.json | ||
underbbs.go | ||
webpack.config.js |
underBBS
underBBS is a protocol-agnostic decentralized social media client and toolkit
design
underbbs
can run in two modes depending on its executable name:
web client
underbbs
supports multiple simultaneous account logins, mediating them for each user through a gateway server that handles all protocol-specific logic via adapter
s and streaming content to the user through a single websocket connection with a singular data interface.
each distinct adapter
connection/configuration is represented in the frontend as a tab, and using the websocket's event-driven javascript interface with web components we can simply either store the data or tell the currently visible adapter that it might need to respond to the new data
adapters receive commands via a quartzgun web API and send data back on their shared websocket connection
CLI
underbbs-cli
pulls adapter credentials from ~/.config/underbbs/cli.conf
and accepts commands on individual adapters, printing data to standard output.
building and running
requirements are
- go 1.22 (for the backend)
- any recent nodejs that can do
typescript
andwebpack
5 (for the frontend)
from the project root:
./build.sh front
(if you will use the web components)./build.sh server
./underbbs
or./underbbs-cli ADAPTER ACTION ARGS...
integrating
with the API and web components
- fill
Settings._instance
with adapter settings; these will mostly be authentication data (SettingsElement
illustrates this) - instantiate whatever components you want on your page with their
data-gateway
anddata-target
appropriately set; further docs to come on these - call
DatagramSocket.connect(GATEWAY)
whereGATEWAY
is the domain of theunderbbs
API.SettingsElement
's connect button does this for you.
with the CLI
- Call the CLI directly from the serverside or locally
- Process any output to your preference