ื“ืœื’ ืœืชื•ื›ืŸ ื”ืจืืฉื™

Desktop Builds

Building desktop applications for Windows, macOS, and Linux.

Build Toolsโ€‹

ToolPurpose
NXTask orchestration and build
electron-builderPackaging and distribution
Angular CLIFrontend build
TypeScriptCompilation

Build Processโ€‹

1. TypeScript Compilation (core packages)
2. Angular Build (desktop UI)
3. NestJS Build (embedded API, for server apps)
4. Electron Build (packaging)
5. Code Signing (platform-specific)
6. Publishing (GitHub Releases)

Build Commandsโ€‹

Desktop Timerโ€‹

# Development
yarn start:desktop-timer

# Production build
yarn build:desktop-timer

# Package for distribution
yarn package:desktop-timer

Desktop Serverโ€‹

# Development
yarn start:server

# Production build
yarn build:server

# Package for distribution
yarn package:server

Output Formatsโ€‹

PlatformFormatExtension
WindowsNSIS installer.exe
WindowsPortable.exe
macOSDMG.dmg
macOSpkg.pkg
LinuxAppImage.AppImage
LinuxDEB.deb
LinuxRPM.rpm

electron-builder Configurationโ€‹

# electron-builder.yml
appId: com.ever.gauzy.desktop.timer
productName: Gauzy Desktop Timer

directories:
output: dist/packages/desktop-timer

files:
- dist/**/*
- node_modules/**/*
- package.json

win:
target:
- nsis
- portable
icon: assets/icons/icon.ico

mac:
target:
- dmg
- pkg
icon: assets/icons/icon.icns
hardenedRuntime: true
entitlements: build/entitlements.mac.plist

linux:
target:
- AppImage
- deb
icon: assets/icons
category: Office

Code Signingโ€‹

Windowsโ€‹

Requires an Authenticode certificate:

CSC_LINK=path/to/certificate.pfx
CSC_KEY_PASSWORD=certificate-password

macOSโ€‹

Requires Apple Developer ID and notarization:

CSC_LINK=path/to/certificate.p12
CSC_KEY_PASSWORD=certificate-password
APPLE_ID=your-apple-id@example.com
APPLE_ID_APP_PASSWORD=app-specific-password
APPLE_TEAM_ID=your-team-id