
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: View, filter, and search all your EVE Online blueprints by character, corporation, type, and efficiency.
- Industry Job Tracking: Monitor and filter your manufacturing, research, and invention jobs in real time.
- Blueprint Copy Sharing: Request, offer, and deliver blueprint copies (BPCs) with collapsible fulfillment cards, inline access list summaries, signed Discord quick-action links, and notifications for each step.
- Flexible Sharing Scopes: Expose blueprint libraries per character, per corporation, or to everyone at once.
- Conditional Offer Chat: Negotiate blueprint copy terms directly in Indy Hub with persistent history and status tracking.
- Material Exchange: Create buy/sell orders with order references, validate ESI contracts, and review transaction history.
- Material Exchange UX: Compact order detail headers with quick-copy helpers (order reference, buyer/corporation, EVE-friendly totals) plus hub location and quantity shortcuts on buy/sell pages.
- ESI Integration: Secure OAuth2-based sync for blueprints and jobs with director-level corporation scopes.
- Notifications: In-app alerts for job completions, copy offers, chat messages, and deliveries, with configurable immediate or digest cadences.
- Modern UI: Responsive Bootstrap 5 interface with theme compatibility and full i18n support.
Requirements
- Alliance Auth v4+
- Python 3.10+
- Django (as required by AA)
- Alliance Auth AppUtils
- django-esi (OpenAPI client, >=8)
- django-eveuniverse (populated with industry 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-eveuniverse indy-hub
Add to your local.py:
# Add to INSTALLED_APPS
INSTALLED_APPS = [
"eveuniverse",
"indy_hub",
]
# EveUniverse configuration
EVEUNIVERSE_LOAD_TYPE_MATERIALS = True
EVEUNIVERSE_LOAD_MARKET_GROUPS = True
Run migrations and collect static files:
python manage.py migrate
python manage.py collectstatic --noinput
Populate industry data:
python manage.py eveuniverse_load_data types --types-enabled-sections industry_activities type_materials
Restart services:
# Restart Alliance Auth
systemctl restart allianceauth
Docker
docker compose exec allianceauth_gunicorn bash
pip install django-eveuniverse indy-hub
exit
Add to your conf/local.py:
# Add to INSTALLED_APPS
INSTALLED_APPS = [
"eveuniverse",
"indy_hub",
]
# EveUniverse configuration
EVEUNIVERSE_LOAD_TYPE_MATERIALS = True
EVEUNIVERSE_LOAD_MARKET_GROUPS = True
Add to your conf/requirements.txt (Always use current versions)
django-eveuniverse==1.6.0
indy-hub==1.14.0
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
Populate industry data:
docker compose exec allianceauth_gunicorn bash
auth eveuniverse_load_data types --types-enabled-sections industry_activities type_materials
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)
indy_hub.can_access_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)
indy_hub.can_manage_corp_bp_requests→ "Can manage corporation indy"- 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)
indy_hub.can_manage_material_hub→ "Can manage Mat Exchange"- 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.14.0
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
No reviews yet...
Python Requirements
- allianceauth<5,>=4
- allianceauth-app-utils>=1
- django-esi<9,>=7
- django-eveuniverse>=1.5.7
- 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.14.0
License
MIT License
Homepage
https://github.com/Erkaek/aa-Indy_Hub
PyPI
https://pypi.org/project/indy-hub/
Last updated
6 hours ago
First published
7 months ago
Category
Plugin Apps
Rating
-Authors
erka Ekanon
Maintainers
erka Ekanon
Please login to see more options.