This is an old revision of the document!
Table of Contents
UNIX
sbbs.ini
Unix Sysops will particularly want to pay attention to the [UNIX]
section of your initialization file (e.g. ctrl/sbbs.ini
file.
If you do not want to run Synchronet (and all external programs/doors) as
root, you will have to set the User
and Group
key values. Example:
User=sbbsgroup Group=sbbsuser
Also, the file permissions/ownership should be such that the other user would have read and write access to them. The best way to accomplish this is a command like:
# chown -R sbbsuser:sbbsgroup /sbbs
If you want Synchronet to fork and run in the background as a daemon, logging via syslog rather than the local console, set Daemonize=True in this section. Example:
Daemonize=True
To configure syslog and the LogFacility
, a good default to use is:
LogFacility=3
Then, in /etc/syslog.conf
you will need to add the line:
local3.* /var/log/synchronet.log
Depending on how your vendor set up syslog.conf
initially, you may also want
to exclude local3.* from other log files (Noteably /var/log/messages
). how to
do this varies with your syslogd implementation, but for BSD based ones
(Which BSD and many Linux distros use) you would add “;local3.none” to the
end of the first field in the /var/log/messages
line.
You will have to create this file manually initially by running:
# touch /var/log/synchronet.log
Then send a HUP to syslogd like so:
# killall -HUP syslogd
You will want to investigate how your system rotates logs and set it up to
rotate synchronet.log
also.
Further use of the LogFacility
setting is beyond the scope of this document.
Read your syslog.conf
manpage for more information about this. In particular,
do NOT use the 'S' setting unless you are familiar with advanced syslogd
configuration. The S setting will use different facilities for each feature
of Synchronet as appropriate. Specifically, S will use:
LOG_AUTH LOG_DAEMON LOG_FTP (If available) LOG_MAIL LOG_CRON
LogIdent
Default: Synchronet
PidFile
Default: /var/run/sbbs.pid
umask
Default: 077
Terminal Capabilities
As you may have noticed by now, most telnet clients designed for use with
ANSI BBSes do not display full-screen Unix programs correctly. Included with
Synchronet is a pair of terminal capability definition files that enable you
to run native full-screen Unix programs and have the output displayed correctly
in a standard ANSI-BBS terminal. These files are termcap
and terminfo
,
located in your Synchronet install directory. Your system will use one or the
other, and it won't hurt to install both. You will need to be logged in as
root to install the files.
Installing the terminfo file
Installing the termcap file
1) Get the Synchronet ANSI-BBS termcap file from here.
2) Enter the command:
# cat termcap >> /etc/termcap
3) FreeBSD Only run the command:
# cap_mkdb -f /usr/share/misc/termcap /etc/termcap
Once the terminal capability files are installed, edit the ExternalTermANSI
value in the [BBS]
section of your sbbs.ini
file to read:
ExternalTermANSI=ansi-bbs
Note: Once again, many Linux distros do not have a termcap. This is fine.
You do NOT need to install the termcap-compat package. If termcap
isn't installed, it means nothing uses it. Only if there is a
termcap do you need to add the ansi-bbs
termcap definition.
Running Synchronet Automatically During Boot-up
If you want Synchronet to start automatically whenever your system boots, you will need to set that up using the system rc scripts. A few example are:
Linux
1) Get the Synchronet service run script (init file) from here.
2) Copy the run script (sbbs
) into your /etc/init.d
directory (if you don't have this directory, then your Linux distribution isn't supported by this file).
3) Add the Synchronet system service:
# chkconfig --add sbbs
4) Start the Synchronet system service:
# /etc/init.d/sbbs start
FreeBSD
1) Get the Synchronet service run script (init file) from here.
2) Copy the run script (sbbs) into your /etc/rc.d
directory (If using FreeBSD 4.x, install the rc_subr port and copy the run script to /usr/local/etc/rc.d/sbbs.sh
instead)
3) Set up the sbbs settings:
In one of /etc/rc.conf
, /etc/rc.conf.local
, or /etc/rc.conf.d/sbbs
, add the
line:
sbbs_enable=YES # Required to run Synchronet
4) In one of the files from step three, add appropriate lines from the following (Defaults are shown here):
sbbs_flags="" # Additional command-line flags sbbs_pidfile="/var/run/sbbs.pid" # Path of pid from your .ini sbbs_dir="/sbbs/" # Root sbbs path # The rest of the sbbs_*dir derive # from this be default sbbs_ctrldir="${sbbs_dir}/ctrl/" sbbs_execdir="${sbbs_dir}/exec/" sbbs_program="${sbbs_execdir}/sbbs" # Synchronet binary sbbs_procname="${sbbs_program}" # Process name as seen by ps(1) sbbs_shell="/bin/sh" # SHELL variable sbbs_user="root" # User to START sbbs as. If this is # not root, you cannot bind low ports sbbs_group="wheel" # Group to start sbbs as
5) Start the Synchronet system service (FreeBSD 5.x+):
# /etc/rc.d/sbbs start
(FreeBSD 4.x and lower):
# /usr/local/etc/rc.d/sbbs.sh start
A note on SysOp paging
For most systems, the BBS must either have write access to the sound card via /dev/dsp, or run as root to page the SysOp. FreeBSD supports an alternative method which requires one of the following:
On FreeBSD 4.x
A custom kernel with the following option in the config pseudo-device speaker
On FreeBSD 5.x and higher
One of:
- A custom kernel with the following option in the config device speaker
- The speaker module loaded by either:
- Running
kldload speaker
- The line
speaker_load=“YES”
in/boot/loader.conf
file
/dev/speaker
should be read/writeable by the user the BBS runs as.