I am creating an open-source web app using Django that anyone can install on their local machine, Heroku, etc. The most obvious way for the clients to get updates in the app is to ask them to pull the latest version from GitHub. Is there a cleaner, more elegant way to do this? For example, can we have a webpage (in the same Django project) which has a button to trigger an update from GitHub, while the web app is already running?
TLDR: How to make a Django web app update its own code when it's told to do so?
EDIT: I expect the app to be run either through shell (say through unicorn or the like) or on a Python PaaS like Heroku or Render. Happy to consider other alternatives, preferably a cross platform solution.