Installation#

Oban Pro is delivered as a Python package published to our private package repository at repo.oban.pro.

Prerequisites#

Ensure Oban is installed for your application. If not, follow the Oban installation guide to get started.

Installing the Package#

Oban Pro requires authentication with your license key. Grab the OBAN_LICENSE_KEY from your account page and install using one of the methods below.

Set the license key as an environment variable:

export OBAN_LICENSE_KEY="your-license-key"

Then install with the --extra-index-url flag:

pip install oban_pro --extra-index-url "https://license:${OBAN_LICENSE_KEY}@repo.oban.pro"

Or with uv, set credentials via environment variables:

export UV_INDEX_OBAN_USERNAME="license"
export UV_INDEX_OBAN_PASSWORD="$OBAN_LICENSE_KEY"

Then add from the private index:

uv add oban_pro --index oban=https://repo.oban.pro

To ensure the private index is used only for Oban Pro, mark it as explicit in pyproject.toml:

[[tool.uv.index]]
name = "oban"
url = "https://repo.oban.pro"
explicit = true

For persistent configuration, add the repository to your pip configuration file.

Linux/macOS (~/.config/pip/pip.conf or ~/.pip/pip.conf):

[global]
extra-index-url = https://license:[email protected]

Windows (%APPDATA%\pip\pip.ini):

[global]
extra-index-url = https://license:[email protected]

Then install normally:

pip install oban_pro

For project-level configuration with uv, add the source to your pyproject.toml:

[[tool.uv.index]]
name = "oban"
url = "https://repo.oban.pro"
explicit = true

The explicit = true setting ensures that only Oban Pro is fetched from this index, while all other packages come from PyPI.

Then set the credentials via environment variable:

export UV_INDEX_OBAN_USERNAME="license"
export UV_INDEX_OBAN_PASSWORD="your-license-key"

Or in a .env file for local development:

UV_INDEX_OBAN_USERNAME=license
UV_INDEX_OBAN_PASSWORD=your-license-key

Now install with:

uv add oban_pro --index oban

Authenticating CI/CD and Production#

You’ll also need to configure authentication on build servers, CI/CD pipelines, and production deployments. Common approaches include:

  • Docker: Pass the license key as a build argument or use a .netrc file.

  • Actions: Store OBAN_LICENSE_KEY as a repository secret and reference it in your workflow.

  • Cloud: Use secret management services to inject the environment variable.

Warning

Never commit your license key to version control. Use environment variables or secret management for all environments.

Installing the Schema#

Oban Pro extends the base Oban schema with additional tables and functions. After installing the package, you must run the schema installation to enable features like smart concurrency, unique jobs, and workflows.

The simplest approach is to use the CLI:

obanpro install

Or specify the connection string directly:

obanpro install --dsn "postgresql://user:password@localhost/mydb"

If you’re using a migration framework like Alembic or Django, use the install_sql function to get the raw SQL:

from oban_pro.schema import install_sql

sql = install_sql()

For Alembic:

from alembic import op
from oban_pro.schema import install_sql

def upgrade():
    op.execute(install_sql())

For Django:

from django.db import migrations
from oban_pro.schema import install_sql

class Migration(migrations.Migration):
    operations = [
        migrations.RunSQL(install_sql()),
    ]

You can also install the schema programmatically:

import asyncio

from oban import Oban
from oban_pro.schema import install

async def setup():
    pool = await Oban.create_pool()
    await install(pool)
    await pool.close()

asyncio.run(setup())

Oban Pro is now installed and ready to use.

Source Distribution#

Oban Pro packages are distributed with encrypted source code to protect intellectual property. This has no impact on normal usage:

  • Debugging — Stack traces show correct file names and line numbers

  • LSP Support — Type stubs provide full autocomplete and type checking

  • Performance — Decryption happens once at import time

Packages are valid for 30 days from download. Oban Pro never phones home and license validation happens entirely at build time, ensuring your application runs without communicating with the Oban Pro servers. Running uv sync or pip install oban_pro periodically refreshes the package and ensures continued access.

Enterprise license holders receive unencrypted source for audit requirements or air-gapped environments. Contact support if you need access to unencrypted source.