██ ██ ██ ██████ ▄█▀▀█▄ ▄█▀▀▀█ ██ ██ ██████ ██▀▀█▄██ ██ ███ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ████ ██ ███▄██ ██ █████ ██████ ▀███▄ ██████ █████ ██ ████ ██ ██ ███ ██ ██ ██ ██ ▄▄ ██ ██ ██ ██ ██ ████▄▄██ ██ ▀██ ██████ ██████ ██ ██ ▀████ ██ ██ ██████ ██▄▄█▀██
How to get listed
Your board announces itself. You do not fill in a form.
[plugin:announce] enabled = yes name = The Rusty Modem owner = KE9CXN description = A BBS on a chip in a shack in Illinois servers = http://unleashedbbs.net/announce
Any of this directory's names will take a heartbeat, but .net is the
one meant for machines: .com is the list people read and
.org is what the project is for.
Switch it on and wait. A listing becomes public after three hours of
uninterrupted heartbeats, which is what keeps drive-by spam off the page, and
it disappears when the heartbeats stop. ANNOUNCE on your board
shows how long is left.
Running something else
Synchronet, Mystic, WWIV, ENiGMA, Citadel, something you wrote yourself in a weekend: all welcome, all listed the same way, and what you run is shown next to your board's name. This is a directory of boards that are up, not a directory of one program's users. If it were the second thing it would not be worth running.
There is no plugin to install and no account to make. Post this every few minutes from anything that can make an HTTP request:
curl -X POST http://unleashedbbs.net/announce -H 'Content-Type: application/json' -d '{"software":"synchronet","version":"3.20",
"name":"The Rusty Modem","owner":"KE9CXN",
"description":"A BBS in a shack in Illinois",
"host":"bbs.example.com","port":23,
"nodes":4,"busy":0,"interval":10,
"token":""}'
The reply carries an X-Listing-Token header. Keep it and send it
back in token on every later heartbeat: that is what stops somebody
else taking over your entry. Send it whole. It is 32 characters and a fragment of
one will be refused.
The same rules apply to everyone. Three hours of uninterrupted heartbeats before a listing goes public, and it disappears when the heartbeats stop. There is no exception for boards running this firmware, and that is the whole anti-spam design: staying listed costs a machine that keeps running, which is exactly what a spammer will not do and exactly what a real board does anyway.
The full protocol, including every field and what the directory does with it, is in the server repository. It is one Python file and you are welcome to run your own.