Files
SRS IT 3480c75f4c feat: add macOS build, Docker image, and CI workflows
macOS (.dmg):
- Add mac build config to apps/desktop/package.json (x64 + arm64 DMGs)
- .github/workflows/build-mac.yml — builds on macos-latest, uploads to release

Docker (headless scheduler + web remote):
- docker/server.js — Node.js entry point using homebridge-plugin lib;
  REST API + WebSocket, serves mobile web UI on PORT (default 3456)
- docker/package.json — production deps (adm-zip, axios, sql.js, ws, xml2js, xmlbuilder2)
- Dockerfile — node:20-alpine image; VOLUME /data for persistent config
- .github/workflows/build-docker.yml — builds linux/amd64+arm64,
  pushes to ghcr.io/k0rb3nd4ll4s/dibby-wemo-manager

Usage:
  docker run -d --network host -v /opt/wemo:/data \
    ghcr.io/k0rb3nd4ll4s/dibby-wemo-manager:latest

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-29 16:27:03 -04:00

37 lines
1.0 KiB
Docker

FROM node:20-alpine
LABEL maintainer="SRS IT" \
org.opencontainers.image.title="Dibby Wemo Manager" \
org.opencontainers.image.description="Headless Belkin Wemo scheduler + web remote — no cloud required" \
org.opencontainers.image.source="https://github.com/K0rb3nD4ll4S/dibby-wemo-manager"
WORKDIR /app
# Copy package manifest first for layer caching
COPY docker/package.json ./package.json
# Install production dependencies
RUN npm install --production
# Copy application code
COPY packages/homebridge-plugin/lib ./lib
COPY docker/server.js ./server.js
# Copy mobile web UI and icon
COPY apps/desktop/resources/web ./web
COPY apps/desktop/resources/icon.png ./icon.png
# Persistent data volume (stores dibby-wemo.json config + rules)
VOLUME /data
ENV DATA_DIR=/data \
PORT=3456
EXPOSE 3456
# NOTE: Wemo SSDP discovery requires --network host on Linux Docker hosts.
# On macOS Docker Desktop, host networking is not supported — add devices
# manually via the web UI or the REST API instead.
CMD ["node", "server.js"]