run opencore on repoze.zope2 with a pastedeploy configuration
Python
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
repopencore
CHANGES.txt
README.txt
setup.cfg
setup.py

README.txt

What is it?
===========

The intent of this package is to provide a (mostly) automated setup
for running OpenCore on the WSGI-compliant repoze.zope2 stack.

This is still experimental; OpenCore is **not** guaranteed to run
smoothly in this setup. Please report bugs unique to this setup at

 http://trac.openplans.org/openplans/newticket?component=repopencore

This package is intended to be installed into an existing OpenCore
build. It will not build OpenCore itself. Please read

 http://www.coactivate.org/projects/opencore/getting-started

for OpenCore installation instructions.

How do I use it?
================

1. Install this package into your OpenCore environment.

2. Generate a configuration file for your deployment:

   `mkopencoreconfig 8080 zope/etc/zope.conf > opencore.ini`

     The first argument is the port to serve from; this
     does not need to be the same port that you serve
     your standard OpenCore setup from, and in fact the
     two setups can theoretically run in parallel.

     The second argument is the (absolute or relative) path
     to your Zope configuration file, usually found in
     {build_dir}/opencore/zope/etc/zope.conf

3. Start the server:

   `run-opencore-wsgi zope/bin/zopectl opencore.ini`

     The first argument is the (absolute or relative) path to
     your `zopectl` executable, usually found in
     {build_dir}/opencore/zope/bin/zopectl

     The second argument is the path to the configuration file
     generated by `mkopencoreconfig`.

     Additional arguments like --reload or --daemon can be provided.
     They will be passed to the `paster serve` command executed
     here; run `paster serve --help` for available options.
    
If you're ambitious you should be able to hook this into your
Supervisor setup, buildout configuration, and/or repeatable
Fassembler build. I haven't tried any of these.

What else can it do?
====================

There is also an experimental configuration for running a single wsgi
stack with opencore and tasktracker as endpoints, and a Deliverance
middleware set up to theme tasktracker for full visual integration.

If you want to try this out, the steps are similar:

 1. First, install the extra dependencies with commands provided by
    repopencore:

    `install-myghty-fork && install-tasktracker && install-deliverance`

    This will install TaskTracker and Deliverance from trunk as well as
    a version of Myghty (which is required by a dependency of TaskTracker)
    with the following patch applied to myghty.importer at L56:

     -__builtin__.__import__ = import_module
     +#__builtin__.__import__ = import_module

    That monkeypatch of the built-in __import__ seems to break Zope's own
    munging of sys.path which results in ImportErrors all over the place,
    hence the forked installation here.

 2. Next, generate a configuration file for your deployment:

    `mkopencoreconfig-with-tt 8080 zope/etc/zope.conf ../../../var/secret.txt  ../../../var/admin.txt ./ > opencore-with-tt.ini`

    The first two arguments are the same as `mkopencoreconfig` above.
    The third and fourth arguments are the paths to your shared secret
    and admin info files (which are written outside the ./builds directory
    by Fassembler, since they don't change on every build). The last
    argument is a base path for TaskTracker to place some of its data
    including template caches and the SQLite database.

 3. Initialize the TaskTracker database:

    `paster setup-app opencore-with-tt.ini#tasktracker`

 4. Start the server:

   `run-opencore-wsgi zope/bin/zopectl opencore.ini`

It should also be possible to use this configuration with a pre-existing
TaskTracker database; just edit the relevant lines in opencore-with-tt.ini
to point them to your existing database instead of using a newly created
SQLite database.