Linux:Synchronet
Introduction
Synchronet (known as SBBS) is an all encompassing bulletin board software written by Rob Swindell that includes many integrated features such as servers for smtp, ftp, nntp (news), www, gopher plus more, along with QWK and Fidonet compatibility.
It compiles cleanly on Ubuntu 16.04 LTS Linux release which is available to any home user and many VPS providers.
In this wiki, I will walk you through setting up SBBS from start to finish including everything you need to get going on the Linux side.
Since you have chosen to use Linux, I'll assume that you know the basics such as how to edit files using vim or other editor of your choice, how to change directories, list, copy, and find files and other basic tasks. At the very least if you're unable to login as root then maybe you should try the Windows version.
Setting up the Linux environment
Since the only thing I will be running on my server is SBBS, I want to remove all the other packages that may interfere with it. If your host is also a mail server, you may have problems having SBBS also be a mail server until you have two ip addresses. This will be covered later. Since you can get a VPS for around $20 a year, I recommend getting a dedicated box for your BBS.
- Login to your system as root. In most Ubuntu examples they have you use a regular user with sudo and you're free to do that. I find it time consuming and this will speed you through quicker. Most VPS providers enable ssh as root by default.
- generate a locale for your box.
It seems Ubuntu doesn't come with a default locale. Since we're working with software written in English and most likely you can read English, we're go with US English for now by using en_US.UTF-8. If you know your own locale setting then feel free to choose that.
locate-gen en_US.UTF-8
update-locale
- Set the correct timezone. Use the timezone selection utility
dpkg-reconfigure tzdata
Select your geographic area then the city or region. The result will be the new current default timezone, the time and the UTC time.
- Remove the packages that we don't need. Since I am not going to be running a separate web server, mail server or using samba, I'm going to remove those pages. It saves disk space, processor usage and makes updates quicker.
apt-get remove apache2 apache2-bin apache2-data apache2-doc apache2-mpm-prefork apache2-utils bind9utils ldap-utils libldap-2.4-2 python-samba samba samba-common samba-common-bin samba-libs bsd-mailx postfix
- Once those packages are removed then it's time to make sure your system is updated to the latest and greatest.
vi /etc/apt/sources.list
add the following source to the top of the list
deb http://mirrors.kernel.org/ubuntu xenial main multiverse
- Update the sources
apt-get update
- Finally upgrade your packages to the latest
apt-get upgrade
At this stage you may wish to reboot to ensure that everything comes up clean. If you're happy then we can proceed.
- Now we need to install a bunch of packages that we'll need to build the SBBS package, plus some other useful tools. Some may be pre-installed by your provider depending on how they build their image. You will be told about additional packages that will be installed if they are needed. Some may not be needed if you're not going to use zoo or arc compression, for example, but at least they will be there if you need them.
apt-get install gcc g++ cpp dos2unix socat zoo arj arc libperl-dev zlibc zlib1g-dev libbz2-dev zip mawk autotools-dev automake autoconf xutils-dev cvs netcat netcat-traditional iptables-persistent libnspr4-dev libnspr4 libncurses5-dev libtinfo-dev bzip2-doc cpp-5 g++-5 gcc-5 gcc-5-base libasan2 libatomic1 libc-dev-bin libc6 libc6-dev libcc1-0 libcilkrts5 libgcc-5-dev libgomp1 libtool flex bison libbison-dev libfl-dev libisl15 libitm1 liblsan0 libltdl-dev libmpc3 libmpx0 libquadmath0 libstdc++-5-dev libstdc++6 libtsan0 libubsan0 linux-libc-dev manpages-dev netfilter-persistent zlib1g dpkg-dev fakeroot libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libdpkg-perl libfakeroot pkg-config autoconf2.13 libfile-fcntllock-perl libopts25 ntp bind9-host dnsutils libbind9-140 libdns162 libisc160 libisccfg140 liblwres141 binkd
Answer Yes to save ipv4 and ipv6 rules and OK the warning about the kernel.
- As soon as the packages are installed you need to stop binkd since we'll be making a change to the startup parameters.
systemctl stop binkd
- edit the binkd startup script and change ftn to bbs for both User and Group.
vi /lib/systemd/system/binkd.service
- reload in the systemd config
systemctl daemon-reload
- Add a user for your BBS to run under. Run the addsuer command and fill in any of the details you wish to and create a password.
addsuer bbs
- Edit the bashrc to add in some environment variables that'll be needed
vi /home/bbs/.bashrc
Add the following 3 lines to the bottom
export PATH=$PATH:/sbbs/exec export SBBSCTRL=/sbbs/ctrl export SBBSNODE=/sbbs/node1
- For ease of use and make it easy to follow the SBBS documentation create a directory, symbolic link and change some ownerships to make it all work together
mkdir /home/bbs/sbbs
ln -s /home/bbs/sbbs /sbbs
chown -R bbs. /var/log/binkd /etc/binkd/binkd.* /var/run/ftn /home/bbs/sbbs
- Install the ansi-bb file for proper compatibility.
wget http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/install/terminfo
tic terminfo