Indy Hub - An industrial management application for Alliance Auth
Project description
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.
Table of Contents
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.
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file indy_hub-1.14.0.tar.gz.
File metadata
- Download URL: indy_hub-1.14.0.tar.gz
- Upload date:
- Size: 465.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
89d7834f5dacd03c618c9bb05527dbbd52f47c2f3fb28414030cdc7fca12002c
|
|
| MD5 |
67ee0152b8439e1a2e09a580dd74a27a
|
|
| BLAKE2b-256 |
aef495b23255e68d19853541a653f3b63e03c5b8f8910690d4fd4db8e80b4fe2
|
File details
Details for the file indy_hub-1.14.0-py3-none-any.whl.
File metadata
- Download URL: indy_hub-1.14.0-py3-none-any.whl
- Upload date:
- Size: 578.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0f175e9a3804a716aa2f51f6d892cb4652c4d793a08dccaa808825d6f2b1b2cb
|
|
| MD5 |
bcc6280d7d2a66104ee4442e33aa9110
|
|
| BLAKE2b-256 |
36afd571353a4424d9ff47e3c3a5ef72e75f4a808e829764b8574169b9fd2aa2
|