mirror of
https://github.com/maziggy/bambuddy.git
synced 2026-09-29 18:51:43 +02:00
docs(slicer-api): switch sidecar to pre-built images on GHCR + Docker Hub (#1657)
Local build via Docker git context required `git` in the BuildKit worker,
which QNAP Container Station and Synology DSM don't provide. Both sidecar
images are now published to ghcr.io/maziggy/{orca-slicer-api,bambu-studio-api}
and docker.io/maziggy/{orca-slicer-api,bambu-studio-api}; compose pulls
:latest by default, SIDECAR_TAG=bambuddy-X.Y.Z pins per release.
Wiki, slicer-api README, .env.example, and CHANGELOG aligned. Build-from-source
path kept under "Building from source (advanced)" for forks / dev work.
Both images are linux/amd64 only — OrcaSlicer ARM64 on hold pending upstream
fix; BambuStudio doesn't publish ARM64.
This commit is contained in:
@@ -6,7 +6,9 @@
|
||||
ORCA_API_PORT=3003
|
||||
BAMBU_API_PORT=3001
|
||||
|
||||
# Slicer versions. Pinned for reproducibility — bump these when you want
|
||||
# a newer slicer and accept a fresh ~220 MB BambuStudio download.
|
||||
ORCA_VERSION=2.3.2
|
||||
BAMBU_VERSION=02.07.01.57
|
||||
# Sidecar image tag. Default is `latest` (current stable release).
|
||||
# Pinning options:
|
||||
# bambuddy-X.Y.Z pin to the sidecar image that shipped with Bambuddy X.Y.Z
|
||||
# (e.g. SIDECAR_TAG=bambuddy-0.2.5)
|
||||
# daily track the bambuddy:daily channel
|
||||
SIDECAR_TAG=latest
|
||||
|
||||
+35
-21
@@ -16,7 +16,7 @@ Enable the API path by:
|
||||
|
||||
```bash
|
||||
cd slicer-api/
|
||||
cp .env.example .env # edit ports / versions if you like
|
||||
cp .env.example .env # edit ports if you like
|
||||
|
||||
# OrcaSlicer only (default profile):
|
||||
docker compose up -d
|
||||
@@ -28,9 +28,15 @@ curl http://localhost:3001/health # bambu-studio-api
|
||||
curl http://localhost:3003/health # orca-slicer-api
|
||||
```
|
||||
|
||||
First build downloads the slicer's AppImage (~110 MB OrcaSlicer, ~220 MB
|
||||
BambuStudio) and compiles the Node wrapper. Takes 3–8 minutes per service.
|
||||
Subsequent runs reuse the local image — instant start.
|
||||
First start pulls pre-built images from GHCR (~110 MB OrcaSlicer,
|
||||
~220 MB BambuStudio). No local build, no git in the BuildKit worker,
|
||||
works on QNAP / Synology / Container Station out of the box.
|
||||
|
||||
Both images are `linux/amd64` only. OrcaSlicer's ARM64 build is on hold
|
||||
pending an upstream extraction fix; BambuStudio doesn't publish ARM64
|
||||
at all. For ARM64 hosts (Raspberry Pi 4/5, Apple Silicon Linux), run
|
||||
the sidecar on a separate x86_64 box and point Bambuddy at it via the
|
||||
**Sidecar URL** field — the sidecar doesn't need to live next to Bambuddy.
|
||||
|
||||
## Ports
|
||||
|
||||
@@ -55,32 +61,40 @@ In the Bambuddy UI: **Settings → Slicer**:
|
||||
Leaving the URL field blank uses the `SLICER_API_URL` /
|
||||
`BAMBU_STUDIO_API_URL` environment defaults from Bambuddy's config.
|
||||
|
||||
## Where the source lives
|
||||
## Where the images live
|
||||
|
||||
Both images build from the
|
||||
Pre-built images are published to two registries on every Bambuddy
|
||||
stable release:
|
||||
|
||||
- `ghcr.io/maziggy/orca-slicer-api:latest` / `docker.io/maziggy/orca-slicer-api:latest`
|
||||
- `ghcr.io/maziggy/bambu-studio-api:latest` / `docker.io/maziggy/bambu-studio-api:latest`
|
||||
|
||||
Each release also publishes a versioned tag (`:bambuddy-X.Y.Z`) so you
|
||||
can pin to the sidecar that shipped alongside a specific Bambuddy
|
||||
release — set `SIDECAR_TAG=bambuddy-0.2.5` in `.env`.
|
||||
|
||||
Both images are built from the
|
||||
[`maziggy/orca-slicer-api`](https://github.com/maziggy/orca-slicer-api)
|
||||
fork (`bambuddy/profile-resolver` branch). The Compose file uses
|
||||
Docker's git build context, so you don't need to clone it manually —
|
||||
Docker pulls the repo at build time.
|
||||
|
||||
The fork patches AFKFelix's upstream wrapper with the `inherits:`
|
||||
chain resolver, `from: "User"` → `"system"` rewrite, `# ` clone-prefix
|
||||
strip, and sentinel-value strip — all empirically required to slice
|
||||
real GUI exports without segfaulting the CLI. Once those land
|
||||
upstream, this Compose file can be flipped to pull from
|
||||
`ghcr.io/afkfelix/orca-slicer-api` directly.
|
||||
fork (`bambuddy/profile-resolver` branch). The fork patches AFKFelix's
|
||||
upstream wrapper with the `inherits:` chain resolver, `from: "User"`
|
||||
→ `"system"` rewrite, `# ` clone-prefix strip, and sentinel-value
|
||||
strip — all empirically required to slice real GUI exports without
|
||||
segfaulting the CLI. Once those land upstream, the compose file can be
|
||||
flipped back to `ghcr.io/afkfelix/orca-slicer-api`.
|
||||
|
||||
## Updating
|
||||
|
||||
Bump the versions in `.env`, then:
|
||||
|
||||
```bash
|
||||
docker compose --profile bambu build --no-cache
|
||||
docker compose pull
|
||||
docker compose --profile bambu up -d
|
||||
```
|
||||
|
||||
`--no-cache` is needed because the Dockerfile downloads the AppImage
|
||||
inline; Docker won't re-fetch it on a version change otherwise.
|
||||
That's it — Compose pulls the current `:latest` (or whatever
|
||||
`SIDECAR_TAG` you've pinned to) and recreates the containers.
|
||||
|
||||
To roll back to the sidecar that shipped with a previous Bambuddy
|
||||
release, set `SIDECAR_TAG=bambuddy-X.Y.Z` in `.env` and re-run the two
|
||||
commands above.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
|
||||
@@ -17,18 +17,17 @@
|
||||
# docker compose up -d # starts OrcaSlicer only
|
||||
# docker compose --profile bambu up -d # starts both
|
||||
#
|
||||
# First build pulls the source from the fork over git (~5 min — downloads
|
||||
# the BambuStudio AppImage, ~220 MB) and caches the image locally.
|
||||
# Subsequent runs reuse the cache. Pin the slicer versions via .env.
|
||||
# First start pulls pre-built images from GHCR (~110 MB OrcaSlicer,
|
||||
# ~220 MB BambuStudio). No local build, no git in the BuildKit worker,
|
||||
# works on QNAP / Synology / Container Station out of the box.
|
||||
#
|
||||
# Both images are linux/amd64 only. OrcaSlicer's ARM64 path is on hold
|
||||
# pending an upstream extraction fix; BambuStudio doesn't publish ARM64
|
||||
# at all.
|
||||
|
||||
services:
|
||||
orca-slicer-api:
|
||||
build:
|
||||
context: https://github.com/maziggy/orca-slicer-api.git#bambuddy/profile-resolver
|
||||
dockerfile: Dockerfile
|
||||
args:
|
||||
ORCA_VERSION: "${ORCA_VERSION:-2.3.2}"
|
||||
image: bambuddy-orca-slicer-api:orca${ORCA_VERSION:-2.3.2}
|
||||
image: ghcr.io/maziggy/orca-slicer-api:${SIDECAR_TAG:-latest}
|
||||
container_name: orca-slicer-api
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
@@ -46,12 +45,7 @@ services:
|
||||
retries: 3
|
||||
|
||||
bambu-studio-api:
|
||||
build:
|
||||
context: https://github.com/maziggy/orca-slicer-api.git#bambuddy/profile-resolver
|
||||
dockerfile: Dockerfile.bambu-studio
|
||||
args:
|
||||
BAMBU_VERSION: "${BAMBU_VERSION:-02.07.01.57}"
|
||||
image: bambuddy-bambu-studio-api:bambu${BAMBU_VERSION:-02.07.01.57}
|
||||
image: ghcr.io/maziggy/bambu-studio-api:${SIDECAR_TAG:-latest}
|
||||
container_name: bambu-studio-api
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
|
||||
Reference in New Issue
Block a user