|
@@ -38,6 +38,11 @@ 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
|
|
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.
|
|
**Sidecar URL** field — the sidecar doesn't need to live next to Bambuddy.
|
|
|
|
|
|
|
|
|
|
+If a separate x86_64 box isn't an option, the amd64 images can be run on
|
|
|
|
|
+an ARM64 host under emulation — experimental, roughly 3-6x slower than
|
|
|
|
|
+native, and a stopgap until native ARM64 images ship. See
|
|
|
|
|
+[Experimental setup for ARM64](#experimental-setup-for-arm64) below.
|
|
|
|
|
+
|
|
|
## Ports
|
|
## Ports
|
|
|
|
|
|
|
|
| Service | Default host port | Why this port |
|
|
| Service | Default host port | Why this port |
|
|
@@ -114,6 +119,48 @@ 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
|
|
release, set `SIDECAR_TAG=bambuddy-X.Y.Z` in `.env` and re-run the two
|
|
|
commands above.
|
|
commands above.
|
|
|
|
|
|
|
|
|
|
+## Experimental setup for ARM64
|
|
|
|
|
+
|
|
|
|
|
+Runs the `linux/amd64` images on an ARM64 host under QEMU emulation, via
|
|
|
|
|
+the `docker-compose.arm64.yml` override in this folder. Expect roughly
|
|
|
|
|
+3-6x slower slicing than native, worsening with model complexity. This is
|
|
|
|
|
+a stopgap until native ARM64 images ship, not a replacement for running
|
|
|
|
|
+the sidecar on an x86_64 box — if you have one, use it.
|
|
|
|
|
+
|
|
|
|
|
+**Set up QEMU binfmt on the host first**, or the containers fail with
|
|
|
|
|
+`exec format error`. On Debian/Ubuntu that is `qemu-user-static` plus
|
|
|
|
|
+`binfmt-support`; Docker Desktop on Apple Silicon already has it. The
|
|
|
|
|
+per-distribution commands are in the
|
|
|
|
|
+[wiki](https://wiki.bambuddy.cool/features/slicer-api/) — do that before
|
|
|
|
|
+the steps below.
|
|
|
|
|
+
|
|
|
|
|
+### Quick start for ARM64
|
|
|
|
|
+
|
|
|
|
|
+```bash
|
|
|
|
|
+cd slicer-api/
|
|
|
|
|
+cp .env.example .env # edit ports if you like
|
|
|
|
|
+
|
|
|
|
|
+# Make every later `docker compose` command pick up the ARM64 override:
|
|
|
|
|
+echo 'COMPOSE_FILE=docker-compose.yml:docker-compose.arm64.yml' >> .env
|
|
|
|
|
+
|
|
|
|
|
+# OrcaSlicer only (default profile):
|
|
|
|
|
+docker compose up -d
|
|
|
|
|
+curl http://localhost:3003/health
|
|
|
|
|
+
|
|
|
|
|
+# Both slicers:
|
|
|
|
|
+docker compose --profile bambu up -d
|
|
|
|
|
+curl http://localhost:3001/health # bambu-studio-api
|
|
|
|
|
+curl http://localhost:3003/health # orca-slicer-api
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+That `COMPOSE_FILE` line is what makes the rest of this README work
|
|
|
|
|
+unchanged on ARM64 — **Updating** included. Without it every command has
|
|
|
|
|
+to name both files (`docker compose -f docker-compose.yml -f
|
|
|
|
|
+docker-compose.arm64.yml …`), and the first bare `docker compose pull` or
|
|
|
|
|
+`up -d` drops the override: on a host with no amd64 emulation registered
|
|
|
|
|
+for that image you get a manifest error, and once native ARM64 images
|
|
|
|
|
+exist you would silently switch between them and back.
|
|
|
|
|
+
|
|
|
## Troubleshooting
|
|
## Troubleshooting
|
|
|
|
|
|
|
|
- **`address already in use` on port 3000 or 3002** — Bambuddy's
|
|
- **`address already in use` on port 3000 or 3002** — Bambuddy's
|