How to Create a BBS in Linux with EnigmaBBS

Install Enigmabbs Linux 00 Featured Image

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.

Install Enigmabbs Linux 03 Door Game Example

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.

Install Enigmabbs Linux 04 Enigmabbs Example

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.

Install Enigmabbs Linux 05 Enigmabbs Message Board Sample

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.

Installing EnigmaBBS

  1. 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
  1. Run su enigma to switch to the new user account.
  2. 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
  1. Enable the script’s execute bits and run it through your shell by running the following commands in your terminal:
chmod +x ./
  1. 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.
Install Enigmabbs Linux 07 Compiling Enigmabbs

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.

  1. Since we’re using Ubuntu, we pressed the “New Tab” button in the current terminal window.
Install Enigmabbs Linux 08 Create New Terminal Tab
  1. 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:
cd /home/$USER/enigma-bbs

Creating a New Configuration File

  1. Once inside, you can now create your BBS server’s configuration file with this command:
./oputil.js config new
Install Enigmabbs Linux 09 Create New Config
  1. 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.
Install Enigmabbs Linux 10 New Config Location
  1. You’ll be asked to name your new EnigmaBBS instance. We named ours “Hello, world!”
Install Enigmabbs Linux 11 New Bbs Name
  1. 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.
Install Enigmabbs Linux 12 New Message Conference Name
  1. 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.
Install Enigmabbs Linux 13 New Message Area Name
  1. 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.
Install Enigmabbs Linux 14 Debug Level

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.

  1. Run the following command:
  1. 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.
Install Enigmabbs Linux 15 Enigmabbs Main Menu
  1. 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
  1. Once you are connected, EnigmaBBS will print a splash screen along with three options: “Login,” “Apply” and “Logout.”
Install Enigmabbs Linux 16 Login Screen

Creating the Sysop User

By default, EnigmaBBS reserves the first user account in the server as the Sysop user.

  1. To create your administrator account, select “Apply” in the splash screen.
Install Enigmabbs Linux 17 Select Apply Login
  1. Provide a username and other information about yourself. We used “ramcesr” as our username.
Install Enigmabbs Linux 18 Half Filled Form
  1. 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.
Install Enigmabbs Linux 19 Filled Form

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.

Install Enigmabbs Linux 20 Welcome Menu
  1. Press M, then P to tell EnigmaBBS that you want to create a new message post.
  2. Press Enter on the next screen to write the subject of your message. We wrote “Hello world!”
Install Enigmabbs Linux 21 New Message Subject
  1. Press Enter again to write the body of your message.
  2. Press Esc, then “Save” to submit your message to the BBS.
Install Enigmabbs Linux 22 Save Message
  1. 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.
Install Enigmabbs Linux 23 Message List Bbs

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.

Install Enigmabbs Linux 24 Node Message Sample
  1. Turn off your EnigmaBBS instance by either pressing Ctrl + C or closing its terminal window.
  2. Edit your server’s configuration file. You can find this HJSON file under the “config” folder of the EnigmaBBS root directory.
nano /home/$USER/enigma-bbs/config/config.hjson
  1. Find the “chatServers” option. This controls the Multi-Relay Chat function of EnigmaBBS. Look for this option by pressing / and typing “chatServers.”
Install Enigmabbs Linux 25 Search Vim Function Chatservers
  1. Change the “enabled” value from “false” to “true.”
Install Enigmabbs Linux 26 Change Option Mrc Function
  1. Save this file and restart EnigmaBBS.
  1. Access the Multi-Relay Chat by typing MRC and pressing Enter in the Main Menu.
  2. A new windows will load where EnigmaBBS will connect you to a chatroom with other BBS servers.
Install Enigmabbs Linux 27 Mrc Sample Chat

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.

  1. Open your server’s “config.hjson” file.
Install Enigmabbs Linux 28 Sample Enigmabbs Hjson File
  1. 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.
Install Enigmabbs Linux 29 Search Function Vim Contentservers
  1. 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.
Install Enigmabbs Linux 30 Change Fqdn Webserver
  1. Tell EnigmaBBS that you want to enable its web server by changing the “enabled” value under “http” to “true.”
Install Enigmabbs Linux 31 Enable Webserver Option
  1. Save the “config.hjson” file and restart your BBS server to apply the new settings.
  2. 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 | 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

Ramces Red
Ramces Red

Ramces is a technology writer that lived with computers all his life. A prolific reader and a student of Anthropology, he is an eccentric character that writes articles about Linux and anything *nix.

Subscribe to our newsletter!

Our latest tutorials delivered straight to your inbox