Yapp Online Users Guide
Help for Yapp UNIX Administrators
Installing Yapp
To get started running Yapp, you need to have the following:

Generic distributions and binaries for several operating systems are available at:

To obtain a Yapp license, send email to:

Once you have acquired the above items, you may proceed as follows:

  1. Decide on what login to use to own Yapp files. A separate user account (typically "yapp", but can be anything), should be created to own the bbs files. We will refer to this account as cfadm. Access to this account is needed for a Yapp administrator to create and delete new conferences. We will refer to anyone with access to the cfadm account as the "Yapp administrator''.
  2. Log in as cfadm, and uncompress and untar the generic distribution and the binary distribution in the destination directory (e.g. /usr/bbs). We will herafter refer to this directory as bbsdir. For example:
  3. cd /usr/bbs
    gunzip yapp.3.0.11-generic-dist.tar.gz
    tar -xvf yapp.3.0.11-generic-dist.tar
    gunzip yapp3.0.11-solaris-bin.tar.gz
    tar -xvf yapp3.0.11-solaris-bin.tar

  4. While still logged in as cfadm, run the Install script from the bbsdir directory.


    This will prompt you for the remaining items and may give you additional information about what needs to be done. The default value will be shown in square brackets. If you wish to use the defaults shown, you may simply hit enter at the prompts.

  5. Login to be used as bbs owner [cfadm]:
    This should be the cfadm login (see Step 1), and must be the same as the login you are running the Install script as.

    WWW login to be used as sysop [sysop]:
    This is the web-side login which will be able to access Yapp administrative functions from the web. (We will refer hereafter to this login as sysop.) It may be the same as cfadm but is usually "sysop".

    Unix login used by httpd to invoke programs as [nobody]:
    This is the login (typically "nobody") which httpd uses to execute CGI scripts. (We will refer hereafter to this login as nobody.) Its value can be found for the NCSA and Apache web servers by looking up the value of User in the web server's httpd.conf file.

    Enter bbsdir [/usr/bbs]:
    This is the main Yapp subdirectory, and should be the same as the current directory when invoking the Install script.

    Enter wwwdir [/usr/bbs/www]:
    This is the subdirectory under which Yapp will put all web-related file and CGI script directories.

    Enter licensedir [/usr/bbs/license]:
    This is the subdirectory which Yapp will use for your license information.

    Enter confdir [/usr/bbs/confs]:
    This is the subdirectory under which Yapp will look for individual conference directories.

    Enter userhome [/usr/bbs/www/home]:
    This is the subdirectory under which Yapp will keep home directories for web-only users.

    Enter userfile [~/passwd]:
    This is where Yapp will keep miscellaneous user information for web-only users. If the filename begins with a '~', Yapp will use a separate file for each web user, stored in their home directory. Otherwise, Yapp will keep a single shared file in the indicated location, with one line per web user.

    Enter passfile [/usr/bbs/etc/.htpasswd]:
    This is the password file used for web logins, where encrypted passwords are stored.

    Enter sendmail [/usr/lib/sendmail]:
    This is the location of the sendmail program on your system. Yapp attempts to find the correct location itself and displays it as the default.

    Enter maildir [/var/mail]:
    This should be set to the system mail directory. Yapp will look for the user's mailbox there and inform the user when new mail arrives.

    Allow hosts to freeze items linked to other conferences? [true]:
    Yapp allows an item to simultaneously exist in multiple conferences, each controlled by their own fairwitnesses (hosts). By default, a host in any of those conferences will be able to do administrative functions on the item. You can disable this feature by answering false.

    Allow users to censor/scribble responses in frozen items? [true]:
    When this feature is enabled, users can censor, scribble, and edit their own responses in frozen items. You can disable this feature by answering false.

    Use compressed DBM file for user information?[false]:
    This refers to the "userfile" mentioned above, and is only valid when separate user files are kept per user. Answering false means that information is kept as plain text. Answering true tells Yapp to keep information in DBM format. Note that webuser does not currently support DBM format files.

    Participation file directory? [/usr/bbs/part]:
    Yapp can allow a user to log in in via either Unix or the WWW and maintain a single set of data on what the user has previously read. However, if such combining is used, compatibility with PicoSpan is lost. If you don't run PicoSpan, just hit return. If you do run PicoSpan, you should enter the word "work".

    Padding size? [78]:
    Yapp allows authors to edit their item subjects and response text as long as the new text fits into the old space. The padding option tells Yapp to leave extra space when entering subjects and responses so that there is extra leeway when editing. Be aware that this will cause older Yapp binaries to display ",E'' at the end of responses, so you should currently use a padding size of 0 if you require backward compatability.

    Changing to cfadm-owned participation files
    If you are changing from using user-owned participation files to using cfadm-owned participation files, and you wish to retain existing information about what users have already seen, then participation files under users' home directories must be placed under the new directory subtree. If you want the Install script to automatically do this for you, hit return at the prompt. Otherwise, answer no.

    Once you have answered the above questions, the Install script will attempt to install the options you have requested. Afterwards, it will report any outstanding installation steps which must be performed by root. Those items are described below.

  6. If directed to do so by the Install script, copy or link the file ./yapp.conf into one of the following places:

For more information on the yapp.conf file, see Yapp Technical Info.

  • If directed to do so by the Install script, copy or link bbsdir/bin/bbs to /usr/local/bin/bbs, where it should be mode 4711, and owned by cfadm.

    Additionally (if directed to), you may want to copy or link bbsdir/webuser to /usr/local/bin/webuser. It should be mode 4711 and owned by root. (See section on webuser for more information.)

  • The man pages for bbs and webuser are in the bbsdir/man directory. These web pages can be installed in a standard man directory if you wish. For example:

    cp /usr/bbs/man/* /usr/bbs/man/man1

    You may also print the Yapp Manual by running the printman command in the bbsdir/help directory. For example:

    printman | lpr
  • You should install the license you obtained from Armidale Software in the license directory (bbsdir/license). The license has a specific format, and should be copied into a new text file called bbsdir/license/registered. It should be owned by cfadm, mode 644.
  • Tell your web server about Yapp:

    Configuring the NCSA or Apache HTTP servers
    Add the /yapp-bin/ script alias to your server configuration file (srm.conf)
    ScriptAlias /yapp-bin/ bbsdir/www/cgi-bin/

    Add the /yapp-icons/ alias to your server configuration file (srm.conf)
    Alias /yapp-icons/ bbsdir/www/gifs/

    After configuring your HTTP server, restart the httpd daemon.

    Configuring the CERN HTTP server
    The Cern server requires a separate Exec directive for each directory containing cgi programs. So, you need to put the following lines in your server configuration file (where bbsdir is the appropriate directory for your system):
    Exec /yapp-bin/restricted/* bbsdir/www/cgi-bin/restricted/*
    Exec /yapp-bin/public/* bbsdir/www/cgi-bin/public/*

    Since the cgi-bin directory may not be within the directory tree for the server you may need to follow these steps:

    1. To allow everyone with a password to access Yapp's restricted directory, set your configuration as follows:
      ProtectionYAPP {
      PasswordFile   bbsdir/etc/.htpasswd
      Protect /yapp-bin/restricted/* YAPP

      If you would like to define a group of users who may have access to the restricted directory you must create a separate groupfile. For more information, see Cern's documentation at:

    2. In the Yapp bbsdir/www/cgi-bin/restricted directory, you must create a file called .www_acl. That file should contain the line:

      * : GET,POST : All

      This will allow all users with passwords access to the restricted directory.

    After configuring your HTTP server, restart the httpd daemon.

  • The following are links which you may wish to add to your own pages.

    The main menu of Yapp: /yapp-bin/restricted/main
    The newuser login page: /yapp-bin/public/newuser
    An index of read-only conferences: /yapp-bin/public/index

  • Optionally create a mail alias to use with mailing list conferences by adding the following line to /etc/aliases.

    cflink:" /usr/local/bin/bbs -i"

    Then to activate the new alias do: newaliases

    See Help for Yapp Sysops for more information on configuring mailing list conferences.

  • If the Yapp user home directory is first created by the Install script, it will not be owned by the nobody login. The Install script will tell you to chown this directory if it needs to be done.

    For example (as root):   chown nobody /usr/local/yapp/www/home

  • Note for Solaris systems only:
    When a script's shell is a setuid program, Solaris doesn't do the setuid. This is a problem for Yapp scripts, since Yapp must run setuid cfadm. A workaround is to make all Yapp scripts in bbsdir/www/cgi-bin/public and bbsdir/www/cgi-bin/restricted setuid cfadm.

    If you are running Yapp on Solaris, you need to make all Yapp scripts be owned by cfadm, mode 4755.

  • If the cfadm and sysop logins are different (i.e. "yapp" and "sysop" respectively), you should immediately go through the newuser process (at http://localhost/yapp-bin/public/newuser) and create the sysop web account. This login will be able to access administration functions from the WWW.

  • Back to: Main Index