2 years ago
Hi all. I'm finding an issue with django channels in production. I'm running my django using docker. Everything works fine locally with environment variables set those same as production. But in production im getting the error --- Not Found: /ws/restaurant/11/orders/
I dont get this error locally even though im connected those of railway
22 Replies
2 years ago
when you develop locally what command do you use to start your app
python manage.py runserver localhost:8000
2 years ago
gotcha, that is s dev server and it supports websockets, in production you are using gunicorn that doesnt support websockets
2 years ago
you need to run it with a uvicorn worker instead of gunicorn's sync workers
2 years ago
you need to do a few things -
set this as your CMD line in your dockerfile -
CMD ["gunicorn", "cravingConnect.asgi", "-k", "uvicorn.workers.UvicornWorker"]add uvicorn to your requirements.txt file -
uvicorn==0.30.6remove your start command from your service settings.
2 years ago
have you made the changes from point 1 & 2?
2 years ago
okay do a ctrl / cmd + k -> deploy latest commit
2 years ago
you need gunicorn in your requirements.txt file too
2 years ago
no problem!
2 years ago
sounds good
https://medium.com/@midhunskani/django-channels-with-redis-deployment-on-railway-app-860e6d657d2a
I have written a blog on deploying to railway.app based on the changes. Hope this would be helpful to others facing the same issue.
2 years ago
awsome, very cool!

