/channels-example

An example Channels app

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

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

Deploy

Running locally

To run this app locally, you'll need Python, Postgres, and Redis. (On my Mac, I installed Postgres.app 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 manage.py 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 manage.py 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.