/django-icekit

GLAMkit is a next-generation Python CMS by the Interaction Consortium, designed especially for the cultural sector.

Primary LanguagePythonMIT LicenseMIT

Build Status Coverage Status Documentation Requirements Status Version

Deploy to Docker Cloud

GLAMkit is a next-generation CMS by the Interaction Consortium, designed especially for the cultural sector.

GLAMkit has rich Events, Collections and storytelling tools for teams of content professionals in public-facing institutions, supported by a powerful content framework, based on django-fluent. Everything is written in Python, using the Django framework.

Read the documentation for the latest release

Key features

GLAMkit has:

  • complex repeating calendared events
  • collection patterns: art, moving image, etc.
  • a story-telling engine (e.g. rich 'watch', 'read', 'listen' articles)
  • Patterns for hierarchical pages and collections of rich content models.
  • Advanced publishing / preview / unpublishing controls
  • Simple workflow controls
  • press releases
  • sponsors
  • Content plugins for working with rich text, images, embedded media, etc.
  • Customisable site search using Elastic Search
  • django-reversion compatible, allowing versioning of content
  • Customisable admin dashboard
  • Docker-compatible project template supplied
  • Batteries included: bower, LessCSS, Bootstrap
  • Easily extensible with models, templates, plugins, etc.

GLAMkit is delivered as a Docker-compatible package, which means that it's easy to share a consistent development environment across your team, or to deploy on any Docker-compatible web host, including top-tier cloud hosting services like AWS.

Quickstart, with Docker

The recommended installation method uses Docker. Docker works on OS X, Linux, and Windows, takes care of all the project dependencies (e.g. database, search engine, web server, etc.), and makes deployment easy.

If you're not ready to use Docker, see Manual Installation.

Otherwise, if you haven't already, install Docker.

1. Create a new project

$ bash <(curl -Ls https://raw.githubusercontent.com/ic-labs/django-icekit/master/startproject.sh) {project_name}

This will create a new project from the ICEkit project template, in a directory named {project_name} in the current working directory.

If you want to create a new project from the ICEkit develop branch, do this instead:

$ bash <(curl -Ls https://raw.githubusercontent.com/ic-labs/django-icekit/develop/startproject.sh) {project_name} develop

and change the icekit branch in the generated requirements-icekit.txt from @master to @develop.

NOTE: Windows users should run this command in Git Bash, which comes with Git for Windows.

2. Run the project

Build a Docker image:

$ cd {project_name}
$ docker-compose build --pull

Run a django container and all of its dependancies:

$ docker-compose run --rm --service-ports django

Create a superuser account:

# manage.py createsuperuser

Run the Django dev server:

# runserver.sh

3. That's it!

Open the site in a browser:

http://localhost:8000

When you're done, exit the container and stop all of its dependencies:

# exit
$ docker-compose stop

Next steps