Enterprise AI subscription quota allocation and governance, self-hosted.
Subpool is a self-hosted control plane for allocating, governing, and auditing AI subscription capacity across teams. Administrators combine authorized subscription and API accounts into pools, distribute employee-specific keys, monitor remaining quota, and expose one consistent API without storing conversation content.
Subpool is a single Go service with an embedded React console and PostgreSQL persistence.
Requires Docker Engine and Docker Compose.
cp .env.example .env
# Generate independent secrets and place them in .env.
openssl rand -base64 32
openssl rand -base64 32
openssl rand -hex 32
docker compose up -d --build
Replace every replace-with-* value, then open http://localhost:8080 and sign in with the administrator credentials from .env.
Codex subscriptions use device-code authorization. Copy the one-time code from Subpool, continue to OpenAI, and confirm it there. This works on remote and headless deployments without a localhost callback or an extra exposed port. Device-code login must be enabled in ChatGPT security or workspace settings.
Configure Codex CLI:
model = "gpt-5.6-sol"
model_provider = "subpool"
model_reasoning_effort = "xhigh"
[model_providers.subpool]
name = "Subpool"
base_url = "https://subpool.example.com/v1"
wire_api = "responses"
experimental_bearer_token = "sk-example-not-a-real-key"
requires_openai_auth = false
Available endpoints include POST /v1/responses, POST /v1/chat/completions, GET /v1/models, GET /healthz, GET /readyz, and GET /metrics.
SUBPOOL_PUBLIC_URL to the public origin.SUBPOOL_CREDENTIAL_KEY and SUBPOOL_API_KEY_HMAC_KEY.See .env.example for configuration options.
docker compose up -d --build
make web-install
make dev
Before opening a pull request:
make web-test
make web-build
go test ./...
Subpool is licensed under the Apache License 2.0. It is independent and self-hosted. Use only accounts you are authorized to manage, and review each upstream provider's terms before sharing access.
17 commits
Go
57.6%
TypeScript
27.1%
CSS
13.5%
HTML
1.6%
Enterprise AI subscription quota allocation and governance, self-hosted.
Subpool is a self-hosted control plane for allocating, governing, and auditing AI subscription capacity across teams. Administrators combine authorized subscription and API accounts into pools, distribute employee-specific keys, monitor remaining quota, and expose one consistent API without storing conversation content.
Subpool is a single Go service with an embedded React console and PostgreSQL persistence.
Requires Docker Engine and Docker Compose.
cp .env.example .env
# Generate independent secrets and place them in .env.
openssl rand -base64 32
openssl rand -base64 32
openssl rand -hex 32
docker compose up -d --build
Replace every replace-with-* value, then open http://localhost:8080 and sign in with the administrator credentials from .env.
Codex subscriptions use device-code authorization. Copy the one-time code from Subpool, continue to OpenAI, and confirm it there. This works on remote and headless deployments without a localhost callback or an extra exposed port. Device-code login must be enabled in ChatGPT security or workspace settings.
Configure Codex CLI:
model = "gpt-5.6-sol"
model_provider = "subpool"
model_reasoning_effort = "xhigh"
[model_providers.subpool]
name = "Subpool"
base_url = "https://subpool.example.com/v1"
wire_api = "responses"
experimental_bearer_token = "sk-example-not-a-real-key"
requires_openai_auth = false
Available endpoints include POST /v1/responses, POST /v1/chat/completions, GET /v1/models, GET /healthz, GET /readyz, and GET /metrics.
SUBPOOL_PUBLIC_URL to the public origin.SUBPOOL_CREDENTIAL_KEY and SUBPOOL_API_KEY_HMAC_KEY.See .env.example for configuration options.
docker compose up -d --build
make web-install
make dev
Before opening a pull request:
make web-test
make web-build
go test ./...
Subpool is licensed under the Apache License 2.0. It is independent and self-hosted. Use only accounts you are authorized to manage, and review each upstream provider's terms before sharing access.
17 commits
Go
57.6%
TypeScript
27.1%
CSS
13.5%
HTML
1.6%