GLAMkit is a next-generation Python CMS by the Interaction Consortium, designed especially for the cultural sector.
Python HTML Shell JavaScript CSS
Switch branches/tags
Clone or download
Latest commit c507ea5 Jan 8, 2018
Failed to load latest commit information.
docs Add setting to enable automatic publishing Oct 6, 2017
glamkit_collections Remove conflicting migrations Jan 2, 2018
glamkit_sponsors #298 Fix misuse of `str` in text summary coercion methods Sep 12, 2017
icekit Ignore orphaned translations in slug uniqueness checks Dec 11, 2017
icekit_events Yet more events unit test fixes for daylight savings quirks Oct 6, 2017
icekit_press_releases Add workflow fields to Press Releases Jun 13, 2017
project_template Removed unused gulp dependency Jul 18, 2017
.coveragerc Add collections to coverage report Jun 7, 2017
.dockerignore Use compose override file as an actual override again. Oct 26, 2016
.editorconfig Merge remote-tracking branch 'events/develop' into merge-repos Jun 5, 2017
.gitignore Merge remote-tracking branch 'press-releases/develop' into merge-repos Jun 7, 2017
.travis.yml Docker command no longer supports the -e flag Jan 3, 2018
Dockerfile Copy missing README.rst into the image before installing Python depen… Apr 30, 2017
LICENSE Merge remote-tracking branch 'events/develop' into merge-repos Jun 5, 2017 Merge remote-tracking branch 'collections/develop' into merge-repos Jun 7, 2017
README.rst Tweak README and roadmap, add release announcement template. Tidy up … Jun 19, 2017
docker-cloud.yml Revert "Remove commented environment variables that should be set in … Apr 30, 2017
docker-compose.override.sample.yml Remove redundant `env_file` option. The entrypoint script sources `.e… Apr 28, 2017
docker-compose.travis.yml Add comments to pass-through environment variables. Apr 28, 2017
docker-compose.yml Don't mount `/tmp` as tmpfs. We're not mounting the image as read-onl… Apr 28, 2017
mkdocs.yml Merge remote-tracking branch 'events/develop' into merge-repos Jun 5, 2017
requirements.txt Pin DRF dependencies to work with Django 1.8 Oct 20, 2017
setup.cfg Make unit tests compatible with both Python 2.7 and 3+ Aug 3, 2016 add missing comma in Nov 15, 2017 Move `` to root directory. Apr 28, 2017
tox.ini Merge remote-tracking branch 'press-releases/develop' into merge-repos Jun 7, 2017


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 {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 {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:

# createsuperuser

Run the Django dev server:


3. That's it!

Open the site in a browser:


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

# exit
$ docker-compose stop

Next steps