{"slug": "show-hn-subpool-self-hosted-ai-subscription-management-for-teams", "title": "Show HN: Subpool – Self-hosted AI subscription management for teams", "summary": "Subpool, a self-hosted AI subscription management tool for teams, was released on Hacker News as a Show HN project. The open-source Go service pools authorized subscription and API accounts, allocates employee-specific keys, and exposes an OpenAI-compatible API without storing conversation content. It requires Docker Engine and Docker Compose and is licensed under Apache License 2.0.", "body_md": "Enterprise AI subscription quota allocation and governance, self-hosted.\n\nSubpool 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.\n\n- Pool authorized subscription and API capacity behind one managed endpoint.\n- Allocate employee-specific keys across healthy provider accounts.\n- Monitor account health, remaining subscription capacity, and reset availability.\n- Keep key-to-account assignments visible and auditable.\n- Prefer subscription capacity and fall back to paid API accounts with the same employee key.\n- Rate-limit, expire, and revoke employee access independently.\n- Expose OpenAI-compatible Responses and Chat Completions APIs.\n- Track aggregate input and output usage per API key.\n- Encrypt upstream credentials and never persist prompts, responses, or source code.\n\nSubpool is a single Go service with an embedded React console and PostgreSQL persistence.\n\nRequires Docker Engine and Docker Compose.\n\n```\ncp .env.example .env\n\n# Generate independent secrets and place them in .env.\nopenssl rand -base64 32\nopenssl rand -base64 32\nopenssl rand -hex 32\n\ndocker compose up -d --build\n```\n\nReplace every `replace-with-*`\n\nvalue, then open [http://localhost:8080](http://localhost:8080) and sign in with the administrator credentials from `.env`\n\n.\n\n- Open\n**Accounts** and connect a Codex or OpenAI-compatible account. - Create a pool and add the account.\n- Create an employee API key for the pool.\n\nCodex subscriptions use [device-code authorization](https://developers.openai.com/codex/auth/). 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.\n\nConfigure Codex CLI:\n\n```\nmodel = \"gpt-5.6-sol\"\nmodel_provider = \"subpool\"\nmodel_reasoning_effort = \"xhigh\"\n\n[model_providers.subpool]\nname = \"Subpool\"\nbase_url = \"https://subpool.example.com/v1\"\nwire_api = \"responses\"\nexperimental_bearer_token = \"sk-example-not-a-real-key\"\nrequires_openai_auth = false\n```\n\nAvailable endpoints include `POST /v1/responses`\n\n, `POST /v1/chat/completions`\n\n, `GET /v1/models`\n\n, `GET /healthz`\n\n, `GET /readyz`\n\n, and `GET /metrics`\n\n.\n\n- Terminate TLS at a reverse proxy and set\n`SUBPOOL_PUBLIC_URL`\n\nto the public origin. - Back up PostgreSQL together with\n`SUBPOOL_CREDENTIAL_KEY`\n\nand`SUBPOOL_API_KEY_HMAC_KEY`\n\n. - Use PostgreSQL for shared authentication, rate-limit, assignment, and health state across replicas.\n\nSee [.env.example](/gesta-run/subpool/blob/main/.env.example) for configuration options.\n\n```\ndocker compose up -d --build\nmake web-install\nmake dev\n```\n\nBefore opening a pull request:\n\n```\nmake web-test\nmake web-build\ngo test ./...\n```\n\nSubpool is licensed under the [Apache License 2.0](/gesta-run/subpool/blob/main/LICENSE). It is independent and self-hosted. Use only accounts you are authorized to manage, and review each upstream provider's terms before sharing access.", "url": "https://wpnews.pro/news/show-hn-subpool-self-hosted-ai-subscription-management-for-teams", "canonical_source": "https://github.com/gesta-run/subpool", "published_at": "2026-09-02 13:01:31+00:00", "updated_at": "2026-09-02 13:23:17.747532+00:00", "lang": "en", "topics": ["ai-tools", "developer-tools", "ai-infrastructure"], "entities": ["Subpool", "OpenAI", "Docker", "Apache License 2.0"], "alternates": {"html": "https://wpnews.pro/news/show-hn-subpool-self-hosted-ai-subscription-management-for-teams", "markdown": "https://wpnews.pro/news/show-hn-subpool-self-hosted-ai-subscription-management-for-teams.md", "text": "https://wpnews.pro/news/show-hn-subpool-self-hosted-ai-subscription-management-for-teams.txt", "jsonld": "https://wpnews.pro/news/show-hn-subpool-self-hosted-ai-subscription-management-for-teams.jsonld"}}