AA KillStats

raw JSON →
2.0.5 verified Mon Apr 27 auth: no python

Alliance Auth plugin for displaying killboard statistics such as Hall of Shame/Fame, top kills, and losses. Version 2.0.5 is the latest, requiring Python 3.10-3.12 and Django/AllianceAuth. Active development, with monthly releases.

pip install aa-killstats
error ModuleNotFoundError: No module named 'eve_sde'
cause Missing required dependency for v2.0.0+
fix
pip install eve-sde or add 'eve_sde' to INSTALLED_APPS and run pip install aa-killstats again (dependency will be installed automatically).
error django.core.exceptions.ImproperlyConfigured: The app 'killstats' uses migrations but the database table 'killstats_killmail' does not exist.
cause Migrations not run after adding the app
fix
Run 'python manage.py migrate killstats' and 'python manage.py migrate eve_sde'.
error OSError: [Errno 13] Permission denied: '/path/to/static/killstats'
cause Static files not collected or wrong permissions
fix
Run 'python manage.py collectstatic --noinput' and ensure the static directory is writable by the user running the web server.
breaking v2.0.0 replaced app name from 'aa-killstats' to 'killstats' and requires adding 'eve_sde' to INSTALLED_APPS. Remove old app entry and add both 'eve_sde' and 'killstats'.
fix In local.py, replace 'aa-killstats' (or older app names) with 'eve_sde' and 'killstats'.
breaking From v1.0.4 onward, killmails are fetched from ESI instead of zKillboard. Custom killmail processing may need updates.
fix Ensure your ESI token has scopes: 'esi-killmails.read_killmails.v1' and 'esi-killmails.read_corporation_killmails.v1'.
deprecated v1.0.1 removed 'csrf' arg from django-ninja. If you override templates, ensure no CSRF workarounds.
fix Upgrade to 1.0.1+ and remove any custom CSRF handling in templates.
gotcha After upgrading to v2.x, you must re-run 'python manage.py collectstatic' and restart the web server because static file paths changed.
fix Run 'python manage.py collectstatic --noinput' and restart your uwsgi/gunicorn.
gotcha The app does not provide any Python API; it's purely a Django app with views. Do not attempt to import models or functions directly from 'killstats' – use the provided admin/celery tasks.
fix If you need to extend functionality, use Django signals or custom management commands.

Enable the app and run migrations.

# local.py (Alliance Auth settings)
INSTALLED_APPS += [
    'eve_sde',  # required from v2.0.0+
    'killstats',
]

# After adding, run:
# python manage.py migrate
# python manage.py collectstatic
# Then restart your supervisor services.