shhhbb, an ssh bbs

shhhbb is a simple ssh based bbs.
host it with a single binary and connect with any ssh key.

view source code | download server

supports most cpus and operating systems


donuts-are-good's followers donuts-are-good's stars donuts-are-good's visitors

connect to the shhhbb.com bbs

use your normal ssh client. you don't need to sign up, just sign in with ssh and the bbs does the rest.

Note: If you need to generate a key, you can use this command to generate a good modern key. ssh-keygen -t ed25519 -C "shhhbb.com bbs key"

ssh -p 2223 shhhbb.com

how to host your own bbs

using shhhbb to host your bbs means anybody with any ssh key can interact with the bbs. as such, it's wise to run as a non-privileged user on a non-critical server, like a vps.

1. download the server program https://github.com/donuts-are-good/shhhbb/releases/latest

2. put your host keys in shhhbb/keys directory.
Note: if you need to generate a new key, try this: ssh-keygen -t ed25519 -C "shhhbb host key"

3. specify a port and run the server like this:

./shhhbb 2223

how to edit the code

the server is MIT licensed. if you don't know what that means, don't worry about it. but the important part of what that means for this program is you can make any changes you like. here are some short instructions to get the code and build it yourself. it's easy, don't worry.

1. clone the repository

git clone https://github.com/donuts-are-good/shhhbb

2. make your changes and save the file. everything happens in main.go

3. build it. all you need installed is Go, which you can get here: https://golang.org

go build

4. Optional: i made a thing that will compile the server for every cpu and os it is compatible with, which is about 30-40 platforms. if you're into that, it's a simple bash tool you can try here: donuts-are-good/release.sh

./release.sh --name "shhhbb" --version "v0.0.2" 

api

the api is designed to allow users to create and retrieve chat messages and posts. it is secured with token-based authentication using bearer tokens.

base url

http://localhost:8080

authentication

all endpoints require authentication with a bearer token. to obtain a bearer token, the user must first log in and then authenticate themselves with their token in subsequent requests.

/token new
      /token list
      /token revoke
      

endpoints

get /chat/messages retrieve the last 100 chat messages.

post /chat/create create a new chat message.

post /chat/direct/create create a new direct message.

get /posts/list retrieve a list of posts.

post /posts/create create a new post.

get /posts/replies retrieve a list of replies to a post.

post /posts/reply create a new reply to a post.