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

133 lines
3.7 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"name": "dibby-wemo-manager",
"productName": "Dibby Wemo Manager",
"version": "2.0.0",
"private": true,
"description": "Belkin Wemo device manager local control, no cloud required",
"author": "SRS IT",
"homepage": "https://github.com/K0rb3nD4ll4S/dibby-wemo-manager",
"main": "out/main/index.js",
"scripts": {
"dev": "electron-vite dev",
"build": "electron-vite build && node scripts/bundle-standalone.js",
"build:win": "electron-vite build && node scripts/bundle-standalone.js && electron-builder --win --x64",
"build:linux": "electron-vite build && node scripts/bundle-standalone.js && electron-builder --linux --x64",
"build:linux:arm64": "electron-vite build && node scripts/bundle-standalone.js && electron-builder --linux --arm64",
"build:all": "electron-vite build && node scripts/bundle-standalone.js && electron-builder --win --x64 && electron-builder --linux --x64",
"preview": "electron-vite preview"
},
"dependencies": {
"adm-zip": "^0.5.14",
"axios": "^1.7.0",
"sql.js": "^1.12.0",
"qrcode": "^1.5.4",
"ws": "^8.18.0",
"xml2js": "^0.6.2",
"xmlbuilder2": "^4.0.3"
},
"optionalDependencies": {
"node-windows": "^1.0.0-beta.8"
},
"devDependencies": {
"@vitejs/plugin-react": "^4.3.0",
"electron": "33.4.11",
"electron-builder": "^25.1.8",
"electron-vite": "^2.3.0",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"vite": "^5.4.10",
"zustand": "^5.0.1"
},
"build": {
"appId": "com.srsit.dibbywemomanager",
"productName": "Dibby Wemo Manager",
"npmRebuild": false,
"directories": {
"output": "dist"
},
"mac": {
"target": [
{ "target": "dmg", "arch": ["x64", "arm64"] }
],
"icon": "resources/icon.png",
"category": "public.app-category.utilities"
},
"dmg": {
"title": "Dibby Wemo Manager"
},
"win": {
"target": [
{
"target": "portable",
"arch": [
"x64"
]
},
{
"target": "nsis",
"arch": [
"x64"
]
}
],
"icon": "resources/icon.ico",
"signtoolOptions": {
"certificateFile": "resources/srsit-codesign.pfx",
"certificatePassword": "SRSITSign2024!",
"signingHashAlgorithms": ["sha256"]
}
},
"nsis": {
"oneClick": false,
"allowToChangeInstallationDirectory": true,
"createDesktopShortcut": true
},
"linux": {
"target": ["AppImage", "deb", "rpm"],
"icon": "resources/icon.png",
"category": "Utility",
"synopsis": "Belkin Wemo device manager — local control, no cloud required",
"description": "Control Belkin Wemo smart switches and plugs. Set schedules, countdowns and away mode. No Belkin account or internet required.",
"maintainer": "SRS IT"
},
"deb": {
"depends": ["libgtk-3-0", "libnotify4", "libnss3", "libxss1", "libxtst6", "xdg-utils", "libatspi2.0-0", "libuuid1"]
},
"asarUnpack": [
"**/node_modules/sql.js/dist/**",
"**/node_modules/node-windows/**",
"out/main/scheduler-standalone.js",
"out/main/wemo.js"
],
"extraResources": [
{
"from": "out/main/scheduler-standalone.js",
"to": "scheduler-standalone.js"
},
{
"from": "../../node_modules/sql.js/dist/sql-wasm.wasm",
"to": "sql-wasm.wasm"
},
{
"from": "resources/web",
"to": "web"
},
{
"from": "resources/icon.png",
"to": "icon.png"
},
{
"from": "resources/help.html",
"to": "help.html"
},
{
"from": "resources/about.html",
"to": "about.html"
}
],
"files": [
"out/**/*"
]
}
}