Skip to content

Packaging (Windows): installer component selection + Windows Service #67

Description

@jozef2svrcek

Windows half of the cross-platform packaging split (Linux shipped in #65). Split out from #66.

Goal

The NSIS installer offers component selection — Client / Server / Both (default Both):

  • Client — the GUI + chess-db.exe on PATH.
  • Server — a Windows Service (LPDOServer) running chess-db serve, data under C:\ProgramData\LPDO (mirrors the Linux /var/lib/lpdo system model).

Approach (planned)

  • LPDO_DATA_DIR env override in chess-db (required — Windows dirs::home_dir() ignores $HOME, so the Linux redirect can't work). Linux-testable, lands first.
  • WinSW service wrapper (chess-db serve isn't SCM-aware; bare sc create → error 1053; the windows-service crate is Windows-only Rust). LocalSystem for v1.
  • Custom Tauri NSIS template + installerHooks (installMode: perMachine): Components page; PREINSTALL stops the service (exe-lock/upgrade), POSTINSTALL adds PATH + creates C:\ProgramData\LPDO + registers/starts the service; PREUNINSTALL stops+removes the service and PATH but keeps the data (mirrors Linux postrm).
  • CI: fetch WinSW on the windows-2022 leg; tauri-action --bundles nsis picks up the template/hooks. Dry-run via workflow_dispatch + throwaway tag.

Validation

CI compiles the NSIS installer; real install/service/ACL/PATH behaviour is verified by a manual Windows test (no Linux dev access to Windows).

Related

#60/#65 (Linux precedent), #58 (CLI proxy so a Client-only install talks to a local/remote server).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions