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)
- Download laserdesk_backend.exe (Windows, from GitHub Releases).
- Start the backend — PowerShell, folder with the exe. Set
LASERDESK_CORS_ORIGINto 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. - Use the workflow — open Workflow, then Connect (mock) → register job → Start. (Default API address is already
http://127.0.0.1:8080/api/v1for 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.
- 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 createslaserdesk_backend-macos(executable bit preserved). - 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-dfails, tryxattr -cr .in that folder. Usechmod +x ./laserdesk_backend-macosif 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.
- Terminal (reliable): in the folder with the binary, clear the download quarantine, then run
it:
- 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 omitLASERDESK_CORS_ORIGINand use the optional dev step below. - 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 usechmod +x scripts/run-backend-macos.shandexport LASERDESK_CORS_ORIGIN="https://holgerschl.github.io" ./scripts/run-backend-macos.sh
- 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/apitohttp://127.0.0.1:8080. Override withLASERDESK_BACKEND_URLif the backend uses another port. - 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 afternpm 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.
- Open RTC in one tab and keep it open.
- In a second tab on the same site (same address and path prefix, e.g.
./workflowor./dxf), run Connect, load, Start, etc. - 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_POSon 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.