Keep track of failed login attempts in Django-powered sites.
Find a file
Petr Dlouhý 128d01158c add LOCK_OUT_BY_USER_OR_IP option
store all AccessAttempt records
2020-08-21 17:17:57 +03:00
axes add LOCK_OUT_BY_USER_OR_IP option 2020-08-21 17:17:57 +03:00
docs add LOCK_OUT_BY_USER_OR_IP option 2020-08-21 17:17:57 +03:00
.coveragerc Update test runner script and versions 2019-02-03 16:03:29 +02:00
.gitignore Add pip-wheel-metadata to .gitignores 2019-08-30 07:28:37 +03:00
.prospector.yaml Upgrade CI tooling to use automatic code formatting 2019-09-28 19:28:17 +03:00
.travis.yml Added Django 3.1 test environment. 2020-08-06 10:44:53 +03:00
CHANGES.rst Version 5.4.3 2020-08-06 10:45:49 +03:00
codecov.yml Raise minimum test coverage to 90% 2019-02-10 19:22:13 +02:00
LICENSE Update author and licence information 2019-03-13 16:56:56 +02:00
manage.py PEP8 formatting 2019-10-15 23:04:29 +03:00
MANIFEST.in Include rst docs to the package manifest 2019-05-01 15:53:26 +03:00
mypy.ini Drop Python 3.5 support 2019-03-09 21:49:45 +02:00
pyproject.toml Migrate to setuptools_scm 2019-08-28 13:28:57 +03:00
pytest.ini Run coverage with pytest 2019-02-22 08:30:11 +02:00
README.rst Update README.rst 2020-04-04 15:19:27 +03:00
requirements.txt Bump pytest-cov from 2.10.0 to 2.10.1 2020-08-17 10:35:53 +00:00
setup.py Added Django 3.1 test environment. 2020-08-06 10:44:53 +03:00
tox.ini Added Django 3.1 test environment. 2020-08-06 10:44:53 +03:00

django-axes
===========

.. image:: https://jazzband.co/static/img/badge.svg
   :target: https://jazzband.co/
   :alt: Jazzband

.. image:: https://img.shields.io/github/stars/jazzband/django-axes.svg?label=Stars&style=socialcA
   :target: https://github.com/jazzband/django-axes
   :alt: GitHub

.. image:: https://img.shields.io/pypi/v/django-axes.svg
   :target: https://pypi.org/project/django-axes/
   :alt: PyPI release

.. image:: https://img.shields.io/readthedocs/django-axes.svg
   :target: https://django-axes.readthedocs.io/
   :alt: Documentation

.. image:: https://secure.travis-ci.org/jazzband/django-axes.svg?branch=master
   :target: http://travis-ci.org/jazzband/django-axes
   :alt: Build Status

.. image:: https://codecov.io/gh/jazzband/django-axes/branch/master/graph/badge.svg
   :target: https://codecov.io/gh/jazzband/django-axes
   :alt: Coverage


Axes is a very simple way for you to keep track of failed
authentication attempts for your login views.

The name is sort of a geeky pun, since it can be interpreted as:

* ``access``, as in monitoring access attempts, or
* ``axes``, as in tools you can use to hack (generally on wood).

In this case, however, the hacking part of it can be taken a bit further:
**Axes is intended to help you stop people from brute forcing your Django site**.


Functionality
-------------

Axes records login attempts to your Django powered site and prevents attackers
from brute forcing the site when they exceed the configured attempt limit.

Axes can track the attempts and persist them in the database indefinitely,
or alternatively use a fast and DDoS resistant cache implementation.

Axes can be configured to monitor login attempts by
IP address, username, user agent, or their combinations.

Axes supports cool off periods, IP address whitelisting and blacklisting,
user account whitelisting, and other features for Django access management.


Documentation
-------------

For more information on installation and configuration see the documentation at:

https://django-axes.readthedocs.io/


Issues
------

If you have questions or have trouble using the app please file a bug report at:

https://github.com/jazzband/django-axes/issues


Contributions
-------------

This is a `Jazzband <https://jazzband.co>`_ project.
By contributing you agree to abide by the
`Contributor Code of Conduct <https://jazzband.co/about/conduct>`_
and follow the `guidelines <https://jazzband.co/about/guidelines>`_.

It is best to separate proposed changes and PRs into small, distinct patches
by type so that they can be merged faster into upstream and released quicker:

* features,
* bugfixes,
* code style improvements, and
* documentation improvements.

All contributions are required to pass the quality gates configured
with the CI. This includes running tests and linters successfully
on the currently officially supported Python and Django versions.

The test automation is run automatically by Travis CI, but you can
run it locally with the ``tox`` command before pushing commits.