Skip to content

Commit 8cb8a37

Browse files
committed
feat(docker): bundle homecore-server (HOMECORE / ADRs 126-134) in the image
The HOMECORE native Rust port of Home Assistant landed in v0.10.0 (PR #800). The published Docker image now ships its binary alongside sensing-server and cog-ha-matter so a single `docker run` brings up the full RuView + HA-wire-compatible stack. Dockerfile.rust: - cargo build --release -p homecore-server in the build stage - strip the new binary - copy /app/homecore-server in the runtime stage - sanity-check: image build now fails if /app/homecore-server isn't executable (same guard pattern that already covers sensing-server and cog-ha-matter) - EXPOSE 8123 (HA-compat REST + WebSocket port — homecore-api binds 0.0.0.0:8123 by default per its --bind CLI flag) docker-entrypoint.sh: - new dispatch keyword: `homecore` or `homecore-server` Usage: docker run --network host ruvnet/wifi-densepose:latest homecore Defaults --bind to 0.0.0.0:8123 (overridable via HOMECORE_BIND env) The existing two dispatch paths (no arg → sensing-server, `cog-ha-matter` → HA + Matter cog) keep working unchanged. Three-binary image, one entrypoint, operator picks the role at run time. Triggers a workflow rebuild on push to main per the docker workflow's path filter; the multi-arch (amd64 + arm64) image will be published to Docker Hub as `ruvnet/wifi-densepose:latest` after CI green. Refs ADRs 126-134, v0.10.0 release. Co-Authored-By: claude-flow <ruv@ruv.net>
1 parent e96ebae commit 8cb8a37

2 files changed

Lines changed: 17 additions & 1 deletion

File tree

docker/Dockerfile.rust

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,13 @@ COPY vendor/ruvector/ /build/vendor/ruvector/
1919
# (ADR-115) is wired in (auto-discovery topics flow to Home Assistant)
2020
# - cog-ha-matter, the ADR-116 Cognitum cog that wraps HA-DISCO +
2121
# HA-MIND + mDNS + embedded broker for Home Assistant / Matter
22+
# - homecore-server, the ADRs-126-134 HOMECORE native Rust port of
23+
# Home Assistant (HA-wire-compat REST + WebSocket on :8123,
24+
# SQLite + ruvector recorder, automation, assist, plugins, HAP)
2225
RUN cargo build --release -p wifi-densepose-sensing-server --features mqtt 2>&1 \
2326
&& cargo build --release -p cog-ha-matter 2>&1 \
24-
&& strip target/release/sensing-server target/release/cog-ha-matter
27+
&& cargo build --release -p homecore-server 2>&1 \
28+
&& strip target/release/sensing-server target/release/cog-ha-matter target/release/homecore-server
2529

2630
# Stage 2: Runtime
2731
FROM debian:bookworm-slim
@@ -35,6 +39,7 @@ WORKDIR /app
3539
# Copy binaries
3640
COPY --from=builder /build/target/release/sensing-server /app/sensing-server
3741
COPY --from=builder /build/target/release/cog-ha-matter /app/cog-ha-matter
42+
COPY --from=builder /build/target/release/homecore-server /app/homecore-server
3843

3944
# Copy UI assets
4045
COPY ui/ /app/ui/
@@ -52,6 +57,7 @@ RUN set -e; \
5257
done; \
5358
test -x /app/sensing-server || { echo "FATAL: /app/sensing-server is not executable"; exit 1; }; \
5459
test -x /app/cog-ha-matter || { echo "FATAL: /app/cog-ha-matter is not executable"; exit 1; }; \
60+
test -x /app/homecore-server || { echo "FATAL: /app/homecore-server is not executable"; exit 1; }; \
5561
echo "image assets OK"
5662

5763
# Optional bearer-token auth on /api/v1/*: leave unset for LAN-mode (default),
@@ -67,6 +73,8 @@ EXPOSE 3001
6773
EXPOSE 5005/udp
6874
# MQTT broker (cog-ha-matter embedded broker — Home Assistant + Matter)
6975
EXPOSE 1883
76+
# HOMECORE HA-compatible REST + WebSocket (homecore-server)
77+
EXPOSE 8123
7078

7179
ENV RUST_LOG=info
7280

docker/docker-entrypoint.sh

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,14 @@ case "${1:-}" in
2828
--sensing-url "${SENSING_URL:-http://127.0.0.1:3000}" \
2929
"$@"
3030
;;
31+
homecore|homecore-server)
32+
# Route to the HOMECORE native Rust port of Home Assistant
33+
# (ADRs 126-134, v0.10.0). Default bind matches HA at :8123.
34+
shift
35+
exec /app/homecore-server \
36+
--bind "${HOMECORE_BIND:-0.0.0.0:8123}" \
37+
"$@"
38+
;;
3139
esac
3240

3341
# If the first argument looks like a flag (starts with -), prepend the

0 commit comments

Comments
 (0)