by Joel Aufrecht

OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

This documentation refers to the setup of the OpenACS test-servers of 2003. This setup was active probably around 5 years, and is obsolete. Use regression testing of your local instance and Refer to a CI/CD pipeline as presented at the OpenACS conference in 2022.

Here's the entire chain of code used to set up auto-rebuilding servers on

  • The master server shows the status of all other servers. For, it listens on port 80.

    1. The acs-automated-testing parameter IsInstallReportServer is set to 1

    2. The acs-automated-testing parameter XMLReportDir is set to /var/log/openacs-install. This is arbitrary - it just needs to be somewhere all the servers can write to.

  • For each server that will be monitored:

    1. Suppose the first test server is service1. Set up a dedicated user and automated install script.

    2. To run automated testing automatically each time the server is rebuilt, add this to /home/service1/install/install.tcl:

             set do_tclapi_testing "yes"
    3. Get the results of the automated tests dumped where the master server can see them - in this example, the same directory as above, /var/log/openacs-install, by adding this to install.tcl (requires 5.1):

                set install_xml_file          "/var/lib/aolserver/service0/packages/acs-core-docs/www/files/install-autotest.xml"

      This will copy in the file install-autotest.xml:

      <?xml version="1.0"?>
      <!-- This is an install.xml which can be used to configure servers for reporting their automated test results.  Requires acs-automated-testing 5.1.0b2 or better -->
      <application name="acs-automated-testing" pretty-name="Automated Testing" home="">
          <set-parameter package="acs-automated-testing" name="XMLReportDir" value="/var/log/openacs-install"/>

      which will, during install, configure that parameter in acs-automated-testing on the monitored server.

  • To enable the 'rebuild server' link, edit the file /usr/local/bin/

    # script to trigger a server rebuild
    # hard-coding the valid server names here for some minimal security
    case $1 in
        service1) ;;
        service2) ;;
            echo "Usage: $0 servername"
    sudo /home/$1/install/ 2>&1

    and allow the master user to execute this file as root (this is a limitation of the automatic install script, which must be root). In /etc/sudoers, include a line:

    master ALL = NOPASSWD: /usr/local/bin/