Files
dashcaddy/dashcaddy-installer/package.json
T
Hermes af970aa564
CI / Test & Lint (push) Canceled after 0s
CI / Security audit (push) Canceled after 0s
[grade=B] feat: real macOS .dmg built entirely on Linux (libguestfs + libdmg-hfsplus)
Adds scripts/build-dmg-linux.sh + 'npm run build:dmg':
- virt-make-fs creates an HFS+ volume inside a plain 400M image file
  (guestfs appliance; never touches block devices)
- libdmg-hfsplus converts it to compressed UDZO .dmg (real koly/UDIF)
- app + /Applications drag-install symlink; secret scan on extracted contents
- BUILD_GUIDE documents the route + Gatekeeper first-run note

Verified end-to-end: rc=0, 121MB DMG with valid koly trailer,
extractall round-trip reproduced the full 264MB app, secrets scan clean.
2026-09-01 03:36:16 -07:00

146 lines
3.4 KiB
JSON

{
"name": "dashcaddy-installer",
"version": "1.0.0",
"description": "Cross-platform installer for DashCaddy platform",
"main": "src/main/index.js",
"scripts": {
"start": "electron .",
"dev": "electron . --dev",
"test": "jest",
"test:watch": "jest --watch",
"build": "electron-builder",
"build:win": "electron-builder --win",
"build:mac": "electron-builder --mac",
"build:linux": "electron-builder --linux",
"build:scan": "bash scripts/check-artifact-secrets.sh build-output",
"build:dmg": "npm run build:mac && bash scripts/build-dmg-linux.sh"
},
"keywords": [
"dashcaddy",
"installer",
"docker",
"caddy"
],
"author": {
"name": "DashCaddy Team",
"email": "dashcaddy@sami.cloud"
},
"homepage": "https://github.com/dashcaddy/dashcaddy",
"license": "MIT",
"devDependencies": {
"electron": "^28.3.3",
"electron-builder": "^24.9.1",
"fast-check": "^3.15.0",
"jest": "^29.7.0"
},
"build": {
"appId": "com.dashcaddy.installer",
"productName": "DashCaddy Installer",
"asar": true,
"directories": {
"output": "build-output"
},
"files": [
"src/**/*",
"assets/**/*",
"templates/**/*"
],
"extraResources": [
{
"from": "../status",
"to": "status",
"filter": [
"**/*",
"!node_modules/**",
"!.git/**",
"!**/*.test.js",
"!**/*.spec.js"
]
},
{
"from": "../dashcaddy-api",
"to": "dashcaddy-api",
"filter": [
"**/*",
"!node_modules/**",
"!.git/**",
"!**/*.test.js",
"!**/*.spec.js",
"!**/*.key",
"!**/*.pem",
"!**/*.p12",
"!**/*.pfx",
"!**/*.jks",
"!**/*.keystore",
"!**/*.ppk",
"!**/*.asc",
"!**/id_rsa*",
"!**/id_ed25519*",
"!**/secrets/**",
"!**/.ssh/**",
"!**/.aws/**",
"!**/.gnupg/**",
"!**/*.local",
"!**/.npmrc",
"!**/.netrc",
"!pki/**",
"!ca/**/*.key",
"!ca/**/*.der",
"!ca/**/*.mobileconfig",
"!ca/**/*.p12",
"!ca/**/*.pem",
"!ca/intermediate.crt",
"!ca/root.crt",
"!ca/scripts/**",
"!generated-certs/**",
"!data/**",
"!coverage/**",
"!audit-log.json",
"!error.log",
"!.env",
"!.env.*",
"!openapi.yaml.bak",
"!dist/**"
]
}
],
"icon": "assets/favicon.ico",
"win": {
"target": [
"nsis",
"portable"
],
"icon": "assets/favicon.ico",
"signAndEditExecutable": false
},
"mac": {
"target": [
"zip"
],
"icon": "assets/dashcaddy-logo.png"
},
"linux": {
"target": [
"AppImage",
"deb"
],
"icon": "assets/dashcaddy-logo.png",
"category": "Utility"
},
"nsis": {
"oneClick": false,
"allowToChangeInstallationDirectory": true,
"installerIcon": "assets/icon.ico",
"uninstallerIcon": "assets/icon.ico",
"installerHeaderIcon": "assets/icon.ico"
},
"publish": {
"provider": "generic",
"url": "https://get.dashcaddy.net/release/"
}
},
"dependencies": {
"electron-updater": "^6.8.9"
}
}