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):
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).
DATABASE_URL=postgres:///... python manage.py migrate
- If you use heroku local, or foreman/forego, edit
REDIS_URL, then start
- Or, to run locally with
REDIS_URLin your environ, then run
python manage.py runserver.
- Or, to run locally with multiple proceses by setting the environ, then running the two commands (
runworker) as shown in the
Running with Docker
Tomas Tomecek put together a Dockerized version of this app.