Indy Hub for Alliance Auth
Indy Hub is an industry and Material Exchange application for Alliance Auth. It helps EVE Online corporations and alliances manage blueprints, industry jobs, copy requests, production projects, and internal material trading.
Features
- Personal and corporation blueprint libraries
- Manufacturing, research, invention, and reaction job tracking
- Blueprint copy requests, offers, chat, and delivery tracking
- Crafting projects with structure, stock, blueprint, and financial planning
- Industry structure registry and corporation sharing controls
- Material Exchange buy and sell orders
- In-app and optional Discord notifications
- Superuser administration page with account health and usage statistics
- Responsive interface compatible with Alliance Auth 5 themes
For the complete list of changes in each release, see CHANGELOG.md.
Requirements
- Alliance Auth 5
- Python 3.12 or newer recommended
- Celery workers and Celery Beat
- A shared Django cache, normally Redis
django-eveonline-sdewith its base SDE data loaded
Optional integrations:
- aa-charlink for guided ESI authorization
- aadiscordbot or discordnotify for direct Discord notifications
- Corptools for activity-aware automatic refreshes
Installation
Bare metal
Install the packages:
pip install django-eveonline-sde indy-hub
Add both applications to local.py:
INSTALLED_APPS = [
# Existing applications...
"eve_sde",
"indy_hub",
]
Load the base eve_sde data by following the django-eveonline-sde setup
instructions, then finish the installation:
python manage.py migrate
python manage.py collectstatic --noinput
# Restart gunicorn, Celery Beat, and Celery workers.
Docker
Add Indy Hub to conf/requirements.txt:
indy-hub==1.18.3
Add the applications to conf/local.py:
INSTALLED_APPS = [
# Existing applications...
"eve_sde",
"indy_hub",
]
Rebuild the containers, then run migrations and collect static files using the commands provided by your Alliance Auth stack. A common setup uses:
docker compose build
docker compose up -d
docker compose exec allianceauth_gunicorn auth migrate
docker compose exec allianceauth_gunicorn auth collectstatic --noinput
docker compose restart
Make sure the base eve_sde data is loaded before using Indy Hub.
After installation
- Assign the required permissions in Alliance Auth.
- Ask users to authorize their personal Indy Hub ESI scopes.
- Ask corporation managers to authorize the additional corporation scopes they need.
- Restart gunicorn, Celery Beat, and Celery workers.
If aa-charlink is installed, it automatically offers separate authorization
options for personal access, corporation administration, and Material Exchange.
Permissions
Most users only need the base access permission. Administrative permissions should be assigned only to trusted corporation managers.
| Permission shown in Django Admin | Recommended for | Access granted |
|---|---|---|
can access Indy_Hub |
All Indy Hub users | Personal blueprints, jobs, requests, and orders |
can admin Corp |
Corporation blueprint managers | Corporation blueprints, jobs, and sharing settings |
can admin MatExchange |
Material Exchange administrators | Hub configuration, stock, orders, and transactions |
Corporation administration also requires suitable EVE corporation roles and authorized corporation tokens.
The Settings → User admin page is available only to superusers and is
read-only.
Configuration
The default settings are suitable for most installations. Add only the options
you need to local.py.
Notifications
# Enable or disable direct Discord messages.
INDY_HUB_DISCORD_DM_ENABLED = True
# aa_only | discord_direct_only | both
INDY_HUB_NOTIFICATION_DISPATCH_MODE = "discord_direct_only"
Use aa_only when another Alliance Auth service already forwards notifications
to Discord. This avoids duplicate messages.
Large crafting projects
The defaults support large forms and project files. Increase these values only if users still reach upload limits:
INDY_HUB_MAX_FORM_FIELDS = 50000
INDY_HUB_MAX_REQUEST_BODY_BYTES = 52428800 # 50 MB
Corporation blueprints in personal projects
Personal projects use personal blueprints only by default. To let users choose authorized corporation blueprints as a fallback, add this setting:
INDY_HUB_PERSONAL_PROJECTS_ALLOW_CORP_BP = True
The Corp BPs switch then appears in Crafting Projects. Personal blueprints
remain preferred, and users only see corporation blueprints they are permitted
to access.
Fixed prices for sparse Material Exchange items
If an item has incomplete Jita market data, a Material Exchange administrator
can give that exact item a fixed member-sale price in
Material Exchange → Settings. Enter one item and unit price per line, for
example Ducinium II-Grade = 4500.00. No local.py change is required.
Optional global usage tracking
Normal Indy Hub pages already record the usage statistics shown to superusers. Global middleware tracking is optional.
To enable it, add the middleware after Django's authentication and session middleware:
MIDDLEWARE = [
# Existing middleware...
"indy_hub.middleware.IndyHubUsageTrackingMiddleware",
]
INDY_HUB_USAGE_MIDDLEWARE_ENABLED = True
INDY_HUB_USAGE_MIDDLEWARE_ALLOWED_APP_NAMES = ("indy_hub",)
Keep the allowed application list limited to applications you intentionally want to include in Indy Hub usage statistics.
Background tasks
Indy Hub creates and repairs its background schedules automatically during migrations and service restarts. No manual schedule setup is required.
After installation or an update, always restart Celery Beat and Celery workers.
Updating
Read docs/UPGRADE_NOTES.md first if you are upgrading from an older release.
Bare metal
pip install --upgrade indy-hub
python manage.py migrate
python manage.py collectstatic --noinput
# Restart gunicorn, Celery Beat, and Celery workers.
Docker
Update the version in conf/requirements.txt:
indy-hub==1.18.3
Then rebuild, migrate, collect static files, and restart the containers:
docker compose build
docker compose up -d
docker compose exec allianceauth_gunicorn auth migrate
docker compose exec allianceauth_gunicorn auth collectstatic --noinput
docker compose restart
Getting started
- Open Indy Hub from the Alliance Auth dashboard.
- Authorize your personal ESI scopes from Indy Hub settings or CharLink.
- Open the blueprint library or Industry Jobs page to load your data.
- Configure blueprint sharing or Material Exchange only if your corporation uses those features.
Corporation data is available only to users with the appropriate permission, corporation role, and authorized token.
Screenshots
Dashboard
Blueprint library
Blueprint copy requests
Material Exchange
Order requests
Discord notifications
User settings
Support and contributing
Open a GitHub issue or pull request for help, bug reports, or contributions. You
can also contact erkaek on Discord.
Metadata
Release files for indy-hub 1.18.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| indy_hub-1.18.3.tar.gz | 1.1 MB | Without provenance | Details for indy_hub-1.18.3.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| indy_hub-1.18.3-py3-none-any.whl | Python 3 | none | any | Details for indy_hub-1.18.3-py3-none-any.whl |
Total release size: 2.5 MB
Release files / indy_hub-1.18.3.tar.gz
| Download URL | indy_hub-1.18.3.tar.gz |
|---|---|
| Size | 1.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d5bb9a391f57d5088eee2dfdd5437704b7ae66dba7eafa1afc70815dd517bb65
|
|
BLAKE2b-256 checksum How to use checksums |
c2a31d06ecd7ddd99260a1ae9b6875b77f5c528fd5f1e5ff6f480efda306d4e7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / indy_hub-1.18.3-py3-none-any.whl
| Download URL | indy_hub-1.18.3-py3-none-any.whl |
|---|---|
| Size | 1.3 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
78494c6e748567e4201df9f131e5c4b19894fe291a10ca18f5db6ca8da01431c
|
|
BLAKE2b-256 checksum How to use checksums |
713cbf5623904a79557230dffc39fbf2db1da77fa1aaf0195e8648aa950ccd93
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Security for indy-hub 1.18.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.