Skip to main content

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-sde with its base SDE data loaded

Optional integrations:

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

  1. Assign the required permissions in Alliance Auth.
  2. Ask users to authorize their personal Indy Hub ESI scopes.
  3. Ask corporation managers to authorize the additional corporation scopes they need.
  4. 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

  1. Open Indy Hub from the Alliance Auth dashboard.
  2. Authorize your personal ESI scopes from Indy Hub settings or CharLink.
  3. Open the blueprint library or Industry Jobs page to load your data.
  4. 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

Dashboard overview

Blueprint library

Blueprint library filters and list

Blueprint copy requests

Copy request workflow

Material Exchange

Material exchange overview

Order requests

Order request details

Discord notifications

Discord notification example

User settings

User settings and preferences

Support and contributing

Open a GitHub issue or pull request for help, bug reports, or contributions. You can also contact erkaek on Discord.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

indy_hub-1.18.3.tar.gz (1.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

indy_hub-1.18.3-py3-none-any.whl (1.3 MB view details)

Uploaded Python 3

File details

Details for the file indy_hub-1.18.3.tar.gz.

File metadata

  • Download URL: indy_hub-1.18.3.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.7

File hashes

Hashes for indy_hub-1.18.3.tar.gz
Algorithm Hash digest
SHA256 d5bb9a391f57d5088eee2dfdd5437704b7ae66dba7eafa1afc70815dd517bb65
MD5 16017ebf307379a636e5910bde0c374b
BLAKE2b-256 c2a31d06ecd7ddd99260a1ae9b6875b77f5c528fd5f1e5ff6f480efda306d4e7

See more details on using hashes here.

File details

Details for the file indy_hub-1.18.3-py3-none-any.whl.

File metadata

  • Download URL: indy_hub-1.18.3-py3-none-any.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.7

File hashes

Hashes for indy_hub-1.18.3-py3-none-any.whl
Algorithm Hash digest
SHA256 78494c6e748567e4201df9f131e5c4b19894fe291a10ca18f5db6ca8da01431c
MD5 461701988a8fb8c82637ee1640e0c2fd
BLAKE2b-256 713cbf5623904a79557230dffc39fbf2db1da77fa1aaf0195e8648aa950ccd93

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.18.3 This release

2 files

1.18.2

2 files

1.17.2

2 files

1.17.1

2 files

1.17.0

2 files

1.16.2

2 files

1.16.1

2 files

1.16.0

2 files

1.15.1

2 files

1.15.0

2 files

1.14.5

2 files

1.14.4

2 files

1.14.3

2 files

1.14.2

2 files

1.14.1

2 files

1.14.0

2 files

1.13.13

2 files

1.13.12

2 files

1.13.11

2 files

1.13.10

2 files

1.13.9

2 files

1.13.8

2 files

1.13.7

2 files

1.13.6

2 files

1.13.5

2 files

1.13.3

2 files

1.13.2

2 files

1.13.0

2 files

1.12.2

2 files

1.12.1

2 files

1.11.0

2 files

1.10.2

2 files

1.10.0

2 files

1.9.11

2 files

1.9.10

2 files

1.9.9

2 files

1.9.8

2 files

1.9.6

2 files

1.9.5

2 files

1.8.4

2 files

1.8.3

2 files

1.8.2

2 files

1.8.1

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page