Metadata-Version: 2.0
Name: django-icekit
Version: 0.10
Summary: A modular content CMS by Interaction Consortium.
Home-page: https://github.com/ic-labs/django-icekit
Author: Interaction Consortium
Author-email: studio@interaction.net.au
License: MIT
Platform: UNKNOWN
Requires-Dist: Pillow
Requires-Dist: django-app-namespace-template-loader
Requires-Dist: django-bootstrap3
Requires-Dist: django-compressor
Requires-Dist: django-el-pagination
Requires-Dist: django-extensions
Requires-Dist: django-fluent-contents
Requires-Dist: django-fluent-pages
Requires-Dist: django-model-settings
Requires-Dist: django-mptt (!=0.8.5)
Requires-Dist: django-multiurl
Requires-Dist: django-polymorphic
Requires-Dist: django-wysiwyg
Requires-Dist: html5lib (==0.999)
Requires-Dist: nltk
Requires-Dist: requests
Requires-Dist: unidecode
Provides-Extra: api
Requires-Dist: djangorestframework; extra == 'api'
Provides-Extra: brightcove
Requires-Dist: django-brightcove; extra == 'brightcove'
Provides-Extra: dev
Requires-Dist: Werkzeug; extra == 'dev'
Requires-Dist: django-debug-toolbar; extra == 'dev'
Requires-Dist: ipdb; extra == 'dev'
Requires-Dist: ipython; extra == 'dev'
Requires-Dist: mkdocs; extra == 'dev'
Provides-Extra: django18
Requires-Dist: Django (>=1.8,<1.9); extra == 'django18'
Provides-Extra: forms
Requires-Dist: django-forms-builder; extra == 'forms'
Provides-Extra: project
Requires-Dist: ConcurrentLogHandler; extra == 'project'
Requires-Dist: Jinja2; extra == 'project'
Requires-Dist: boto (<=2.27); extra == 'project'
Requires-Dist: celery[redis]; extra == 'project'
Requires-Dist: django-celery; extra == 'project'
Requires-Dist: django-celery-email; extra == 'project'
Requires-Dist: django-extensions; extra == 'project'
Requires-Dist: django-flat-theme (<1.1.3); extra == 'project'
Requires-Dist: django-fluent-contents[markupoembeditemtext]; extra == 'project'
Requires-Dist: django-fluent-pages[redirectnodereversion]; extra == 'project'
Requires-Dist: django-master-password; extra == 'project'
Requires-Dist: django-polymorphic-auth; extra == 'project'
Requires-Dist: django-post-office; extra == 'project'
Requires-Dist: django-redis; extra == 'project'
Requires-Dist: django-reversion (>=1.9.3,<1.10); extra == 'project'
Requires-Dist: django-storages (<1.2); extra == 'project'
Requires-Dist: django-supervisor; extra == 'project'
Requires-Dist: django-test-without-migrations; extra == 'project'
Requires-Dist: django-timezone; extra == 'project'
Requires-Dist: docutils; extra == 'project'
Requires-Dist: easy-thumbnails; extra == 'project'
Requires-Dist: flower; extra == 'project'
Requires-Dist: gunicorn; extra == 'project'
Requires-Dist: icekit-notifications; extra == 'project'
Requires-Dist: ixc-django-compressor; extra == 'project'
Requires-Dist: ixc-whitenoise; extra == 'project'
Requires-Dist: psycopg2; extra == 'project'
Requires-Dist: python-redis-lock[django]; extra == 'project'
Requires-Dist: pytz; extra == 'project'
Requires-Dist: raven; extra == 'project'
Provides-Extra: search
Requires-Dist: django-fluent-pages[flatpage,fluentpage]; extra == 'search'
Requires-Dist: django-haystack; extra == 'search'
Requires-Dist: elasticsearch; extra == 'search'
Requires-Dist: elasticstack; extra == 'search'
Provides-Extra: test
Requires-Dist: WebTest; extra == 'test'
Requires-Dist: celery[redis]; extra == 'test'
Requires-Dist: coverage; extra == 'test'
Requires-Dist: django-dynamic-fixture; extra == 'test'
Requires-Dist: django-nose; extra == 'test'
Requires-Dist: django-webtest; extra == 'test'
Requires-Dist: djangorestframework; extra == 'test'
Requires-Dist: micawber; extra == 'test'
Requires-Dist: mock; extra == 'test'
Requires-Dist: nose-progressive; extra == 'test'
Requires-Dist: psycopg2; extra == 'test'

|Build Status| |Coverage Status| |Version|

|Deploy to Docker Cloud|

Getting started
===============

Create a new ICEkit project in the given directory (default:
``icekit-project``):

::

    $ bash <(curl -Ls https://raw.githubusercontent.com/ic-labs/django-icekit/develop/icekit/bin/startproject.sh) [destination_dir]

All other commands in this document should be run from the project
directory.

NOTE: Windows users should run this command in Git Bash, which comes
with `Git for Windows <https://git-for-windows.github.io/>`__.

Run with Docker
===============

The easiest way to run an ICEkit project is with Docker. It works on OS
X, Linux, and Windows, takes care of all the project dependencies like
the database and search engine, and makes deployment easy.

If you haven't already, go install Docker:

-  `OS X <https://download.docker.com/mac/stable/Docker.dmg>`__
-  `Linux <https://docs.docker.com/engine/installation/linux/>`__
-  `Windows <https://download.docker.com/win/stable/InstallDocker.msi>`__

Build an image and start the project:

::

    $ docker-compose build
    $ docker-compose up  # Watch for the admin account credentials that get created on first run

Now you can open the site in a browser:

::

    http://icekit.lvh.me  # *.lvh.me is a wildcard DNS that maps to 127.0.0.1

Read our `Docker Quick
Start <https://github.com/ic-labs/django-icekit/blob/master/docs/docker-quick-start.md>`__
guide for more info on using Docker with an ICEkit project.

Run directly
============

If you are not yet ready for Docker, you can run an ICEkit project
directly. You will just need to install and configure all of its
dependencies manually.

Install required system packages:

-  Elasticsearch
-  PostgreSQL
-  Python 2.7
-  Redis

On OS X, you can use `Homebrew <http://brew.sh/>`__:

::

    $ brew install elasticsearch python redis

You don't need to configure these services to start automatically, they
will be started by the project.

We recommend `Postgres.app <http://postgresapp.com/>`__ for the
database. It is easier to start, stop, and upgrade than Homebrew.

Make a virtualenv and install required Python packages:

::

    $ pip install virtualenv
    $ virtualenv venv
    (venv)$ pip install -r requirements-icekit.txt

Start the project:

::

    (venv)$ ./go.sh manage.py supervisor  # Watch for the admin account credentials that get created on first run

Now you can open the site in a browser:

::

    http://icekit.lvh.me:8000  # *.lvh.me is a wildcard DNS that maps to 127.0.0.1

Deploy to Docker Cloud
======================

Use the Deploy to Docker Cloud button above to create a new ICEkit stack
on `Docker Cloud <https://cloud.docker.com/>`__.

You won't be able to `customise your
project <#customise-your-project>`__ when deploying the official ICEkit
Docker image this way.

Configure your project
======================

You will need to provide some basic information to configure your
project.

You can do so with environment variables, or by editing the
``docker-cloud.yml`` and ``icekit_settings.py`` files.

All settings are optional, but you can provide:

-  ``BASE_SETTINGS_MODULE`` tells ICEkit to run in ``develop`` or
   ``production`` mode.

-  ``EMAIL_HOST``, ``EMAIL_HOST_PASSWORD`` and ``EMAIL_HOST_USER``, so
   ICEkit can send emails (only in ``production`` mode).

   We recommend `Mailgun <http://www.mailgun.com/>`__, but any SMTP
   credentials will do.

-  ``MASTER_PASSWORD`` (only in ``develop`` mode) so you can login as
   any user with the same password.

-  ``MEDIA_AWS_ACCESS_KEY_ID``, ``MEDIA_AWS_SECRET_ACCESS_KEY`` and
   ``MEDIA_AWS_STORAGE_BUCKET_NAME`` so ICEkit can store file uploads
   `Amazon S3 <https://aws.amazon.com/s3/>`__.

   The specified bucket should already exist, or the credentials
   provided should have permission to create buckets. This is especially
   important when deploying to ephemeral infrastructure, like Docker
   Cloud.

-  ``PGDATABASE``, ``PGHOST``, ``PGPASSWORD``, ``PGPORT`` and
   ``PGUSER``, if you need to connect to provide credentials for your
   PostgreSQL database.

   We recommend `Amazon RDS <https://aws.amazon.com/rds/>`__, especially
   when deploying to ephemeral infrastructure, like Docker Cloud.

-  ``SENTRY_DSN``, if you want to use
   `Sentry <https://getsentry.com/>`__ for real-time error tracking.

-  ``SITE_DOMAIN`` and ``SITE_NAME``, so ICEkit knows how to generate
   redirects correctly and knows what to call your site.

Customise your project
======================

Anything you put in the ``static`` or ``templates`` directory will
override the default ICEkit static files and templates.

You can specify additional Bower components in ``bower.json``, Node
modules in ``package.json``, and Python packages in
``requirements.txt``.

The ``icekit_settings.py`` file is a Django settings module. You can
override any default ICEkit settings or configure apps installed via
``requirements.txt``.

.. |Build Status| image:: https://img.shields.io/travis/ic-labs/django-icekit.svg
   :target: https://travis-ci.org/ic-labs/django-icekit
.. |Coverage Status| image:: https://img.shields.io/coveralls/ic-labs/django-icekit.svg
   :target: https://coveralls.io/github/ic-labs/django-icekit
.. |Version| image:: https://img.shields.io/pypi/v/django-icekit.svg
   :target: https://pypi.python.org/pypi/django-icekit
.. |Deploy to Docker Cloud| image:: https://files.cloud.docker.com/images/deploy-to-dockercloud.svg
   :target: https://cloud.docker.com/stack/deploy/


