aa-incursions
AllianceAuth Incursion Tools
Incursions for Alliance Auth
Incursion Tools for Alliance Auth.
Features
- AA-Discordbot Cogs for information about active incursions, their status and any set Focus
-
Webhook notifications for new incursions and them changing state (Mobilizing/Withdrawing)
-
Waitlist forked from TLA and heavily updated
Planned Features
- Waitlist
- AA Fittings Integration
- Secure Groups Integration
Installation
Step 1 - Pre_Requisites
Incursions is an App for Alliance Auth, Please make sure you have this installed. Incursions is not a standalone Django Application
Incursions needs the App AA Routing in order to give the spawn bot context
Incursions needs the App AA Discord Bot for safe integration with the discord service and discord multiverse, it also delivers some future features
Incursions needs the App Corp Tools to feed the Waitlist and its Map Data. You can opt out of using the Waitlist and any of corp-tools auditing
Step 2 - Install app
pip install aa-incursions
Step 3 - Configure Auth settings
Configure your Auth settings (local.py
) as follows:
- Add the following
INSTALLED_APPS
inlocal.py
'incursions',
'corptools',
- Add below lines to your settings file:
## Settings for AA-Incursions ##
# Route is Cached for 300 Seconds, if you aren't riding the Kundalini Manifest to the last minute
# Feel free to adjust this to minute='*/5'
CELERYBEAT_SCHEDULE['incursions_update_incursions'] = {
'task': 'incursions.tasks.update_incursions',
'schedule': crontab(minute='*/1', hour='*'),
}
# Routes are Cached for 5 Seconds
CELERYBEAT_SCHEDULE['incursions_update_all_fleets'] = {
'task': 'incursions.tasks.update_all_fleets',
'schedule': crontab(minute='*/1', hour='*'),
}
Step 4 - Maintain Alliance Auth
- Run migrations
python manage.py migrate
- Gather your staticfiles
python manage.py collectstatic
- Restart your project
supervisorctl restart myauth:
Step 5 - Pre-Load
Preload some expected incursion data. The frontend should adapt to any custom values But it is tested with these.
python manage.py loaddata waitlist_badges.json
python manage.py loaddata waitlist_category.json
python manage.py loaddata waitlist_category_rule.json
python manage.py loaddata waitlist_roles.json
Step 6 - Setup Waitlist Dependencies
The Waitlist was built to require a Server-Sent Event backend that i have not yet replaced.
Bare Metal
Generate a Secret with openssl rand -hex 32
, use this later in secret=
git clone https://github.com/luna-duclos/waitlist-sse
docker buildx build . -t tla/sse --load
docker run -d -p 8001:8000 --env SSE_SECRET="0000000000000000000000000000000000000000000000000000000000000000" tla/sse
route sse.domain to localhost:8001 in Nginx
Docker
git clone https://github.com/luna-duclos/waitlist-sse
in NPM route sse.domain route to sse-server
8000
Generate a Secret with openssl rand -hex 32
, use this in your docker compose
Add the following to your Docker-Compose.yml
sse-server:
image: "tla/sse:latest"
pull_policy: never
build: ./waitlist-sse
expose:
- 8000
environment:
SSE_SECRET: "0000000000000000000000000000000000000000000000000000000000000000"
Waitlist Features Detail
Waitlist
Categories / Category Rules
For easy filtering of ships into basic categories for prioritization and fleet composition. Some functions of the waitlist expect at minimum Marauder Logi Vindi and Other, this is a work in progress The Sponge category is for anything that lowers the isk/hr of the fleet, like Ishtars
Badges
Badges are both medals of Merit and a sign of recognition that you have met a series of requirements at a glance. You may use Logi to dictate known quality Logistics pilots to prioritise Or use DPS / Alt to highlight a player has met a series of DPS / Skills / Fitting Requirements Badges are fully dynamic and you can assign as many or as
~~Roles~~
You May be familiar with Roles or Commanders from other HS waitlists. This feature has been intentionally stripped. Use AA Groups instead.
Approved Fittings / Approved Implants
the /fits page and the fits that ships are compared to are fully dynamic from the DB. The implants are not yet, that frontend page is still hardcoded, but they are used for backend comparison
Permissions
Codename | Perm | Description |
---|---|---|
basic_waitlist |
Waitlist Access | Can Access the Waitlist Application |
waitlist_alts_view |
View - all of a users Alts ! Danger? | |
waitlist_announcements_manage |
Announcements - Manage | |
waitlist_badges_view |
Badges - View | |
waitlist_badges_manage |
Badges - Manage | |
waitlist_bans_view |
Bans - View | |
waitlist_bans_manage |
Bans - Manage | |
waitlist_documentation_view |
Documentation - View | |
waitlist_fleet_view |
Fleet Composition | |
waitlist_history_view |
Fleet History | |
waitlist_notes_view |
Notes - View | |
waitlist_notes_manage |
Notes - Manage | |
waitlist_search |
Search | |
waitlist_stats_view |
Fleet Stats | |
waitlist_skills_view |
Skills | |
waitlist_pilot_view |
Pilot Information | |
# Waitlist Context Permissions | ||
waitlist_context_a |
Context: Number of Pilots | |
waitlist_context_b |
Context: Ship Types | |
waitlist_context_c |
Context: Time in Waitlist | |
waitlist_context_d |
Context: Pilot Names | |
waitlist_implants_view |
Context: Implants | |
waitlist_manage_waitlist |
Waitlist Manage | |
waitlist_manage_waitlist_approve_fits |
Waitlist Manage Fits | |
# ESI Permissions | ||
waitlist_esi_show_info |
Show Info | |
waitlist_esi_search |
Search - ESI |
Settings
Name | Description | Default |
---|---|---|
SSE_SITE_URL |
The Site URL for the SSE server, usually sse.example.com | GENERATED FROM CODE |
SSE_SECRET |
Must Match in local.py and the SSE Docker Container |
"0000000000000000000000000000000000000000000000000000000000000000" |
INCURSIONS_AUTO_HIGHSEC_FOCUS |
Whether or not to set the current Focus to a new HS spawn automatically | True |
INCURSIONS_SCOPES_BASE |
Not really used, Corp-Tools controls auditing | ["publicData", "esi-skills.read_skills.v1", "esi-clones.read_implants.v1"] |
INCURSIONS_SCOPES_FC |
Not really optional, R/W Fleet, Open Window and Search (yes its named badly) | ["esi-fleets.read_fleet.v1", "esi-fleets.write_fleet.v1", "esi-ui.open_window.v1", "esi-search.search_structures.v1"] |
Contributing
Make sure you have signed the License Agreement by logging in at https://developers.eveonline.com before submitting any pull requests. All bug fixes or features must not include extra superfluous formatting changes.
No reviews yet...
Python Requirements
- aa-routing
- allianceauth<6,>=4.6.4
- allianceauth-corptools>=2.10
- allianceauth-discordbot
- audioop-lts; python_version >= "3.13"
- django-solo<3,>=2
- py-cord<3,>=2
- pybase62
- pynacl
Required Python packages to be installed and other Python requirement.
App Dependencies
Required apps:
Used by apps:
-
Dependencies to other apps registered in this app directory.
Classifiers
- Environment :: Web Environment
- Framework :: Celery
- Framework :: Django
- Framework :: Django :: 4.2
- Intended Audience :: Developers
- License :: OSI Approved :: MIT License
- Operating System :: OS Independent
- Programming Language :: Python
- Programming Language :: Python :: 3 :: Only
- Programming Language :: Python :: 3.10
- Programming Language :: Python :: 3.11
- Programming Language :: Python :: 3.12
- Programming Language :: Python :: 3.13
- Programming Language :: Python :: Implementation :: CPython
- Topic :: Internet :: WWW/HTTP
- Topic :: Internet :: WWW/HTTP :: Dynamic Content
Version
1.0.19a0
License
MIT License
Homepage
https://gitlab.com/tactical-supremacy/aa-incursions
PyPI
https://pypi.org/project/aa-incursions/
Last updated
1 week, 3 days ago
First published
1 year, 8 months ago
Category
Plugin Apps
Rating
-Authors
Ariel Rin
Maintainers
-
Please login to see more options.