Hosting Requirements

Database

This is tested with PostgreSQL.

Message queue compatible with Celery

Normal options

File Storage

A file storage area is needed. This holds the files supplied by users, and the cached results of processing.

All code access in this library to the file storage area should be through Django DefaultStorage API. This means in theory, you are free to use:

  • file storage by setting MEDIA_ROOT and MEDIA_URL.

  • cloud bucket solutions (eg AWS S3, Azure Storage Container).

  • any other Django compatible Storage API.

Nothing in this library requires the contents of this storage to be served on the web.

However, code in apps that uses this library may have:

  • direct access to the file system, in which case file storage by setting MEDIA_ROOT and MEDIA_URL is required.

  • direct users to URL’s for download, in which case the contents of this storage must be served on the web.

All apps that use this library currently just use direct file storage by setting MEDIA_ROOT and MEDIA_URL, and that should be considered the only tested solution.

Python web server for the Django app

Normal options

A background worker

Run using Celery’s normal run options.

Cron tasks

Some Django management commands should be run on a cron task.

  • expire_files should be run daily