Skip to content

Commit 5bf2107

Browse files
committed
Release abstractgateway 0.2.25
1 parent aab7d79 commit 5bf2107

18 files changed

Lines changed: 152 additions & 50 deletions

CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.2.25] - 2026-05-31
11+
12+
### Changed
13+
- Set Gateway container defaults for host-native LM Studio and Ollama endpoints so named provider discovery does not default to `localhost` inside the container.
14+
- Updated Docker deployment docs to use `LMSTUDIO_BASE_URL` for LM Studio and `OPENAI_BASE_URL` for generic OpenAI-compatible endpoints.
15+
16+
### Fixed
17+
- Fixed Gateway Console capability-default model discovery so the Base URL field is forwarded to the provider model catalog before saving.
18+
- Fixed Docker Compose/OpenAI-compatible documentation drift where `OPENAI_COMPATIBLE_BASE_URL` was shown as the primary AbstractCore discovery variable even though AbstractCore uses `OPENAI_BASE_URL`.
19+
1020
## [0.2.24] - 2026-05-31
1121

1222
### Added

README.md

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -95,15 +95,15 @@ Release images are published to GHCR. The default image is the light,
9595
portable server image:
9696

9797
```bash
98-
docker pull ghcr.io/lpalbou/abstractgateway:0.2.24
98+
docker pull ghcr.io/lpalbou/abstractgateway:0.2.25
9999
```
100100

101101
NVIDIA hosts can try the experimental full GPU image when local
102102
vLLM/HuggingFace/Diffusers engines are wanted. This image is published
103103
best-effort until it has a real CUDA build and smoke gate:
104104

105105
```bash
106-
docker pull ghcr.io/lpalbou/abstractgateway:0.2.24-gpu
106+
docker pull ghcr.io/lpalbou/abstractgateway:0.2.25-gpu
107107
```
108108

109109
Legacy `abstractgateway-server` and `abstractgateway-server-nvidia` GHCR aliases
@@ -129,7 +129,7 @@ docker run --rm --name abstractgateway \
129129
-p 8080:8080 \
130130
-e ABSTRACTGATEWAY_DATA_DIR=/data \
131131
-e ABSTRACTGATEWAY_USER_AUTH=1 \
132-
-e OPENAI_COMPATIBLE_BASE_URL="http://host.docker.internal:1234/v1" \
132+
-e LMSTUDIO_BASE_URL="http://host.docker.internal:1234/v1" \
133133
-v "$PWD/runtime:/data" \
134134
ghcr.io/lpalbou/abstractgateway:latest
135135
```
@@ -142,17 +142,18 @@ Configure framework model defaults through execution-host capability routes:
142142

143143
```bash
144144
docker exec abstractgateway abstractgateway-config set-default output.text \
145-
--provider openai-compatible \
145+
--provider lmstudio \
146146
--model your-model \
147147
--base-url http://host.docker.internal:1234/v1
148148
```
149149

150150
On Apple Silicon, keep Metal/MLX inference native on macOS and run the
151151
lightweight Gateway container as the transport/control plane. Point
152-
`OPENAI_COMPATIBLE_BASE_URL` at a host-native OpenAI-compatible endpoint such
153-
as Docker Model Runner (`http://model-runner.docker.internal/engines/v1`), LM
154-
Studio (`http://host.docker.internal:1234/v1`), Ollama
155-
(`http://host.docker.internal:11434/v1`), or `mlx_lm.server` on a host port.
152+
`OPENAI_BASE_URL` at a generic host-native OpenAI-compatible endpoint such as
153+
Docker Model Runner (`http://model-runner.docker.internal/engines/v1`) or
154+
`mlx_lm.server` on a host port. For named providers, use
155+
`LMSTUDIO_BASE_URL=http://host.docker.internal:1234/v1` or
156+
`OLLAMA_BASE_URL=http://host.docker.internal:11434`.
156157
For native non-Docker installs with local engines, use
157158
`pip install "abstractgateway[apple]"` on Apple Silicon, and
158159
`pip install "abstractgateway[gpu]"` on GPU workstations or NVIDIA Docker builds.

docker/abstractgateway-server/.env.example

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,9 @@ PORTKEY_CONFIG=
5151
# http://model-runner.docker.internal/engines/v1, http://host.docker.internal:1234/v1,
5252
# or http://host.docker.internal:11434/v1.
5353
# LM Studio/Ollama text endpoints are not assumed to expose image generation.
54-
OPENAI_COMPATIBLE_BASE_URL=http://host.docker.internal:1234/v1
54+
OPENAI_BASE_URL=http://host.docker.internal:1234/v1
55+
# Legacy/compatibility alias used by some operators; AbstractCore discovery uses OPENAI_BASE_URL.
56+
OPENAI_COMPATIBLE_BASE_URL=
5557
OPENAI_COMPATIBLE_API_KEY=
5658
LMSTUDIO_BASE_URL=http://host.docker.internal:1234/v1
5759
OLLAMA_BASE_URL=http://host.docker.internal:11434

docker/abstractgateway-server/Dockerfile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@ ENV PYTHONDONTWRITEBYTECODE=1 \
1414
ABSTRACTGATEWAY_USER_AUTH=1 \
1515
ABSTRACTGATEWAY_WORKFLOW_SOURCE=bundle \
1616
ABSTRACTGATEWAY_STORE_BACKEND=file \
17-
ABSTRACTGATEWAY_ALLOWED_ORIGINS=http://localhost:*,http://127.0.0.1:*
17+
ABSTRACTGATEWAY_ALLOWED_ORIGINS=http://localhost:*,http://127.0.0.1:* \
18+
LMSTUDIO_BASE_URL=http://host.docker.internal:1234/v1 \
19+
OLLAMA_BASE_URL=http://host.docker.internal:11434
1820

1921
RUN addgroup --system abstractgateway \
2022
&& adduser --system --ingroup abstractgateway --home /home/abstractgateway abstractgateway \

docker/abstractgateway-server/README.md

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@ This image packages the AbstractGateway HTTP/SSE server for durable
44
AbstractRuntime runs:
55

66
```bash
7-
ghcr.io/lpalbou/abstractgateway:0.2.24
7+
ghcr.io/lpalbou/abstractgateway:0.2.25
88
```
99

1010
Release images are published for `linux/amd64` and `linux/arm64`.
1111
A separate experimental full NVIDIA image is published best-effort for
1212
`linux/amd64`:
1313

1414
```bash
15-
ghcr.io/lpalbou/abstractgateway:0.2.24-gpu
15+
ghcr.io/lpalbou/abstractgateway:0.2.25-gpu
1616
```
1717

1818
Legacy aliases `ghcr.io/lpalbou/abstractgateway-server:*` and
@@ -67,8 +67,12 @@ OPENROUTER_API_KEY=sk-or-...
6767
ANTHROPIC_API_KEY=sk-ant-...
6868
PORTKEY_API_KEY=pk_...
6969
PORTKEY_CONFIG=pcfg_...
70-
OPENAI_COMPATIBLE_BASE_URL=http://host.docker.internal:1234/v1
70+
OPENAI_BASE_URL=http://host.docker.internal:1234/v1
71+
# Legacy/compatibility alias used by some operators; AbstractCore discovery uses OPENAI_BASE_URL.
72+
OPENAI_COMPATIBLE_BASE_URL=
7173
OPENAI_COMPATIBLE_API_KEY=optional
74+
LMSTUDIO_BASE_URL=http://host.docker.internal:1234/v1
75+
OLLAMA_BASE_URL=http://host.docker.internal:11434
7276
ABSTRACTVISION_BASE_URL=https://api.openai.com/v1
7377
ABSTRACTVISION_API_KEY=optional
7478
ABSTRACTVISION_MODEL_ID=gpt-image-1
@@ -106,8 +110,22 @@ docker run --rm --name abstractgateway \
106110
-e ABSTRACTGATEWAY_USER_AUTH=1 \
107111
-e ABSTRACTGATEWAY_PROVIDER="openai-compatible" \
108112
-e ABSTRACTGATEWAY_MODEL="your-model" \
109-
-e OPENAI_COMPATIBLE_BASE_URL="http://host.docker.internal:1234/v1" \
110-
-e OPENAI_COMPATIBLE_API_KEY="$OPENAI_COMPATIBLE_API_KEY" \
113+
-e OPENAI_BASE_URL="http://host.docker.internal:1234/v1" \
114+
-e OPENAI_API_KEY="$OPENAI_API_KEY" \
115+
-v "$PWD/runtime:/data" \
116+
ghcr.io/lpalbou/abstractgateway:latest
117+
```
118+
119+
For LM Studio specifically, prefer the named provider so Gateway model
120+
discovery uses `LMSTUDIO_BASE_URL`:
121+
122+
```bash
123+
docker run --rm --name abstractgateway \
124+
-p 8080:8080 \
125+
-e ABSTRACTGATEWAY_USER_AUTH=1 \
126+
-e ABSTRACTGATEWAY_PROVIDER="lmstudio" \
127+
-e ABSTRACTGATEWAY_MODEL="your-loaded-model-id" \
128+
-e LMSTUDIO_BASE_URL="http://host.docker.internal:1234/v1" \
111129
-v "$PWD/runtime:/data" \
112130
ghcr.io/lpalbou/abstractgateway:latest
113131
```
@@ -158,7 +176,7 @@ For unreleased local checkouts, build the image from this repository:
158176

159177
```bash
160178
ABSTRACTGATEWAY_INSTALL_MODE=local \
161-
ABSTRACTGATEWAY_IMAGE_TAG=0.2.24-local \
179+
ABSTRACTGATEWAY_IMAGE_TAG=0.2.25-local \
162180
docker compose -f docker/abstractgateway-server/compose.yml up -d --build
163181
```
164182

docker/abstractgateway-server/compose.nvidia.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@ services:
22
abstractgateway:
33
# Experimental CUDA overlay. Keep release-grade deployments on compose.yml
44
# until this image has a real CUDA build/smoke gate.
5-
image: ghcr.io/lpalbou/abstractgateway:${ABSTRACTGATEWAY_NVIDIA_IMAGE_TAG:-0.2.24-gpu}
5+
image: ghcr.io/lpalbou/abstractgateway:${ABSTRACTGATEWAY_NVIDIA_IMAGE_TAG:-0.2.25-gpu}
66
build:
77
context: ../..
88
dockerfile: docker/abstractgateway-server/Dockerfile.nvidia
99
args:
1010
ABSTRACTGATEWAY_INSTALL_MODE: ${ABSTRACTGATEWAY_INSTALL_MODE:-pypi}
11-
ABSTRACTGATEWAY_VERSION: ${ABSTRACTGATEWAY_VERSION:-0.2.24}
11+
ABSTRACTGATEWAY_VERSION: ${ABSTRACTGATEWAY_VERSION:-0.2.25}
1212
ABSTRACTGATEWAY_EXTRAS: ${ABSTRACTGATEWAY_EXTRAS:-gpu}
1313
gpus: all
1414
environment:

docker/abstractgateway-server/compose.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@ name: abstractgateway-server
22

33
services:
44
abstractgateway:
5-
image: ghcr.io/lpalbou/abstractgateway:${ABSTRACTGATEWAY_IMAGE_TAG:-0.2.24}
5+
image: ghcr.io/lpalbou/abstractgateway:${ABSTRACTGATEWAY_IMAGE_TAG:-0.2.25}
66
build:
77
context: ../..
88
dockerfile: docker/abstractgateway-server/Dockerfile
99
args:
1010
ABSTRACTGATEWAY_INSTALL_MODE: ${ABSTRACTGATEWAY_INSTALL_MODE:-pypi}
11-
ABSTRACTGATEWAY_VERSION: ${ABSTRACTGATEWAY_VERSION:-0.2.24}
11+
ABSTRACTGATEWAY_VERSION: ${ABSTRACTGATEWAY_VERSION:-0.2.25}
1212
ABSTRACTGATEWAY_EXTRAS: ${ABSTRACTGATEWAY_EXTRAS:-}
1313
ports:
1414
- "${ABSTRACTGATEWAY_BIND_HOST:-127.0.0.1}:${ABSTRACTGATEWAY_PORT:-8080}:8080"
@@ -43,6 +43,7 @@ services:
4343
OPENROUTER_APP_NAME: ${OPENROUTER_APP_NAME:-AbstractGateway}
4444
PORTKEY_API_KEY: ${PORTKEY_API_KEY:-}
4545
PORTKEY_CONFIG: ${PORTKEY_CONFIG:-}
46+
OPENAI_BASE_URL: ${OPENAI_BASE_URL:-}
4647
OPENAI_COMPATIBLE_BASE_URL: ${OPENAI_COMPATIBLE_BASE_URL:-}
4748
OPENAI_COMPATIBLE_API_KEY: ${OPENAI_COMPATIBLE_API_KEY:-}
4849
LMSTUDIO_BASE_URL: ${LMSTUDIO_BASE_URL:-http://host.docker.internal:1234/v1}

docs/configuration.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -341,12 +341,13 @@ Local heavy engines remain explicit opt-ins in the provider packages; Gateway
341341
does not implicitly install them.
342342

343343
- `output.text` capability route: default text model for bundle LLM nodes
344-
- `OPENAI_COMPATIBLE_BASE_URL` / `OPENAI_COMPATIBLE_API_KEY`: OpenAI-compatible text endpoint for AbstractCore providers
344+
- `OPENAI_BASE_URL` / `OPENAI_API_KEY`: generic OpenAI-compatible text endpoint for AbstractCore providers
345345
- Apple/MLX Docker deployments should point the lightweight Gateway container
346346
at host-native inference, for example
347347
`http://model-runner.docker.internal/engines/v1`,
348-
`http://host.docker.internal:1234/v1`, or
349-
`http://host.docker.internal:11434/v1`.
348+
`http://host.docker.internal:1234/v1`, or another `/v1` endpoint.
349+
- `LMSTUDIO_BASE_URL` / `OLLAMA_BASE_URL`: named local endpoint providers for
350+
LM Studio and Ollama model discovery/routing from inside the Gateway container.
350351
- `ABSTRACTGATEWAY_VISION_BACKEND` / `ABSTRACTGATEWAY_VISION_BASE_URL` / `ABSTRACTGATEWAY_VISION_API_KEY` / `ABSTRACTGATEWAY_VISION_MODEL_ID`: Gateway-scoped image backend settings. Legacy `ABSTRACTVISION_*` names are still accepted by the lower package.
351352
- `ABSTRACTGATEWAY_VOICE_TTS_ENGINE` / `ABSTRACTGATEWAY_VOICE_STT_ENGINE`: Gateway-scoped voice engine settings. Legacy `ABSTRACTVOICE_*` names are still accepted by the lower package.
352353
- `ABSTRACTGATEWAY_VOICE_TTS_MODEL` / `ABSTRACTGATEWAY_VOICE_STT_MODEL`: Gateway-scoped TTS/STT model defaults.

docs/deployment.md

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,15 @@ Release images are published to GHCR. The default image is the light,
1111
portable server image:
1212

1313
```bash
14-
docker pull ghcr.io/lpalbou/abstractgateway:0.2.24
14+
docker pull ghcr.io/lpalbou/abstractgateway:0.2.25
1515
```
1616

1717
NVIDIA hosts can try the experimental full GPU image when local
1818
vLLM/HuggingFace/Diffusers engines are wanted. This image is published
1919
best-effort until it has a real CUDA build and smoke gate:
2020

2121
```bash
22-
docker pull ghcr.io/lpalbou/abstractgateway:0.2.24-gpu
22+
docker pull ghcr.io/lpalbou/abstractgateway:0.2.25-gpu
2323
```
2424

2525
Legacy aliases `ghcr.io/lpalbou/abstractgateway-server:*` and
@@ -63,7 +63,7 @@ docker run --rm --name abstractgateway \
6363
-p 8080:8080 \
6464
-e ABSTRACTGATEWAY_DATA_DIR=/data \
6565
-e ABSTRACTGATEWAY_USER_AUTH=1 \
66-
-e OPENAI_COMPATIBLE_BASE_URL="http://model-runner.docker.internal/engines/v1" \
66+
-e OPENAI_BASE_URL="http://model-runner.docker.internal/engines/v1" \
6767
-v "$PWD/runtime:/data" \
6868
ghcr.io/lpalbou/abstractgateway:latest
6969
```
@@ -78,9 +78,9 @@ docker exec abstractgateway abstractgateway-config set-default output.text \
7878
```
7979

8080
Other host-native endpoints are also valid: LM Studio at
81-
`http://host.docker.internal:1234/v1`, Ollama's OpenAI-compatible API at
82-
`http://host.docker.internal:11434/v1`, or `mlx_lm.server` exposed on a host
83-
port. For fully native non-Docker installs with local engines, use
81+
`http://host.docker.internal:1234/v1` with `LMSTUDIO_BASE_URL`, Ollama at
82+
`http://host.docker.internal:11434` with `OLLAMA_BASE_URL`, or `mlx_lm.server`
83+
exposed on a host port. For fully native non-Docker installs with local engines, use
8484
`pip install "abstractgateway[apple]"` on Apple Silicon, and
8585
`pip install "abstractgateway[gpu]"` on GPU workstations or NVIDIA Docker builds.
8686

@@ -147,7 +147,8 @@ Provider keys and endpoints:
147147
- `ANTHROPIC_API_KEY`
148148
- `OPENROUTER_API_KEY`
149149
- `PORTKEY_API_KEY` / `PORTKEY_CONFIG`
150-
- `OPENAI_COMPATIBLE_BASE_URL` / `OPENAI_COMPATIBLE_API_KEY`
150+
- `OPENAI_BASE_URL` / `OPENAI_API_KEY` for generic OpenAI-compatible endpoints
151+
- `OPENAI_COMPATIBLE_BASE_URL` / `OPENAI_COMPATIBLE_API_KEY` as legacy operator aliases; prefer `OPENAI_BASE_URL` for AbstractCore discovery
151152
- `LMSTUDIO_BASE_URL`
152153
- `OLLAMA_BASE_URL`
153154
- `VLLM_BASE_URL`
@@ -194,7 +195,7 @@ Before a version is published to PyPI, build from the checkout:
194195

195196
```bash
196197
ABSTRACTGATEWAY_INSTALL_MODE=local \
197-
ABSTRACTGATEWAY_IMAGE_TAG=0.2.24-local \
198+
ABSTRACTGATEWAY_IMAGE_TAG=0.2.25-local \
198199
docker compose -f docker/abstractgateway-server/compose.yml up -d --build
199200
```
200201

docs/getting-started.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -156,18 +156,18 @@ customization.
156156

157157
On first start, the container creates `default/admin` and writes the token to
158158
`runtime/auth/bootstrap-admin-token`. NVIDIA hosts can try
159-
`ghcr.io/lpalbou/abstractgateway:0.2.24-gpu` with the compose overlay in
159+
`ghcr.io/lpalbou/abstractgateway:0.2.25-gpu` with the compose overlay in
160160
`docker/abstractgateway-server/compose.nvidia.yml`.
161161
It is experimental until a real CUDA build/smoke gate is part of release
162162
validation.
163163
Apple MLX inference should run natively on macOS rather than in Docker because
164164
Linux containers do not get access to Apple's Metal/MLX runtime. The container
165165
can still use native macOS inference through an OpenAI-compatible endpoint:
166-
point `OPENAI_COMPATIBLE_BASE_URL` at Docker Model Runner on
167-
`http://model-runner.docker.internal/engines/v1`, LM Studio on
168-
`http://host.docker.internal:1234/v1`, `mlx_lm.server`, or Ollama's
169-
OpenAI-compatible API on `http://host.docker.internal:11434/v1` when the
170-
native Ollama model path uses MLX. For native non-Docker installs, use
166+
point `OPENAI_BASE_URL` at Docker Model Runner on
167+
`http://model-runner.docker.internal/engines/v1` or `mlx_lm.server`. For named
168+
local providers, set `LMSTUDIO_BASE_URL=http://host.docker.internal:1234/v1` or
169+
`OLLAMA_BASE_URL=http://host.docker.internal:11434` when the native Ollama model
170+
path uses MLX. For native non-Docker installs, use
171171
`pip install "abstractgateway[apple]"` on Apple Silicon, and
172172
`pip install "abstractgateway[gpu]"` on GPU workstations or NVIDIA Docker builds.
173173

0 commit comments

Comments
 (0)