[feat](trx-rs): add build/install script and systemd user services #67

Merged
sjg merged 1 commits from feat/install-systemd into main 2026-08-18 19:03:45 +02:00
Owner

Provide a one-shot installer and matching systemd user units so the
server and client can be built, installed system-wide, and run in the
background without hand-rolled steps.

  • script/install.sh: builds all three binaries (trx-server, trx-client,
    trx-configurator) in release mode and installs them to /usr/local/bin
    (configurable via --prefix/--bindir/PREFIX, sudo only when the target
    is not writable). Seeds ~/.config/trx-rs/trx-rs.toml from the example
    without ever overwriting existing config, then installs the user units
    with @BINDIR@ substituted to the real path and runs daemon-reload.
    Flags: --no-sdr, --no-build, --no-systemd, --enable-now.
  • script/uninstall.sh: stops/disables the units, removes them and the
    binaries; keeps config unless --purge.
  • packaging/systemd/{trx-server,trx-client}.service: user units reading
    the combined config at ~/.config/trx-rs/trx-rs.toml. The client softly
    depends on the server (Wants/After). KillSignal=SIGINT matches how the
    binaries shut down cleanly (SIGTERM is not handled).
  • README: new "Install (optional, Linux + systemd)" section.

The web UI assets are embedded in the binary, so an install needs only
the binaries plus a config file — no data directory to ship.

Signed-off-by: Stan Grams sjg@haxx.space

Provide a one-shot installer and matching systemd *user* units so the server and client can be built, installed system-wide, and run in the background without hand-rolled steps. - script/install.sh: builds all three binaries (trx-server, trx-client, trx-configurator) in release mode and installs them to /usr/local/bin (configurable via --prefix/--bindir/PREFIX, sudo only when the target is not writable). Seeds ~/.config/trx-rs/trx-rs.toml from the example without ever overwriting existing config, then installs the user units with @BINDIR@ substituted to the real path and runs daemon-reload. Flags: --no-sdr, --no-build, --no-systemd, --enable-now. - script/uninstall.sh: stops/disables the units, removes them and the binaries; keeps config unless --purge. - packaging/systemd/{trx-server,trx-client}.service: user units reading the combined config at ~/.config/trx-rs/trx-rs.toml. The client softly depends on the server (Wants/After). KillSignal=SIGINT matches how the binaries shut down cleanly (SIGTERM is not handled). - README: new "Install (optional, Linux + systemd)" section. The web UI assets are embedded in the binary, so an install needs only the binaries plus a config file — no data directory to ship. Signed-off-by: Stan Grams <sjg@haxx.space>
sjg added 1 commit 2026-08-18 19:01:34 +02:00
[feat](trx-rs): add build/install script and systemd user services
CI / lint (pull_request) Canceled after 0s
CI / test (pull_request) Canceled after 0s
CI / frontend (pull_request) Canceled after 0s
CI / reuse (pull_request) Canceled after 0s
CI / lint (push) Canceled after 0s
CI / test (push) Canceled after 0s
CI / frontend (push) Canceled after 0s
CI / reuse (push) Canceled after 0s
05c337b581
Provide a one-shot installer and matching systemd *user* units so the
server and client can be built, installed system-wide, and run in the
background without hand-rolled steps.

- script/install.sh: builds all three binaries (trx-server, trx-client,
  trx-configurator) in release mode and installs them to /usr/local/bin
  (configurable via --prefix/--bindir/PREFIX, sudo only when the target
  is not writable). Seeds ~/.config/trx-rs/trx-rs.toml from the example
  without ever overwriting existing config, then installs the user units
  with @BINDIR@ substituted to the real path and runs daemon-reload.
  Flags: --no-sdr, --no-build, --no-systemd, --enable-now.
- script/uninstall.sh: stops/disables the units, removes them and the
  binaries; keeps config unless --purge.
- packaging/systemd/{trx-server,trx-client}.service: user units reading
  the combined config at ~/.config/trx-rs/trx-rs.toml. The client softly
  depends on the server (Wants/After). KillSignal=SIGINT matches how the
  binaries shut down cleanly (SIGTERM is not handled).
- README: new "Install (optional, Linux + systemd)" section.

The web UI assets are embedded in the binary, so an install needs only
the binaries plus a config file — no data directory to ship.

Signed-off-by: Stan Grams <sjg@haxx.space>
sjg merged commit 05c337b581 into main 2026-08-18 19:03:45 +02:00
sjg deleted branch feat/install-systemd 2026-08-18 19:03:45 +02:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sjg/trx-rs#67