This is an evolving plan for implimenting an easy web based installation of MoinMoin. See: FeatureRequests/EasyWebBasedInstallOnHostingWithoutShellAccess

User story

The user wants a single wiki setup with minimum configuration. For now, we won't worry about wikifarms, but we'll make it possible for a user to add another wiki later.

  1. Download moinmoin as archive
  2. Unpack the archive
  3. Upload the unpacked folder to site
    1. Optionally upload some folders outside of public html directory as indicated on help page (to be created)
  4. Navigate to http://example.com/moinmoin

  5. Follow the easy directions from there

Steps of the installation

Initial Redirect

When moin.cgi detects that it is unconfigured, it redirects to the install.cgi

Basic Information and Requirements Check

Perhaps try some magic to determine the location of their python binary. If we have access to just about any programming language (php, bash... anything) we can probably run which python, and otherwise we can just attempt several different locations /usr/bin/env python, etc. The idea behind this would be to have a way to redirect from one page to the next, each trying a different language until we find one that runs. The trick to doing this is some sort of conditional redirect, and doing that in html is nontrivial. If this is feasible we could then edit the moin.cgi and install.cgi's shebangs to point to this binary.

Require that Python is of the minimum version. Require that we have access to write to all of the necessary files and directories.

List of files/dirs we need access to:

On the page giving installation instructions for this install method, we should give two options for layout of the moinmoin directory structure. One for everything in the public html space, and another (preferred) for when the user can upload outside of the public html directory. This way we can make good guesses about the locations of files. After tracking down these files we edit the relevant lines in moin.cgi and moinconfig.cgi to point to the correct locations. If it appears that the data, underlay, and MoinMoin directories are in the public html directory, we could even create .htaccess files to deny access to them.

After this, much of the essential work is done. We then prompt for some basic configuration information as outlined below and save the changes.

If there's a lot of demand for configuration via a web based interface, it might be best to handle that with a config screen accessible after the wiki is installed.

[Todo: annotate this with additional information and a wikipage with more info]

Configuration options that we need to account for:

  1. Apache user/group
    1. This was specified on the feature request page, but I'm not sure what it is useful for. If possible, it would be nice to keep the user from needing to put this in, either by detecting when it isn't necessary or trying to figure it out.
  2. Wiki's name
  3. Image logo (also display the current default)
  4. First username
  5. Default Language
  6. Email info (optional)
    1. SMTP Host
    2. Return address
    3. Password

Migration

If we can tell that the user is upgrading from an earlier version, we can migrate their data at this point. I'm unfamiliar with how MoinMoin stores data on the drive and how that has changed from version to version, so I'll need to look into that.

Done

Redirect to their new wiki.

Backup

Zip up their data directory and send this file to the user.

Could look into the config files but much of this information isn't portable.

Tricky aspects

MoinMoin: PeterBurns/EasyWebBasedInstall (last edited 2007-10-29 19:08:23 by localhost)