34 lines
No EOL
1.2 KiB
Markdown
34 lines
No EOL
1.2 KiB
Markdown
# 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
|
|
- any recent nodejs that can do `typescript` and `webpack` 5
|
|
|
|
from the project root:
|
|
|
|
1. `./build.sh front`
|
|
2. `./build.sh server`
|
|
3. `./underbbs`
|
|
|
|
visit `http://localhost:9090/app` |