3480c75f4c
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>
37 lines
1.0 KiB
Docker
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"]
|