https://djangoupdater.com/static/images/logo.png https://badge.fury.io/py/django-updater.png https://travis-ci.org/jayfk/django-updater.svg?branch=master

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.

Documentation

The full documentation is at https://django-updater.readthedocs.org.

Quickstart

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

Usage

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

With Djangoupdater.com

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!

Celery

If you are using Celery and have a celery beat daemon running, enable Celery support in your settings with:

CELERYBEAT_SCHEDULE = {
    'run-django-updater': {
        'task': 'updater.tasks.run_check',
        'schedule': timedelta(days=1),
    },
}

And you are good to go!

Cronjob

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>/