floof

Some kind of art site.

ISC License

Stars
10

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

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