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>
This commit is contained in:
SRS IT
2026-03-29 16:27:03 -04:00
parent 58f2724d17
commit 3480c75f4c
6 changed files with 373 additions and 0 deletions
+43
View File
@@ -0,0 +1,43 @@
name: Build & Push Docker Image
on:
workflow_dispatch:
inputs:
tag:
description: 'Docker image tag (e.g. 2.0.0)'
required: true
default: '2.0.0'
jobs:
build-docker:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and push
uses: docker/build-push-action@v6
with:
context: .
file: Dockerfile
push: true
platforms: linux/amd64,linux/arm64
tags: |
ghcr.io/k0rb3nd4ll4s/dibby-wemo-manager:${{ github.event.inputs.tag }}
ghcr.io/k0rb3nd4ll4s/dibby-wemo-manager:latest
cache-from: type=gha
cache-to: type=gha,mode=max