ENiGMA 1/2 + Binkd on CentOS 7
This is a quick guide …uh, set of notes so I don’t forget for configuring ENiGMA 1/2 BBS software along with Binkd on CentOS 7 in order to hook up to FTN “othernets” such as fsxNet.
Step 1: Build & Install Binkd
Clone a copy of Binkd from Github
git clone https://github.com/pgul/binkd.git
Prepare, configure and build:
cd binkd
cp mkfls/unix/* .
./configure
make -j 4
sudo make install
Prepare Access
I’ll be running Binkd under the same account my BBS (Node.js/PM2) runs under, so create a couple directories and chown them:
sudo mkdir /var/run/binkd
sudo mkdir /var/log/binkd
sudo chown enigma:enigma /var/run/binkd
sudo chown engima:enigma /var/log/binkd
Binkd Config
Below is my current configuration script with a couple portions censored:
# Number @ end is the root zone
domain fsxnet /home/enigma/xibalba/mail/ftn_out 21
# Our fsxNet address
address 21:1/121@fsxnet
sysname "Xibalba"
location "Salt Lake City, Utah"
sysop "NuSkooler"
nodeinfo 115200,TCP,BINKP
try 10
hold 600
send-if-pwd
log /var/log/binkd/binkd.log
loglevel 4
conlog 4
percents
printq
backresolv
inbound /home/enigma/xibalba/mail/ftn_in
temp-inbound /home/enigma/xibalba/mail/ftn_in_temp
minfree 2048
minfree-nonsecure 2048
kill-dup-partial-files
kill-old-partial-files 86400
prescan
# Agency HUB
node 21:1/100@fsxnet -md ipv4.agency.bbs.geek.nz:24556 YOUR_SESSION_PASSWORD c
# our listening port (default=24554)
# use a different port for basic added security-ish (e.g. avoid generic scans)
iport 54554
pid-file /var/run/binkd/binkd.pid
# touch a watch file when files are received to kick of toss
flag /home/enigma/xibalba/mail/ftn_in/toss!.now *.su? *.mo? *.tu? *.we? *.th? *.fr? *.sa? *.pkt *.tic
# nuke old .bsy/.csy files after 24 hours
kill-old-bsy 43200
ENiGMA 1/2 Config
Next, my ENiGMA 1/2 configuration (fragment) from config.hjson
declaring message areas, node information, uplinks, etc.
{
messageConferences: {
/* ...other confs & areas ... */
fsxnet: {
name: fsxNet
desc: "[F]un, [S]imple, e[X]perimental Network"
sort: 2
areas: {
fsx_gen: {
name: General
desc: fsxNet chat, testing and more...
sort: 1
}
}
}
}
messageNetworks: {
originLine: Xibalba ~ xibalba.l33t.codes:44510
ftn: {
networks: {
fsxnet: {
localAddress: "21:1/121"
}
}
areas: {
fsx_gen: {
network: fsxnet
tag: FSX_GEN
uplinks: [ "21:1/100" ]
}
}
}
}
scannerTossers: {
ftn_bso: {
schedule: {
import: every 1 hours or @watch:/home/enigma/mail/ftn_in/toss!.now
export: every 1 hours or @immediate
}
defaultZone: 21
defaultNetwork: fsxnet
nodes: {
"21:1/100": {
archiveType: ZIP
encoding: utf8
}
}
}
}
//
// Configure 7z, which is 7za on CentOS: just override some defaults
//
archivers: {
zip: {
compressCmd: "7za"
decompressCmd: "7za"
}
}
}
Systemd
I’d like Binkd to run under Systemd. Below is my /usr/lib/systemd/system/binkd.service:
[Unit]
Description=BinkD FTN Server
After=syslog.target network.target
[Service]
Type=forking
ExecStart=/usr/local/sbin/binkd -D /home/enigma/xibalba/misc/binkd_xibalba.conf
PIDFile=/var/run/binkd/binkd.pid
ExecReload=/bin/kill -HUP ${MAINPID}
ExecStop=/bin/kill ${MAINPID}
User=enigma
Group=enigma
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
Register it with the system and start!
systemctl enable binkd
systemctl start binkd