Abandoned Project
The software was written by Andrew Pamment (apam), development has ceased and he is is now working on Talisman BBS.
Titan BBS was an experimental BBS written in C++ for Linux and Windows. It utilized parts of C++17 found in Visual Studio 2019 (and recent versions of Visual Studio 2017) and GCC 8+. On Linux CMake was used to configure.
Titan used sqlite3 for messages, user bases, file bases etc. It came with it's own FTN message tosser (TitanFTN).
Titan also relied on third party utilities for some features. SEXYZ for file transfers and InfoZIP for archiving.
Titan was configured using JSON files. Art files for menus etc are plain text files which can include special CTRL-A codes for colour for those users that want to use it. A utility ans2ctrla is included to convert .ANS files to CTRL-A text files.
Prerequisites:
Titan uses the C++17 filesystem library, and will therefore require GCC 8 or higher, or clang 7 or higher.
git clone https://gitlab.com/apamment/Titan.git
cd Titan/Titan mkdir build cd build cmake .. make
Create somewhere to store your data files. For example: /home/user/bbs
mkdir /home/user/bbs
Copy the gfiles directory from Titan/Titan to /home/user/bbs
cp -r ../Titan/Titan/gfiles /home/user/bbs
Create other needed directories
mkdir /home/user/bbs/dbs mkdir /home/user/bbs/temp mkdir /home/user/bbs/keys mkdir /home/user/bbs/logs
Create SSH keys
ssh-keygen -f /home/user/bbs/keys/ssh_host_rsa_key -N '' -t rsa ssh-keygen -f /home/user/bbs/keys/ssh_host_dsa_key -N '' -t dsa
Configure Titan using the paths above.
Download the latest installer snapshot from ??
Run the installer.
Answer the questions.
Configuring Titan is done with a single JSON file.
Note: Batch files and scripts used for doors and the external editor are passed 2 arguments, the first is the node number, the second is the socket. The socket is unused on Linux, as it only supports stdio doors on that platform.
{ "Main": { "MaxNodes": 5, "TelnetPort": 23, "RloginPort": 513, "SSHPort": 22, "SystemName": "A New Titan BBS", "SysopName": "Sysop", "LogLevel": "Info" }, "Paths": { "GFiles": "C:/bbs/gfiles", "Databases": "C:/bbs/dbs", "Temp": "C:/bbs/temp", "SEXYZ": "C:/bbs/sexyz.exe", "ExternalEditor": "C:/bbs/doors/oedit.bat", "SSHRSAKey": "C:/bbs/keys/ssh_host_rsa_key", "SSHDSAKey": "C:/bbs/keys/ssh_host_dsa_key", "LogFile": "C:/bbs/logs/Titan.log", "MailSemaphore": "C:/bbs/mail.out" }, "MessageBases": [ { "name": "General", "readlevel": 10, "writelevel": 10, "id": 0 }, { "name": "Testing", "readlevel": 10, "writelevel": 10, "id": 1 }, { "name": "General", "readlevel": 10, "writelevel": 10, "id": 100 }, { "name": "BBS Discussion", "readlevel": 10, "writelevel": 10, "id": 101 }, { "name": "Mystic Discussion", "readlevel": 10, "writelevel": 10, "id": 102 }, { "name": "Magicka Discussion", "readlevel": 10, "writelevel": 10, "id": 103 }, { "name": "ENiGMA 1/2 Discussion", "readlevel": 10, "writelevel": 10, "id": 104 }, { "name": "Cryptographic Posts", "readlevel": 10, "writelevel": 10, "id": 105 }, { "name": "Automated RoBOT Posts", "readlevel": 10, "writelevel": 10, "id": 106 } ], "MessageConferences": [ { "name": "Local Mail", "id": 0, "accesslevel": 10, "areas": [ 0, 1 ] }, { "name": "FSXNet", "id": 2, "accesslevel": 10, "areas": [ 100, 101, 102, 103, 104, 105, 106 ] } ], "Doors": [ { "name": "Galactic Dynasty", "hotkey": "1", "accesslevel": 10, "command": "C:/bbs/doors/gd.bat" }, { "name": "For Honour", "hotkey": "2", "accesslevel": 10, "command": "C:/bbs/doors/fh.bat" } ], "FileBases": [ { "index": 1, "name": "General Files", "filepath": "C:/bbs/files/general", "database": "C:/bbs/files/general.db3", "uploadlevel": 10, "downloadlevel": 10 }, { "index": 2, "name": "BBS Related Files", "filepath": "C:/bbs/files/bbs", "database": "C:/bbs/files/bbs.db3", "uploadlevel": 10, "downloadlevel": 10 } ], "TextFiles": [ { "title": "AF Downs Scores", "filepath": "C:/bbs/doors/afdowns2/scores.txt", "pause": "true", "accesslevel": 10, "hotkey": "1" }, { "title": "AF Slots Scores", "filepath": "C:/bbs/doors/afslots2/scores.txt", "pause": "true", "accesslevel": 10, "hotkey": "2" } ] }
Titan BBS - https://gitlab.com/apamment/Titan