This repo is currently a work in progress and may break with every release. Don't rely on it for now.
Django Updater helps you to keep your Django installation up to date. It warns you when a new security related release comes out and when your Django version hits end of life.
The full documentation is at https://django-updater.readthedocs.org.
Install django-updater:
pip install django-updater
Then, add it to your `INSTALLED_APPS`:
INSTALLED_APPS = (
...
"updater",
)
And run the migrations with:
python manage.py migrate updater
In order to check for updates Django Updater has to be called periodically. There are three ways to accomplish that:
- Using the service on djangoupdater.com (not yet implemented)
- Running a periodic Celery task
- Create a cronjob
Warning: The service is not live, yet.
Create an account on djangoupdater.com, and copy the token from your dashboard.
To register your site, run
python manage.py register_updater --token=<YOUR_TOKEN>
The service will now try to contact your site. If all went well, the command should terminate with
All went well!
If you are using Celery and have a celery beat daemon running, enable Celery support in your settings with:
from datetime import timedelta
CELERYBEAT_SCHEDULE = {
'run-django-updater': {
'task': 'updater.tasks.run_check',
'schedule': timedelta(days=1),
},
}
And you are good to go!
You can use a cronjob to check for updates once a day.
To set up a cronjob, run:
crontab -e
And then add:
30 2 * * * python /path/to/your/apps/manage.py check_for_updates
If you are using a virtual environment, you might need to point to the python executable your virtual environment is using:
30 2 * * * /path/to/virtual/environment/bin/python /path/to/your/apps/manage.py check_for_updates
If all this fails, or you want to start the process from a remote host, you can call the remote url.
To do that, run:
python manage.py updater_token
Copy the token and create a cronjob like this:
30 2 * * * curl https://domain.com/updater/run/<YOUR_TOKEN>/