OpenInteract - A robust web application framework built to run under Apache and mod_perl


OpenInteract is an extensible application server using Apache and mod_perl built for developers but also to be manageable almost entirely via the web browser. It includes:

  • A robust system of components built on templates that can access your data just about any way that you can think of.

  • A very flexible separation of presentation and data access: you can use one template for accessing data from different sources using one template (e.g., a listing of users from the system, from an LDAP server, from an NT/SMB authentication controller, etc.) or you can use one set of data to fill multiple templates.

  • A consistent security mechanism allowing you to control security for users and groups not only at the task level, but also at the individual data object level.

  • A simple user and group-management system that allows users to create their own accounts and an administrator to assign them to one or more groups.

  • A convenient packaging system that makes it simple for developers to distribute code, configuration and all other information necessary for an application. It also makes the installation and upgrading processes very straightforward and simple.

  • An integrated, database-independent method for distributing data necessary for a package. You should be able to install any package on any database that's been tested with OpenInteract. (Some of this work must be done by the package authors, but OpenInteract tries to make this as painless as possible.)


OpenInteract uses a number of CPAN modules, relying heavily on the following required modules:

SPOPS (Simple Perl Object Persistence with Security). This module was developed in tandem with this framework but stands on its own as a full-featured object serialization system. It also implements security.

Template Toolkit. This is the best templating environment available for Perl. Version 2 has major performance improvements and also includes usability enhancements. It's also required by OI.

Apache::Session. Provide datasource-independent means of session management.

Many others are also used -- why reinvent the wheel when there are so many other well-built ones already around around and so many interesting problems to conquer?

OpenInteract is usable right now, out of the box. That doesn't mean we're sitting on our laurels -- we're working on a number of different features to OpenInteract which will be added soon to the 'TODO' file found in the OpenInteract source directory.


A file 'INSTALL' is included with the OpenInteract distribution. It shows you the simple steps needed for installation. If you ask this question on a mailing list (below), someone will likely post:

  1. Read and follow the directions in INSTALL.

  2. Read and follow the directions in INSTALL.

  3. Return to step (1).


OpenInteract comes with a few forms of documentation:

  • System-wide: These files are in HTML format and are geared for people first learning about OpenInteract, whether from a content-management view, developer view or administration view. You can find them in the doc/ directory of the source distribution -- open up the index.html file for a table of contents.

    The files are also installed with every website. Once you have the website up and running, go to:

    And click on View OpenInteract Documentation.

  • Package: These files come in the doc/ subdirectory of every package and give you some idea of what the package does and how you can do it. Some packages (like base) come with documentation that describe integral system functionality.

    To view the package documentation, go to:

    And click on View Package Documentation. This lists the packages currently installed and the available documentation for each.

    Note that package documentation is somewhat lacking right now, but we're in the process of fixing this. In the meantime, check out the Module documentation below.

  • Module: Normal Perl documentation can/should be found in the modules that actually do the work. Since OpenInteract uses its own packaging system you won't be able to find them via perldoc as usual. (You could circumvent this by putting the package directory in the base installation in PERL5LIB, but this isn't recommended.)

    Instead, you can use the browser interface and go to:

    And choose View SPOPS/OpenInteract Module Documentation. This gives you a web interface to view the modules (And yes, it looks fine through lynx.)

    Similarly, you can click on View Perl Module Documentation and see all the other Perl modules used by OpenInteract. Click on the module name and you'll be able to see the docs online. This is especially helpful for the Template Toolkit, which comes with a huge amount of documentation.


We're interested in your feedback on a number of topics. In particular:

  • How did you find the installation process? Was OpenInteract simple to install and configure?

  • How easy was it for you to create a website, install its SQL structures and data and import its templates?

  • Which documentation do you feel is lacking?

As you might tell, we're keenly aware that installation and initial understanding can be a big barrier to entry with a fairly substantial application like this. Feedback is crucial for us to plug the holes.

We also hope to extend certain features (such as users and groups) to different types of data sources, like LDAP directories. Other applications of OpenInteract really depend on what you'd like it to do!

Updates can be found in two places:

CVS access, mailing list information and archives, bug tracking.

Latest news, package repository, everything else.


Thanks for trying out OpenInteract! If you have any questions, comments, thoughts, diatribes, check out the various OpenInteract mailing lists, hosted at SourceForge at the above URL.


OpenInteract is Copyright (c) 2001-2002, inc.. All rights reserved.

The OpenInteract library(**) is free software; you can redistribute it and/or modify it under the terms of the Perl Artistic License or the GNU General Public License as published by the Free Software Foundation; either version 2 of the License (see the file COPYING in the source distribution), or (at your option) any later version.

**"OpenInteract library" includes the core 'OpenInteract::' files:

  • OpenInteract

  • OpenInteract::ApacheStartup

  • OpenInteract::Auth

  • OpenInteract::Cache

  • OpenInteract::Cache::File

  • OpenInteract::Cache::IPC

  • OpenInteract::CommonHandler

  • OpenInteract::Component

  • OpenInteract::Config




  • OpenInteract::Config::PerlFile

  • OpenInteract::Cookies::Apache

  • OpenInteract::Cookies::CGI

  • OpenInteract::DBI

  • OpenInteract::Error

  • OpenInteract::Error::Main

  • OpenInteract::Error::System

  • OpenInteract::Handler::GenericDispatcher

  • OpenInteract::LDAP

  • OpenInteract::Package

  • OpenInteract::PackageRepository

  • OpenInteract::Request

  • OpenInteract::Session

  • OpenInteract::Session::DBI

  • OpenInteract::SPOPS

  • OpenInteract::SPOPS::DBI

  • OpenInteract::SPOPS::LDAP

  • OpenInteract::SQLInstall

  • OpenInteract::Startup

  • OpenInteract::Template::Context

  • OpenInteract::Template::Plugin

  • OpenInteract::Template::Process

  • OpenInteract::Template::Provider

  • OpenInteract::UI::Main

  • OpenInteract::Utility

Along with the core packages:

  • base

  • base_box

  • base_error

  • base_group

  • base_page

  • base_security

  • base_system_documentation

  • base_template

  • base_theme

  • base_user

  • lookup

  • object_activity

  • results_manage

And the following application packages:

  • classified

  • full_text

  • news

Every other package, whether developed by, inc. or other party, is licensed under its own terms.