laserDESK 2026

Usage

You use the app in the browser. A small program (laserdesk_backend) must run on your computer so the page can talk to it — you do not need to host the website yourself. On Windows, use the pre-built .exe from Releases; on a MacBook, use laserdesk_backend-macos.tar.gz or build from source (section below).

Quick start (Windows)

  1. Download laserdesk_backend.exe (Windows, from GitHub Releases).
  2. Start the backend — PowerShell, folder with the exe. Set LASERDESK_CORS_ORIGIN to the same origin as the site in your address bar (scheme + host, no path). For the public demo that is usually:
    $env:LASERDESK_CORS_ORIGIN = "https://holgerschl.github.io"
    .\laserdesk_backend.exe --port 8080
    Leave the window open while you use the app.
  3. Use the workflow — open Workflow, then Connect (mock) → register job → Start. (Default API address is already http://127.0.0.1:8080/api/v1 for the hosted app.)

The website and the backend are on different addresses; CORS tells the browser that combination is allowed. Only use an origin you trust.

MacBook (macOS)

The UI is the same (Workflow on the hosted site or local dev). Full build details: backend/README.md.

  1. Download laserdesk_backend-macos.tar.gz (Apple Silicon arm64 build from GitHub Actions; Intel Mac: build from source below). Extract it next to where you want to run from, e.g.:
    tar xzf laserdesk_backend-macos.tar.gz
    This creates laserdesk_backend-macos (executable bit preserved).
  2. If macOS blocks it (Gatekeeper) — you may see a message that Apple could not check the file for malware (e.g. German: „Apple konnte nicht überprüfen…“). The release binary is not Apple-notarized. You can still run it:
    • Terminal (reliable): in the folder with the binary, clear the download quarantine, then run it:
      cd /path/to/folder/with/the/binary
      xattr -d com.apple.quarantine ./laserdesk_backend-macos
      ./laserdesk_backend-macos --port 8080
      If -d fails, try xattr -cr . in that folder. Use chmod +x ./laserdesk_backend-macos if the file is not executable.
    • Finder: Control-click the binary → Open → confirm Open once (not double-click the first time).
    • System Settings → Privacy and Security: after a blocked launch, Open Anyway may appear for this app.
  3. Run the backend — if you use the hosted app in the browser, set CORS to your page origin (same as Windows). Example for the public demo:
    cd /path/to/folder/with/the/binary
    export LASERDESK_CORS_ORIGIN="https://holgerschl.github.io"
    ./laserdesk_backend-macos --port 8080
    Leave the terminal open while you use the site. For local UI only, you can omit LASERDESK_CORS_ORIGIN and use the optional dev step below.
  4. Build from source instead — clone the repo, install Xcode Command Line Tools and CMake, then:
    xcode-select --install
    cmake -S backend -B backend/build -DCMAKE_BUILD_TYPE=Release
    cmake --build backend/build --parallel
    Binary: backend/build/laserdesk_backend. Or use chmod +x scripts/run-backend-macos.sh and
    export LASERDESK_CORS_ORIGIN="https://holgerschl.github.io"
    ./scripts/run-backend-macos.sh
  5. Optional — run the web UI on the Mac: in another terminal,
    cd frontend
    npm install
    npm run dev
    Open the printed URL; the dev server proxies /api to http://127.0.0.1:8080. Override with LASERDESK_BACKEND_URL if the backend uses another port.
  6. Use the workflow — same as Windows: open Workflow (hosted) with API base http://127.0.0.1:8080/api/v1, or use the local dev URL after npm run dev.

Safari and Chrome may ask for permission to reach the local network when the page is HTTPS (e.g. GitHub Pages) and the API is on localhost. Allow it, or use local npm run dev to avoid cross-origin calls.

Only if you need it

Change the line below if your backend is not on port 8080 or not at 127.0.0.1. Saved in this browser only.

Backend API base URL

Must end with /api/v1 (no trailing slash after v1). On GitHub Pages the default already points at your PC; change this only if you use another port or host.

How to see RTC activity (telegrams) in the log

The RTC window shows an activity log at the bottom. That log is not a live dump of UDP packets from the RTC6 board. It only shows short text lines that the Workflow or DXF demo page sends through the browser’s BroadcastChannel (laserdesk-rtc-v1) when you connect, load a job, start, or stop.

  1. Open RTC in one tab and keep it open.
  2. In a second tab on the same site (same address and path prefix, e.g. ./workflow or ./dxf), run Connect, load, Start, etc.
  3. Lines should appear in the RTC tab’s log with timestamps. Many entries mention the logical Remote Interface command the backend would use in ethernet mode (for example R_DC_EXECUTE_LIST_POS on start). That is a human-readable hint, not the raw telegram bytes.

Mock RTC (Connect (mock)) does not send Ethernet telegrams at all; the backend only simulates state. Ethernet mode sends real telegrams to the board; the UI still does not display hex payloads unless we add a separate debug feature later.

Download 404, developers, RTC window

404 on a download link: no release is published yet. Check Releases or trigger Release backend in Actions (Windows .exe + macOS .tar.gz). Building from source: backend/README.md in the repo.

Local development: run the backend on 8080, then from frontend/ run npm install and npm run dev — the dev server proxies /api (see repo README).

RTC window (open): health/status polling and the cross-tab activity log. See the section How to see RTC activity (telegrams) in the log above.