
Indy Hub
Indy Hub - An industrial management application for Alliance Auth
Indy Hub for Alliance Auth
A modern industry and material‑exchange management module for Alliance Auth, focused on blueprint sharing, job tracking, and corp trading workflows for EVE Online alliances and corporations.
<hr />Table of Contents
- About
- Features
- Requirements
- Installation
- Bare Metal
- Docker
- Common
- Permissions
- Base Access (Required for all users)
- Corporation Management (Optional)
- Material Exchange Administration (Optional)
- Settings
- Updating
- Usage
- Screenshots
- Contributing
About
Features
- Blueprint Library: Browse, search, and manage personal and corporation blueprints.
- Industry Jobs: Track active and completed manufacturing, research, and invention jobs.
- Blueprint Copy Requests: Create requests, receive offers, chat with builders, and follow delivery status.
- Sharing Controls: Configure who can see and fulfill blueprint copy requests.
- Material Exchange: Submit buy/sell orders and follow validation/processing from one hub.
- Order Tracking: View clear statuses, timelines, and history for your requests and orders.
- Notifications: Receive in-app updates for key events (offers, deliveries, job updates).
- Analytics Hooks: Emits Alliance Auth analytics events for key Material Exchange lifecycle transitions.
- Admin Tools: Manage corp blueprint workflows and Material Exchange operations with dedicated admin views.
- Modern UI: Responsive, theme-friendly interface designed for daily operational use.
Requirements
- Alliance Auth v4+
- Python 3.10+
- Django (as required by AA)
- Alliance Auth AppUtils
- django-esi (OpenAPI client, >=8)
- django-eveonline-sde (base SDE data)
- Celery (for background sync and notifications)
- (Optional) Director characters for corporate dashboards
- (Optional)
aadiscordbot(preferred) ordiscordnotifyfor Discord notifications
Installation
Bare Metal
pip install django-eveonline-sde indy-hub
Add to your local.py:
INSTALLED_APPS = [
"eve_sde",
"indy_hub",
]
Optional override (only if your extracted SDE folder is not the eve_sde default):
INDY_HUB_SDE_FOLDER = "/path/to/your/sde-folder"
If omitted, Indy Hub automatically reuses the default folder used by eve_sde.
Run migrations and collect static files:
python manage.py migrate
python manage.py collectstatic --noinput
Load Indy Hub compatibility data (after completing eve_sde data loading as documented in the django-eveonline-sde module):
python manage.py sync_sde_compat
Restart services:
systemctl restart allianceauth
Docker
docker compose exec allianceauth_gunicorn bash
pip install django-eveonline-sde indy-hub
exit
Add to your conf/local.py:
INSTALLED_APPS = [
"eve_sde",
"indy_hub",
]
Optional override (only if your extracted SDE folder is not the eve_sde default):
INDY_HUB_SDE_FOLDER = "/path/to/your/sde-folder"
If omitted, Indy Hub automatically reuses the default folder used by eve_sde.
Add to your conf/requirements.txt (Always use current versions)
django-eveonline-sde==0.0.1b3
indy-hub==1.15.1
Run migrations and collect static files:
docker compose exec allianceauth_gunicorn bash
auth migrate
auth collectstatic --noinput
exit
Restart Auth:
docker compose build
docker compose down
docker compose up -d
Load Indy Hub compatibility data (after completing eve_sde data loading as documented in the django-eveonline-sde module):
docker compose exec allianceauth_gunicorn bash
auth sync_sde_compat
exit
Common
- Set permissions in Alliance Auth (see Permissions).
- Authorize ESI tokens for blueprints and industry jobs.
Permissions
Assign permissions in Alliance Auth to control access levels:
Base Access (Required for all users)
- Visible in admin: "indy_hub | can access Indy_Hub"
- View and manage personal blueprints
- Create and manage blueprint copy requests
- Use Material Exchange (buy/sell orders)
- View personal industry jobs
- Configure personal settings and notifications
Corporation Management (Optional)
- Visible in admin: "indy_hub | can admin Corp"
- View and manage corporation blueprints (director only)
- Handle corporation blueprint copy requests (accept/reject corp BP copy sharing)
- Access corporation industry jobs
- Configure corporation sharing settings
- This role is not meant for everyone — only for people who manage corp BPs (they can handle contracts for corpmates)
- Requires ESI director roles for the corporation
Material Exchange Administration (Optional)
- Visible in admin: "indy_hub | can admin MatExchange"
- Configure Material Exchange settings
- Manage stock availability
- View all transactions
- This role is not meant for everyone — only for people who manage the hub (they accept/reject buy and sell orders made to the corp)
- Admin panel access
Note: Permissions are independent and can be combined. Most users only need can access Indy_Hub.
Settings
Customize Indy Hub behavior in local.py:
# Discord notifications
INDY_HUB_DISCORD_DM_ENABLED = True # Default: True
INDY_HUB_DISCORD_ACTION_TOKEN_MAX_AGE = 86400 # Default: 24 hours
# ESI compatibility date (OpenAPI)
INDY_HUB_ESI_COMPATIBILITY_DATE = "2025-09-30" # Default: app default
# ESI task staggering (rate-limit friendly scheduling)
INDY_HUB_ESI_TASK_STAGGER_THRESHOLD = 400 # Default: 400
INDY_HUB_ESI_TASK_TARGET_PER_MIN_BLUEPRINTS = 30 # Default: 30
INDY_HUB_ESI_TASK_TARGET_PER_MIN_JOBS = 30 # Default: 30
INDY_HUB_ESI_TASK_TARGET_PER_MIN_SKILLS = 40 # Default: 40
INDY_HUB_ESI_TASK_TARGET_PER_MIN_ROLES = 30 # Default: 30
# Stale refresh thresholds (hours)
INDY_HUB_ONLINE_STATUS_STALE_HOURS = 72 # Default: 72
INDY_HUB_SKILL_SNAPSHOT_STALE_HOURS = 24 # Default: 24
INDY_HUB_ROLE_SNAPSHOT_STALE_HOURS = 24 # Default: 24
INDY_HUB_STRUCTURE_NAME_STALE_HOURS = 24 # Default: 24
Scheduled Tasks (auto-created):
indy-hub-update-all-blueprints→ Daily at 03:30 UTCindy-hub-update-all-industry-jobs→ Every 2 hoursindy-hub-refresh-stale-snapshots→ Hourly (skills/roles/online/structures)
Updating
Bare Metal Update
# Update the package
pip install --upgrade indy-hub
# Apply migrations
python manage.py migrate
# Collect static files
python manage.py collectstatic --noinput
# Restart services
systemctl restart allianceauth
Docker Update
Update Versions in conf/requirements.txt (Always use current versions)
indy-hub==1.15.1
Update the Package:
# Exec Into the Container
docker compose exec allianceauth_gunicorn bash
# Update the package
pip install -U indy-hub
# Apply Migrations
auth migrate
# Collect static files
auth collectstatic --no-input
# Restart Services
exit
docker compose build
docker compose down
docker compose up -d
If Celery runs in dedicated containers/services in your stack, also restart worker and beat/scheduler containers.
<hr />Usage
- Navigate to Indy Hub in the Alliance Auth dashboard
- Authorize ESI for blueprints and jobs via the settings
-
View Your Data:
-
Personal blueprints and industry jobs
- Corporation blueprints (if director)
- Pending blueprint copy requests
-
Material Exchange buy/sell orders and transaction history
-
Share Blueprints: Set sharing scopes and send copy offers to alliance members
- Receive Notifications: View job completions and copy request updates in the notification feed
Screenshots
Below are a few UI highlights from the current release.
Dashboard Overview

Blueprint Library

Blueprint Copy Requests

Material Exchange Hub

Order Requests

Discord Notifications

User Settings

Contributing
- Open an issue or pull request on GitHub for help or to contribute
Or contact me on discord:
erkaek
No reviews yet...
Python Requirements
- allianceauth<5,>=4
- allianceauth-app-utils>=1
- django-esi<9,>=7
- django-eveonline-sde>=0.0.1b3
- requests>=2.31
- aadiscordbot; extra == "aadiscordbot"
- aa-discordnotify>=2; extra == "discordnotify"
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.0
- 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.15.1
License
MIT License
Homepage
https://github.com/Erkaek/aa-Indy_Hub
PyPI
https://pypi.org/project/indy-hub/
Last updated
5 days, 16 hours ago
First published
7 months, 3 weeks ago
Category
Plugin Apps
Rating
-Authors
erka Ekanon
Maintainers
erka Ekanon
Please login to see more options.