8 months 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
0 Replies
8 months ago
when you develop locally what command do you use to start your app
python manage.py runserver localhost:8000
8 months ago
gotcha, that is s dev server and it supports websockets, in production you are using gunicorn that doesnt support websockets
8 months ago
you need to run it with a uvicorn worker instead of gunicorn's sync workers
8 months 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.6
remove your start command from your service settings.
8 months ago
have you made the changes from point 1 & 2?
8 months ago
okay do a ctrl / cmd + k
-> deploy latest commit
8 months ago
you need gunicorn in your requirements.txt file too
8 months ago
no problem!
8 months 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.
8 months ago
awsome, very cool!