I have often wondered what is missing from the modern world of BBS systems, and it struck me the other day - a way to easily install BBS doors.
BBS doors are written by anyone who has the time, patience, creativity and desire to make them, and they are all so different, and for different systems and situations. It would be neat if there was a simple way to install BBS doors without needing to go find the file to download, and figure out what needs to be done to get it to work on your system.
This is where bsr
or BBS Sysop Repository comes in, I have made a (mostly) fully working proof of concept, where you can update your local index, search for a package, install a package, uninstall a package - all from the CLI. The ultimate goal is to make this work in Linux, MacOS X and Windows, but for now my POC is just on Linux.
Here is the README for what I have made so far;
BSR - The BBS Sysop Repository package manager
Wouldn’t it be great if you (as a sysop) could install BBS doors just like packages in Linux? Well now you can, or at least… this is a proof of concept.
With the bsr
script in your path somewhere, i.e. /usr/bin/bsr
and made executable, you can do;
Get help on how to use it
~ > bsr
usage: bsr [-h] {install,search,update,uninstall,info} ...
bsr-pkg: Install, search, and manage BBS packages easily
positional arguments:
{install,search,update,uninstall,info}
install Install a package
search Search for a package
update Update local index of packages
uninstall Uninstall a package
info Show detailed info about a package
options:
-h, --help show this help message and exit
Update the local repo with a list of all the available packages
~ > bsr update
Updating package index...
Index updated.
Search for a package
~ > bsr search mrc
Matching packages:
- mrc-client-mystic: MRC Client v1.3.7 for Mystic BBS - an IRC style chat system for Mystic BBS
Install a package
~ > bsr install mrc-client-mystic
Installing mrc-client-mystic...
▄ ▄
█ ▀▄ ▀▄ ▐▌ ▄▀ ▄▀ █ ┌------------------------------------┐
▀▄ ▀█▄ ▀▀ ▀▀ ▀▀ ▄█▀ ▄▀ : filename: PN-MRC137-ALPHA.ZIP :
▀▄ ▀▄ █▄▄████████▄▄█ sM ▄▀ ▄▀ author: StackFault
░ █ \█ █▄▄▄▄ ▀██▀ ▄▄▄▄█ █/ █ ░ release date: 09/01/2024
░▄▀ ▄▀ ▄█▓▀▄▄▀▀▄▄▄▄▀▀▄▄▀▓█▄ ▀▄ ▀▄░ version: 1.3.7 Alpha
▒/ ▄▀ ▀▄▄▀▀▀▀▀ ██ ▀▀▀▀▀▄▄▀ ▀▄ \▒ : bbs software: MYSTIC 1.12 A45+ :
▓/██ █ X ██ X █ ██\▓ ├------------------------------------┤
█/██ ▐██▄▄▄ ██ ▄▄▄██▌ ██\█ : This and ALL PHENOM PRODUCTIONS
▀▄▀█▄ █ ████████▓▀▀▓████████ █ ▄█▀▄▀ releases can be found on ALL
\ ▀▀█ ▓█ ▀▄████████▄▀ █▓ █▀▀ / ArakNet Bulletin Board Systems
▀█ █ █▀██▀█ █ █▀ and Distribution Sites.
You can also find all PHENOM
┌─────────────────────────┐ PRODUCTION at:
/\/\/: PHENOM PRODUCTIONS :\/\/\ : https://www.phenomprod.com :
: └──────·( EST. 2018 )·────┘ : └────────────────────────────────────┘
┌--------------------┬-----------------------------------------------------┐
: CHANGELOG : release name: Multi Relay Chat :
├--------------------┴---- - -
: Complete installation package with support for both Python 2 and Python 3
Files installed to /home/username/.local/share/bsr-pkg/mrc-client-mystic
Please symlink the following files to your Mystic BBS directories:
- Scripts: ln -sf /home/username/.local/share/bsr-pkg/mrc-client-mystic/scripts/* /path/to/mystic/scripts/
- Text: ln -sf /home/username/.local/share/bsr-pkg/mrc-client-mystic/text/* /path/to/mystic/text/
- Config: ln -sf /home/username/.local/share/bsr-pkg/mrc-client-mystic/mrc_config.py /path/to/mystic/
- Multiplexer: ln -sf /home/username/.local/share/bsr-pkg/mrc-client-mystic/mrc_client.py /path/to/mystic/
Installation complete!
No endpoint defined, skipping
mrc-client-mystic installed successfully!
Uninstall a package
~ > bsr uninstall mrc-client-mystic
Uninstalling mrc-client-mystic...
Removed mrc-client-mystic from /home/username/.local/share/bsr-pkg/mrc-client-mystic
No symlink found for mrc-client-mystic.
Getting info for a package
~ > bsr info mrc-client-mystic
Fetching information for mrc-client-mystic...
{
"name": "mrc-client-mystic",
"version": "1.3.7",
"maintainer": "MeaTLoTioN",
"source": "https://some.example.com/mrc-client-mystic-1.3.7.tar.gz",
"md5sum": "f50b70f8017ab505e81a7540863b7417",
"install": "./install.sh",
"description": "MRC Client v1.3.7 for Mystic BBS - an IRC style chat system for Mystic BBS"
}
As you can see, it seems to do what is intended. Now I have a framework set up for the backend, and the command for the front end sorted, what I need next is to go through some more BBS doors and create “packages” out of them.
The packages themselves can live anywhere, all that I keep in the backend is the metadata json that shows the name, version, maintainer, the source (where the package is actually downloaded from), the command inside the package that is used to install the package and a description.
If you write BBS doors and wish to have your package included in this new package manager for BBSes, please ping me an email at ml at erb dot pw
- the idea is to make this work for any BBS software also, not just Mystic. I have already reached out to someone who knows the Synchronet BBS packages to help create the MRC client package for synchronet.
Now I need packages to add to the repo - drop me a line!
Download bsr and give it a spin
Link | Platform | md5sum |
---|---|---|
bsr | Linux x86_64 | 0c668bf975d8a900e0ff51c023300a59 |