Skip to content

Building from Source

Kai-Tung Yu edited this page Oct 27, 2026 · 2 revisions

You need Node.js 22.12 or newer.

git clone https://github.com/Asmo7791/framedeck.git
cd framedeck
npm install
npm start              # run from source
npm run check          # syntax check + quick server test (also runs on every push)
npm run dist           # build installers for this computer's system into release/

npm run dist:mac, dist:win and dist:linux build for one system. Without an Apple certificate, Mac builds are signed ad-hoc so Apple silicon Macs can open them.

How it's put together

  • src/main.js: Electron main process. The editor window, fullscreen display windows per monitor, reopening displays at login.

  • src/server.js: the local HTTP server (port 47820). Serves app/, stores the config, and provides the data endpoints widgets use. Editing endpoints only accept requests from this computer with the x-framedeck: 1 header.

  • src/sources.js: RSS/iCal parsing, sports scores, Mac now-playing, and safeFetch (other devices can only reach public addresses).

  • src/license.js: supporter keys (Ed25519-signed, checked offline).

  • app/editor.*: the layout editor. app/display.*: the player page used by display windows, tablets, kiosks and NZXT CAM.

  • app/shared/: screen profiles and themes, built-in widgets (widgets.js, widgets-extra.js), the layout renderer, the sandboxed custom-widget runtime, and page presets.

  • addons/: optional add-ons, such as addons/rainmeter/ (the Rainmeter skin reader). Each has its own README.

Contributing

Bug reports, widget ideas and pull requests are welcome. Run npm run check before opening a pull request. See CONTRIBUTING.md for widget conventions; Writing Widgets covers the widget API.

Clone this wiki locally