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!


Current list of packages

Here’s a complete list of the packages that have already put together, obviously they’re all a work in progress needing testing, but I’ve been told that the MRC package installs neatly on a fresh Mystic install ok.

{
  "bbswordle-linux": {
    "description": "BBS Tournament Wordle v2025.1.28, by Alex Corris",
    "version": "2025.1.28"
  },
  "drag-racing-linux": {
    "description": "BBS Drag Racing v2.40, by Alexander Corris",
    "version": "2.40"
  },
  "dsr-sbbs": {
    "description": "Digital Showroom - A universal text, ANSI, and image file browser viewer for Synchronet BBS",
    "version": "250424"
  },
  "iblc-sbbs": {
    "description": "InterBBS Last Callers v0.250320 for Synchronet BBS - Shares your last caller data and BBS stats with other BBSes",
    "version": "0.250508"
  },
  "ibol-mystic": {
    "description": "InterBBS OneLiner (IBOL) - by Darryl Perry for Mystic BBS",
    "version": "0.5"
  },
  "ibol-sbbs": {
    "description": "InterBBS OneLiner (IBOL) - by Codefenix for Synchronet BBS",
    "version": "250624"
  },
  "lolwall-sbbs": {
    "description": "LolWall - A simple local one-liner wall with an animated fade-in effect by Codefenix for Synchronet BBS",
    "version": "250410"
  },
  "mrc-client-mystic": {
    "description": "MRC Client v1.3.7 for Mystic BBS - an IRC style chat system for Mystic BBS",
    "version": "1.3.7"
  },
  "newscenter-sbbs": {
    "description": "NewsCenter - A lightbar-driven RSS feed viewer by Codefenix for Synchronet BBS",
    "version": "250413"
  },
  "scroller-sbbs": {
    "description": "Scroller - Lets your users view text and ANSI files with a scrollable arrow key interface by Codefenix for Synchronet BBS",
    "version": "250514"
  },
  "topusers-sbbs": {
    "description": "Top Users - A simple screen that displays the top 5 users on your system in 6 different categories by Codefenix for Synchronet BBS",
    "version": "250504"
  },
  "wxcenter-sbbs": {
    "description": "WX Center v250523 for Synchronet BBS - Display the weather on your Synchronet BBS",
    "version": "250523"
  },
  "wxreport-mystic": {
    "description": "WX Report v031 for Mystic BBS - Display the weather on your Mystic BBS",
    "version": "031"
  }

Download bsr and give it a spin

Platform md5sum
Linux x86 64-bit 1cced2f2c28163a3aa36d4b5ecae61a0
Linux Arm 64-bit 25e3e23704b64d62e72b2be3c3d9d978
Linux Arm 32-bit 868facde0827a78a24536e9327a2b0a6
MacOS X Intel 64-bit 6091caa97e423fb811e56021c7fd25d3
MacOS X Arm 64-bit 741624efa6a2ec16216b4134aff82897
Windows x86 64-bit 1ee1527982c337d4397a81262612bff2
Windows Arm 64-bit 5f871a7ecbd1457ea3be118eae6b3e5a