Software Dispenser

  1. Create the configuration
  2. Installing the CMS
  3. Testing an installation
  4. Upgrading an installation
  5. Configuration Examples

The magic software dispenser will install a CMS for a syscp domain based on a few values in a configuration file. The source code is available here.

Create the configuration

The configuration files for the dispenser live in /var/users/configs/cms on the admin vserver.

The configuration file naming format is this:

username[#cms]

Where #cms is optional, and means "the pound sign followed by any text string, most likely the name of the cms." The username part of the config filename will determine what home directory to use for installing the CMS. Example valid filenames might be "blue", "blue#drupal", or "joehill#2".

Each CMS has a different values which you must fill in. In general, you must always specify cms, version, and domain. See Configuration Examples below.

Installing the CMS

To install, run this command:

# cms <config-filename> install

config-filename is the name of the configuration file created above. You do not specify the full path, just the filename.

The command cms must be run as root from the admin vserver.

Testing an installation

# cms <config-filename> verify

Upgrading an installation

# cms <config-filename> upgrade

( this doesn't actually work yet).

Configuration Examples

All configurations share these options:

  • cms: (required) the name of the CMS to be installed.
  • domains: (required) a space separated list of domains. these should be the fully qualified domain names under which this CMS will be installed.
  • version: (required) the version number of the CMS. It must be in the form "0.0.0" or the word "latest".
  • path: (required) what url path should this CMS be installed under. If path is /, then the CMS is installed on the root of the domain. The path only works if it is one level deep (a value of /mypath works, but /my/path does not).
  • docroot: (optional) if the docroot for this domain is not the default, you can change it with this option. Relative file paths are relative to the default docroot. For example, suppose you had one user "blue" but many different sites for this user. The user's home dir is /var/users/webs/blue and the different sites are in /var/users/webs/blue/site1, /var/users/webs/blue/site2, etc. In this case, you would set the config option docroot to be 'site1' when installing a cms for site1.
Drupal has these additional options:
  • dbuser, dbpass: the username and password of the database to use.
PmWiki has these additional options:
  • title: the website title (required).
  • skin: what skin to use (optional).
  • logo: url of a image to use for the logo (optional).
  • adminpass, readpass, editpass, uploadpass: password for access to admin, read, edit, and upload functions (respectively). Leave blank to allow access to anyone.
Bamboo example:
  cms = bamboo
  version = latest
  domains = demo.revolt.org demo2.revolt.org
  path = /bamboo-demo

Drupal example:
  cms = drupal
  version = 4.6.3
  domains = demo.revolt.org
  path = /drupal
  dbuser = demosql1
  dbpass = i73nav6

PmWiki example:
  cms = pmwiki
  version = 2.0.2
  domains = demo.revolt.org
  path = /pmwiki
  title = demo
  skin =
  logo =
  adminpass = demo
  readpass =
  editpass = demo
  uploadpass = demo