Bulletin Board Systems (BBS) used to be the quintessential information hubs of the 90s. These were geographically local machines that users could connect to as a way to access information, obtain files and even communicate with other BBS users. Over the years, however, the know-how that you needed to even connect to one made it challenging for a regular user to participate in a BBS, making it lose its luster and appeal in favor of the more global Web.
Despite that, it is still possible to create your own BBS server using Linux. There are numerous projects, such as EnigmaBBS, that use modern languages and technologies to recreate the BBS experience of the 90s.
What Is a BBS and EnigmaBBS?
At its core, a BBS is a suite of programs that allow multiple users to access a computer over a remote network. These computers, in turn, often contain programs that a system operator made to highlight a feature of their BBS. For example, most BBS machines in the 1990s provided games that are unique to their server.
EnigmaBBS is a modern adaptation of the traditional BBS software. It aims to recreate the original ’90s BBS experience with modern coding standards and technologies. EnigmaBBS also contains a number of features, such as WebSockets and SSH, which allow you to easily host and use a BBS.
Unlike traditional BBS, EnigmaBBS provides a platform for easy communication with other similar services through FidoNET. This approach enables you to seamlessly interact with other servers without the need to explicitly connect to each other.
Lastly, EnigmaBBS fully supports third-party Door Games through DoorParty, Exodus and CombatNet, so loading games through it is as simple as providing the dropfile for that particular game. It is possible to turn EnigmaBBS to a dedicated BBS gaming server for your friends and family.
- Create a separate user account for the BBS server to make sure that it will not have any access to your personal files. To get started, run the following commands:
sudo useradd -s /bin/bash -d /home/enigma -m -G sudo enigma sudo passwd enigma
su enigmato switch to the new user account.
- Download the EnigmaBBS installation script: an all-in-one script that fetches, compiles and installs all the necessary tools to create a copy of the BBS. Run the following commands:
sudo apt install curl git make gcc g++ python p7zip lhasa arj lrzsz python-is-python3 wget https://raw.githubusercontent.com/NuSkooler/enigma-bbs/master/misc/install.sh
- Enable the script’s execute bits and run it through your shell by running the following commands in your terminal:
chmod +x ./install.sh ./install.sh
- EnigmaBBS will begin by downloading all the packages that it needs to compile NodeJS. From there, it will download all the necessary packages to install the BBS software.
Generating Your EnigmaBBS Configuration
Next, open a new terminal window to make sure that the machine will detect all of the programs that you just installed.
- Since we’re using Ubuntu, we pressed the “New Tab” button in the current terminal window.
- Go to EnigmaBBS’s root directory. This is the folder that contains all the files and details for your BBS server. Run the following command to access it:
Creating a New Configuration File
- Once inside, you can now create your BBS server’s configuration file with this command:
./oputil.js config new
- EnigmaBBS will ask where you want to place your configuration file. For the most part, you only need to press Enter here to ensure that you can find all of the configuration files in their default directories.
- You’ll be asked to name your new EnigmaBBS instance. We named ours “Hello, world!”
- Provide a name for your first message conference, similar to a category in a forum website. We pressed Enter twice to use the default “Local” name.
- The script will ask you to name your first message area. Similar to a message conference, this is a way to further categorize the messages in your BBS. Once again, we pressed Enter twice to use the default values.
- Set the amount of logs that the program should keep while running. By default, EnigmaBBS recommends that you only keep diagnostic information in the server. Despite this, you can choose to either increase or decrease the amount of logging in your server, which can be especially useful if you are diagnosing a problem. We’ve picked the default “Info” level for our server.
Connecting and Using Your New BBS
With your basic configuration done, you can start your EnigmaBBS server. Unlike other webservers, running a BBS instance is incredibly easy.
- Run the following command:
- This will boot up EnigmaBBS and expose it to your local network. To connect to it, however, you’ll need to either use a telnet client or SSH. We used the former.
- Similar to starting up EnigmaBBS, connecting to it through telnet is quite straightforward, as Ubuntu ships with a BBS-compatible telnet client out of the box. Connecting to your local instance only requires that you run a single command:
telnet localhost 8888
- Once you are connected, EnigmaBBS will print a splash screen along with three options: “Login,” “Apply” and “Logout.”
Creating the Sysop User
By default, EnigmaBBS reserves the first user account in the server as the Sysop user.
- To create your administrator account, select “Apply” in the splash screen.
- Provide a username and other information about yourself. We used “ramcesr” as our username.
- One important thing to note is that you do not need to provide any real information in most of the fields in this page. For example, you can provide an email that does not exist, and EnigmaBBS will still create the account. This can be helpful in situations where do not want to leave any contact information in the BBS.
Sending and Reading Your First Message
EnigmaBBS will immediately redirect you to your account’s main menu, where you can interact with various features of your BBS instance.
- Press M, then P to tell EnigmaBBS that you want to create a new message post.
- Press Enter on the next screen to write the subject of your message. We wrote “Hello world!”
- Press Enter again to write the body of your message.
- Press Esc, then “Save” to submit your message to the BBS.
- Viewing messages in EnigmaBBS is also relatively simple. Press M, then L in the Main Menu to list all the new messages in the current message conference.
Communicating with a Different BBS
As mentioned above, EnigmaBBS also allows you to seamlessly communicate with other BBS servers. It can be especially useful if you want to introduce additional activity in your BBS instance.
- Turn off your EnigmaBBS instance by either pressing Ctrl + C or closing its terminal window.
- Edit your server’s configuration file. You can find this HJSON file under the “config” folder of the EnigmaBBS root directory.
- Find the “chatServers” option. This controls the Multi-Relay Chat function of EnigmaBBS. Look for this option by pressing / and typing “chatServers.”
- Change the “enabled” value from “false” to “true.”
- Save this file and restart EnigmaBBS.
- Access the Multi-Relay Chat by typing MRC and pressing Enter in the Main Menu.
- A new windows will load where EnigmaBBS will connect you to a chatroom with other BBS servers.
Creating a Web Content Server
Aside from sending messages, EnigmaBBS is also a highly flexible piece of software that can be extended to do whatever you want. For example, it is possible to create a content server that will display all the messages and files in the BBS.
- Open your server’s “config.hjson” file.
- Look for the “contentServer” function, a block that contains all the necessary settings that you need to set to create a Web-based content portal. We pressed / in Vim and typed “contentServer” to jump to that particular section.
- Provide a domain name for the web server that you are creating. We wrote “localhost” since we only intend to run this server in the local network.
- Tell EnigmaBBS that you want to enable its web server by changing the “enabled” value under “http” to “true.”
- Save the “config.hjson” file and restart your BBS server to apply the new settings.
- Once done, you can then visit the BBS web portal by typing localhost:8080 in your web browser.
Frequently Asked Questions
The EnigmaBBS installation script is not working
This is most likely because you are using a different shell in your system. By default, the EnigmaBBS install script uses Bash to compile the necessary programs. The script relies on Bash-specific functions to perform the installation properly. One way to solve this issue is to run the Bash shell from your current terminal by running:
/bin/bash. Doing this will change the prompt in the screen indicating that you are now using Bash. From there, you can run the installation script again.
EnigmaBBS is reporting a MODULE_NOT_FOUND error
This happens when there is a difference between the library versions that EnigmaBBS expects and what it can find in your computer.
To fix this, you need to do three things: First, you need to run
rm -rf /home/$USER/enigma-bbs/node-modules to remove all the objects that EnigmaBBS just compiled.
Then add the official NodeJS repository to your package manager in Ubuntu by running the command:
curl -sL https://deb.nodesource.com/setup_14.x | sudo bash -.
Once done, install the appropriate version of NodeJS as well as rebuild all the objects for EnigmaBBS by running this single command:
sudo apt install nodejs && nvm install v14.19.3 && npm install && npm rebuild.
Is it possible to change the default port of EnigmaBBS?
Yes. The BBS server uses port 8888 for telnet connections because most Linux distributions disable the default telnet port and do not allow any traffic through it. Despite that, you can still change the port that EnigmaBBS uses by changing a few settings in the “config.hjson” file.
Look for the
port: variable under “loginServers,” then change it to any number that does not conflict with any running service in your system.
Image credit: Unsplash All screenshots by Ramces Red
Our latest tutorials delivered straight to your inbox