Synchronet v3.19b-Win32 (install) has been released (Jan-2022).

You can donate to the Synchronet project using PayPal.

This is an old revision of the document!


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.

User

Default: <none>

Group

Default: <none>

If you do not want to run Synchronet (and all external programs/doors) as root (the Unix administrator user), you will have to set the User and Group key values. Example:

User=sbbsuser
Group=sbbsgroup

Also, the Synchronet file permissions/ownership should be such that this user/group would have read and write access to them. The best way to accomplish this is a command like:

# chown -R sbbsuser:sbbsgroup /sbbs

LogFacility

Default: U (User)

Supported Values: 0-7 (“Local0” through “Local7” facility), U (for “User” facility), and S or F (for “Standard” facilities)

If you have sbbs installed to run in the background as a daemon, logging via syslog rather than the local console, you may want to set the LogFacility key value. A good value to use is:

LogFacility=3

Then, in /etc/syslog.conf you will need to add the line:

local3.*                 /var/log/sbbs.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/sbbs.log

Then send a HUP to syslogd like so:

# killall -HUP syslogd

You could then monitor the Synchronet daemon log output with:

# tail -f /var/log/sbbs.log

You will want to investigate how your system rotates logs and set it up to rotate sbbs.log also.

# cat /etc/logrotate.d/sbbs
/var/log/sbbs*.log {
      weekly
      missingok
      rotate 52
      notifempty
      create 640 root adm
      sharedscripts
      postrotate
              invoke-rc.d rsyslog reload > /dev/null
      endscript
}

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
  

Note: the LogFacility value in the sbbs.ini file may be overridden with the -d command-line option (e.g. sbbs -d3 to daemonize sbbs with LogFacility of Local3).

LogIdent

Default: Synchronet

This is the value passed as the ident argument to the system's openlog function. Run man openlog for more details on this setting.

PidFile

Default: /var/run/sbbs.pid

This key contains the path of the file which will contain the program identify (PID) of Synchronet and is used to by backgrou/daemon startup scripts to query the current state of sbbs.

# service sbbs status
Synchronet BBS services status: [running]
PID(s): 6270

If you change the value of this key, you may also need to change/update your startup script (e.g. /etc/init.d/sbbs).

umask

Default: 077

Sets sbbs's file mode creation mask.

Note: If the value begins with a 0, it will be interpretted as octal notation.

Run man umask for more details on this setting.

Daemonize

Default: false

When set to true, forces sbbs to run daemonized (in the background) without specifying the -d command-line option.

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

1) Get the Synchronet ANSI-BBS terminfo file from here.

2) Enter the command:

# tic terminfo

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: The default value of the ExternalTermANSI sbbs.ini key is pc3. If you get an error Unknown terminal: pc3 from external programs, it means that this key value has not been set to a valid terminal type.

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:

  1. A custom kernel with the following option in the config device speaker
  2. The speaker module loaded by either:
    1. Running kldload speaker
    2. The line speaker_load=“YES” in /boot/loader.conf file

/dev/speaker should be read/writeable by the user the BBS runs as.

See Also