
Oblivion/2 XRM Introduction
A text based bulletin board system served over Telnet. XRM for (Extreme Remake) is my attempt to recreate and emulate one of the most popular DOS based BBS software with its one of a kind interface and configurability.
Table of Contents
Project details
Important
This software is in very early development, and not a fully functional BBS.
Project and Build Documentation (WIP)
Install Guides

OS/X Setup and Build Guide
Date |
Update Notes |
---|---|
09/16/2018 |
Initial Write up on Latest High Sierra distribution. |
07/26/2019 |
Updated dependency paths and build scripts with documentation |
05/08/2022 |
Updated dependencies that were missed also fixed Makefiles |
05/17/2022 |
Updated guide to .RST format |
Important
Latest Builds Tested on OS/X Catalina
Libraries to Install
Note
Boost is only used for the menu and prompt conversion utilities. Future plans are to remove this dependency.
- List of Dependencies
sqlite
yaml-cpp
openssl
libssh
ossp-uuid
boost
unittest-cpp
Note
Some might not use Homebrew for their package management. However, I needed to setup specific Include file locations in the “.mk” Makefiles if you do NOT use Homebrew, then these Include paths would need to be updated manually.
Important
Requirements, you should have XCode w/ Command line Tools installed. If not, you can usually install this from the Apple Store.
Install Homebrew:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Update Homebrew - And Possibly your OS to the latest version:
brew doctor
brew update
- Install Dependencies via Brew:
All required libs are installed to /usr/local/opt
brew install sqlite3
brew install yaml-cpp
brew install ossp-uuid
brew install libssh
brew install openssl@3
brew install unittest-cpp
brew install boost
- Optional Dependencies depending on your Development Environment
Install GIT to pull down project:
brew install git
- Install latest compiler with c++11 compatibility as NEEDED!
You should have at least the following version installed or higher
Apple LLVM version 9.0.0 (clang-900.0.39.2)
Target: x86_64-apple-darwin17.4.0
Thread model: Posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
Note
Only Need to install or upgrade if your compiler if the version is lower then this!
brew install clang
/usr/local/Cellar
for program versions installed/usr/local/opt
Clone the project
This will checkout and create project in an Oblivion2-XRM
folder where you run the command.
git clone https://github.com/M-griffin/Oblivion2-XRM.git
cd Oblivion2-XRM
cd build
./build-osx.sh -j2
Note
-j# is number of cpu cores for faster compiling
Build Script
compiles each part of the application and it’s utilities and Unit Tests./xrm-server - to start the bbs
./xrm-unittest - to run the unit tests
Helper Applications Only used if you are converting legacy items or mods.
./xrm-menu-convert - convert Legacy Obv/2 menus to yaml
./xrm-menu-prompt-convert - convert Legacy Obv/2 prompts to yaml
Note
Converters only tested on default Menu’s and prompt files. Should work for menu and prompt mods too.
Running the BBS
Default Telnet Port
: 6023xrm-server.yaml
configuration fileAll data files, and configuration file are generated on the initial startup of the system.
If you goof anything up, simply delete any of the .yaml
file(s) you made a mistake and want to start over.
Than re-start the program and the files regenerate to defaults.
Starting the BBS
./xrm-server - the main configuration file generates in the root bbs folder.
I’m playing around with a yaml logging format, any feedback is welcome. =)
newuser
The first created user becomes a SysOp set to level 255
Linux (Debian/Ubuntu/Mint) Setup and Build Guide
Date |
Update Notes |
---|---|
07/26/2019 |
Initial Write up with new command line build script. |
05/20/2022 |
Updated guide to .RST format |
Important
Latest Builds Tested on Mint 20.3 (Cinnamon 64-Bit) and Ubuntu 22.04 (LTS 64-Bit)
Libraries to Install
Note
Boost is only used for the menu and prompt conversion utilities. Future plans are to remove this dependency.
- List of Dependencies
sqlite
yaml-cpp
openssl
libssh
ossp-uuid
boost
unittest-cpp
Install Packages
sudo apt-get install build-essential
sudo apt-get install libyaml-cpp-dev
sudo apt-get install libssh-dev
sudo apt-get install libboost-all-dev
sudo apt-get install libsqlite3-dev
sudo apt-get install uuid-dev
sudo apt-get install libunittest++-dev
- Optional Dependencies depending on your Development Environment
Install GIT to pull down project:
apt-get install git
- Install latest compiler with c++11 compatibility.
Most systems within the last several years are recent enough to support C++11 Compatibility. Any version above GCC 4.8.1.
Note
Only Need to install or upgrade if your compiler is ancient dirt. :)
Clone the project
This will checkout and create project in an Oblivion2-XRM
folder where you run the command.
git clone https://github.com/M-griffin/Oblivion2-XRM.git
cd Oblivion2-XRM
cd build
./build-linux.sh -j2
Note
-j# is number of cpu cores for faster compiling
Build Script
compiles each part of the application and it’s utilities and Unit Tests./xrm-server - to start the bbs
./xrm-unittest - to run the unit tests
Helper Applications Only used if you are converting legacy items or mods.
./xrm-menu-convert - convert Legacy Obv/2 menus to yaml
./xrm-menu-prompt-convert - convert Legacy Obv/2 prompts to yaml
Note
Converters only tested on default Menu’s and prompt files. Should work for menu and prompt mods too.
Running the BBS
Default Telnet Port
: 6023xrm-server.yaml
configuration fileAll data files, and configuration file are generated on the initial startup of the system.
If you goof anything up, simply delete any of the .yaml
file(s) you made a mistake and want to start over.
Than re-start the program and the files regenerate to defaults.
Starting the BBS
./xrm-server - the main configuration file generates in the root bbs folder.
I’m playing around with a yaml logging format, any feedback is welcome. =)
newuser
The first created user becomes a SysOp set to level 255
Docker Image Creation and Run Guide
Date |
Update Notes |
---|---|
05/21/2022 |
Initial Guide in .RST format |
Important
Latest Tested in Windows 10 64 bit Docker with Linux Containers.
Clone the project
This will checkout and create project in an Oblivion2-XRM
folder where you run the command.
git clone https://github.com/M-griffin/Oblivion2-XRM.git
cd Oblivion2-XRM
Next from the root project folder you can run the following docker commands.
Docker
Important
This is a preview of the development work, It’s not a fully functional system You can browse Menu’s, and some initial sysop functions such as the User, Menu, Message and Level editors. With the Full Screen Message editor in the works.
Note
Being this is a preview the default setup here is to build and run a preview, the container
or image
will not save any new users or configuration changes made while adventuring around.
Once the application is more ready for release then some updated documentation will be created for using
volumes to run your container’s from.
Docker-Compose
The following commands should be run from the root Oblivion2-XRM
folder.
First time setup or on changes build
is used to create or update the docker image.
recreating from any changes or updates when pulling down the branch.
Build and Startup Commands
docker-compose build && docker-compose up
Startup Command - All other times to startup the container you only need to run:
docker-compose up
Connecting to the BBS
Default Telnet Port
: 6023newuser
The first created user becomes a SysOp set to level 255Logging into the container
docker ps
to get a list of running containers.docker ps
docker exec -it <CONTAINER ID> /bin/bash
You should now be in the logged in and in the following folder /usr/src/Oblivion2-XRM/build
The root of the BBS executable folder. This folder also contains core of the bbs application.
You’ll find the main xrm-server.yaml
configuration file with other data files in the data
folder.
Note
The BBS is running by default.
List of Executables
./xrm-server - to start the bbs
./xrm-unittest - to run the unit tests
Helper Applications Only used if you are converting legacy items or mods.
./xrm-menu-convert - convert Legacy Obv/2 menus to yaml
./xrm-menu-prompt-convert - convert Legacy Obv/2 prompts to yaml
Note
Converters only tested on default Menu’s and prompt files. Should work for menu and prompt mods too.
Development Goals
The initial goal is to implement all legacy system actions in use on the default setup/install. With options for extended customization added later on to keep progress going.
Progress Notes
Screen shot showing some of the latest work on the menu system. The default theme template and menu prompt in action while switching menus. The menu system is still pretty raw and a lot of logic still needs to be completed.
Important
This is a preview of the development work, It’s not a fully functional system You can browse Menu’s, and some initial sysop functions such as the User, Menu, Message and Level editors. With the Full Screen Message editor in the works.

Then some screen shots in Linux Mint (Vmware) of the most recent updates.

Sample of the Menu Editor modeled after the classic style

Work In Progress (Latest Feature Branch) - Full Screen Message Editor Initial design concept with expanding height templates that the are used in the rest of the system.

Support
Use the Issue Tracker
Discussions on Haunting The Chapel BBS! - telnet://htc.zapto.org
IRC: #oblivion2 on chat.freenode.net
Email: mrmisticismo - at - hotmail.com
Facebook: Oblivion/2 XRM group
Discord: Oblivion/2 XRM Channel
Acknowledgments and Thanks
Caphood: Support, Ideas and OBV/2 guru.
NuSkooler: Support, Awesome man who knows his stuff.
Blocktronics: Awesome group of guys pitching in some amazing theme art!
Dingo: Telnet options and general terminal functionality, you’ve been a wealth of knowledge
Smooth: Running an awesome Discord server
License
Oblivion/2 XRM is available under the zlib license : This software is provided ‘as-is’, without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
This notice may not be removed or altered from any source distribution.