Django Channels Example

by jacobian


Django Channels Example Build Status

This is an example app demonstrating how to use (and deploy) Django Channels. It's a simple real-time chat app — like a very, very light-weight Slack. There are a bunch of rooms, and everyone in the same room can chat, in real-time, with each other (using WebSockets).

For a walkthrough of what's going on here, see my article over on the Heroku blog.

You can visit my deployment of the example online, or deploy your own copy to Heroku with this button (which requires a free Heroku account):


Running locally

To run this app locally, you'll need Python, Postgres, and Redis. (On my Mac, I installed and Redis from Homebrew (brew install redis).)

Then, to run:

  • Install requirements: pip install -r requirements.txt (you almost certainly want to do this in a virtualenv).
  • Migrate: DATABASE_URL=postgres:///... python migrate
  • If you use heroku local, or foreman/forego, edit .env to add DATABASE_URL and REDIS_URL, then start heroku local/foreman/forego.
  • Or, to run locally with runserver, set DATABASE_URL and REDIS_URL in your environ, then run python runserver.
  • Or, to run locally with multiple proceses by setting the environ, then running the two commands (daphne and runworker) as shown in the Procfile.

Running with Docker

Tomas Tomecek put together a Dockerized version of this app.