boris e241442302
CI / Verify (build + tests) (push) Successful in 10m14s
CI / Package (Linux) (push) Failing after 5m16s
CI / Package (macOS arm64 source) (push) Failing after 4s
CI / Package (Windows) (push) Has been cancelled
Created ci.yml, added release for windows, mac and linux
2026-02-24 20:25:39 +00:00
2026-02-24 19:58:53 +00:00
2026-02-24 19:58:53 +00:00
2026-02-24 19:58:53 +00:00
2026-02-24 19:58:53 +00:00
2026-02-24 19:58:53 +00:00
2026-02-24 19:58:53 +00:00
2026-02-24 19:58:53 +00:00

5ET-D Desktop App

Current stage:

  • Build 0 complete: Electron boots directly into local 5etools wiki.
  • Stage 1 in progress: React shell navigation + light visual reskin pass, while preserving wiki behavior.

Prerequisites

  • Node.js 20+
  • 5etools-src directory in this repository root:
    • ./5etools-src

Optional override:

  • Set FIVEETOOLS_SRC_DIR to point at a different 5etools-src path.
  • Set FIVEETOOLS_DESKTOP_RESKIN=0 to disable injected wiki styling for strict baseline comparisons.
  • Set FIVEETOOLS_DESKTOP_FORCE_NIGHT=0 to keep 5etools day theme while using desktop reskin.

Install

npm install

Run (dev)

npm run dev

npm run dev uses a portless workflow (vite build --watch) for environments where local TCP binding is restricted.

Optional HMR mode (requires local port binding):

npm run dev:web

Run (build once + launch)

npm run start

Package installers

npm run dist

This command installs electron-builder on demand via npx for packaging, rather than during every local dependency install.

macOS arm64 (source release workflow)

If macOS runners are unavailable in CI, publish the 5ET-D-macos-arm64-source-* artifact and have Apple Silicon users build locally:

./build-macos-arm64.command

Equivalent CLI command:

./scripts/build-macos-arm64.sh

This builds a macOS arm64 package and writes output to release/.

Notes

  • The app starts an internal local HTTP server for wiki content.
  • This avoids file:// loading limitations while keeping content fully local.
  • Electron launch scripts clear ELECTRON_RUN_AS_NODE automatically, so app boot is stable even if that variable is set in your shell environment.
  • SQLite is intentionally deferred until post-Build 0 to avoid native module/toolchain issues while the wiki bootstrap is stabilized.
  • Build identity is set to:
    • Product name: 5ET-D
    • App ID: com.notBoris.5et-desktop

Troubleshooting

  • app.whenReady undefined or Electron behaving like Node:
    • check echo $ELECTRON_RUN_AS_NODE
    • launcher scripts already clear this variable before app start
  • listen EPERM ...5173:
    • use npm run dev (portless mode)
    • only use npm run dev:web when local TCP binding is available
S
Description
A PoC multi-platform electron + react shell for 5etools, with additional useful features.
Readme
163 KiB
0 Stars 1 Watchers 0 Forks
Languages
TypeScript 90.2%
CSS 7.9%
JavaScript 0.9%
Shell 0.6%
HTML 0.4%