Skip to content

eevee/floof

Repository files navigation

floof is a communal art gallery Web site.  It's powered by Python and runs atop
Pyramid.

* http://www.python.org/
* http://www.pylonsproject.org/


# Installation

First, make sure you've pulled in git submodules:

    git submodule init
    git submodule update

Use the setuptools setup script:

    python setup.py install
    -- OR --
    python setup.py develop

If you're a developer, you probably want `develop` instead of `install`, and
you may wish to consider using virtualenv to keep floof's Python environment
separate from the rest of your system.

Create a floof configuration file by copying the template:

    cp paster.ini config.ini

You may call this file whatever you want, for example `development.ini` or
`production.ini`.

Configure as appropriate, then set the sqlalchemy.url parameter in alembic.ini
to point to the same database as the floof config file.

Finally, run the setup script to populate the database and configure the CA:

    python bin/setup-floof.py config.ini#floof-prod alembic.ini

## File storage

You have two options for storing files, controlled by the `filestore` setting:

* **local** stores files in the filesystem normally.

    The `filestore.directory` setting specifies the root of the storage.  This
    directory must already exist and be writable by the Python process.

* **mogilefs** stores files in the MogileFS distributed filesystem.  You'll
    need the `pymogile` package installed, available from
    https://github.com/AloneRoad/pymogile in the 2.0 branch.

    `filestore.trackers` is a space-delimited list of trackers.

    `filestore.domain` is the name of the MogileFS domain under which all the
    files will be stored.

    See the mogile docs for creating a basic mogile environment:
    http://code.google.com/p/mogilefs/wiki/InstallHowTo

For development, invoke the application with:

    bin/dev-server.sh config.ini

If you hit some annoying problem during installation, check WORKAROUNDS.  If
the problem or answer is not there but you subsequently work it out, add your
solution to WORKAROUNDS for the sake of those who follow.


# Testing

To invoke testing, run from the top level directory:

    python setup.py test