How To Create A BBS In Linux With EnigmaBBS
Creating a BBS (Bulletin Board System) on Linux with EnigmaBBS is a rewarding project that combines nostalgia with modern functionality. Here’s a step-by-step guide to help you set up your own EnigmaBBS server.
Installing Dependencies and Setting Up the Environment
Before you start, ensure your Linux system has the necessary dependencies installed. You will need to install several packages, including curl
, git
, make
, gcc
, g++
, python
, p7zip
, lhasa
, arj
, lrzsz
, and python-is-python3
.
sudo apt install curl git make gcc g++ python p7zip lhasa arj lrzsz python-is-python3
Next, create a separate user account for the BBS server to ensure it does not have access to your personal files. Run the following commands to create the user and set a password:
sudo useradd -s /bin/bash -d /home/enigma -m -G sudo enigma
sudo passwd enigma
Switch to the new user account:
su enigma
Downloading and Installing EnigmaBBS
Download the EnigmaBBS installation script, which will fetch, compile, and install all the necessary tools. Run the following commands:
wget https://raw.githubusercontent.com/NuSkooler/enigma-bbs/master/misc/install.sh
chmod +x ./install.sh
./install.sh
This script will begin by downloading all the packages needed to compile NodeJS and then install the BBS software.
Generating Your EnigmaBBS Configuration
After the installation is complete, open a new terminal window to ensure all programs are detected correctly. Navigate to the EnigmaBBS root directory:
cd /home/$USER/enigma-bbs
Create your BBS server’s configuration file using the following command:
./oputil.js config new
Follow the prompts to set up your configuration. You will be asked to name your EnigmaBBS instance, set up message conferences and areas, and configure logging levels. For most settings, you can use the default values by pressing Enter
.
Customizing Your BBS
EnigmaBBS is highly customizable, allowing you to tailor your BBS to your preferences. Here are some key customization options:
- Configuration Files: EnigmaBBS uses HJSON-based configuration files. You can edit these files to customize menus, themes, and other settings.
- JavaScript Mods: You can create JavaScript-based mods to extend the functionality of your BBS.
- ASCII/ANSI Artwork: You can add ASCII/ANSI artwork to enhance the visual appeal of your BBS.
- Message Networks: EnigmaBBS supports message networks with FidoNet Type Network (FTN) and BinkleyTerm Style Outbound (BSO) message import/export.
Running Your EnigmaBBS Server
To start your EnigmaBBS server, navigate to the root directory of your EnigmaBBS installation and run the following command:
./main.js
This will boot up EnigmaBBS and expose it to your local network. You can connect to it using a telnet client or a web browser.
Accessing Your BBS
To access your BBS, open a telnet client and connect to localhost
on the port specified during the configuration (usually port 8888). Alternatively, you can access it via a web browser by navigating to http://localhost:8888
.
Security Considerations
Ensure your BBS is set up securely by configuring strong passwords and enabling two-factor authentication if desired. EnigmaBBS supports PBKDF2-backed password encryption and One-Time-Passwords for 2-factor authentication.
Troubleshooting and Logging
EnigmaBBS provides structured Bunyan logging, which helps in diagnosing issues. You can adjust the logging level during the configuration process to keep diagnostic information or increase logging for troubleshooting purposes.
Additional Features and Support
- Door Games: EnigmaBBS supports door games, including common dropfile formats for legacy DOS doors.
- File Bases: The software includes Gazelle-inspired file bases with full-text search, tags, and HTTP(S) temporary download URLs.
- Community Support: For further assistance, you can join the EnigmaBBS community on IRC (
#enigma-bbs
onirc.libera.chat:6697
) or check out the GitHub discussions and issue tracker.
By following these steps, you can create a fully functional and highly customizable BBS server using EnigmaBBS on your Linux system.