Skip to content

Clarify install.sh binary path and pre-install config customization in README#32

Merged
LarsLaskowski merged 3 commits into
mainfrom
claude/peaceful-maxwell-nsn49m
Jul 13, 2026
Merged

Clarify install.sh binary path and pre-install config customization in README#32
LarsLaskowski merged 3 commits into
mainfrom
claude/peaceful-maxwell-nsn49m

Conversation

@LarsLaskowski

@LarsLaskowski LarsLaskowski commented Jul 13, 2026

Copy link
Copy Markdown
Owner

Summary

  • Clarify that the argument to packaging/install.sh must be the path to the binary file itself (not a directory, and not the tarball), and correct the misleading path/to/pimonitor-arm64 placeholder — release tarballs ship the binary plainly named pimonitor, with no architecture suffix.
  • Add a "Customizing the configuration before installing" section explaining that install.sh never overwrites an existing /etc/pimonitor/config.yaml, so users who want non-default settings (e.g. a different listen_addr) from the start should stage the config file themselves before running the script.
  • Add a "Verifying the installation" section: systemctl enable --now returns immediately for Type=simple units, so a startup failure (most commonly a listen_addr port already in use) never surfaces as an install error — the service just crash-loops silently (Restart=on-failure, retried every 5s). Document how to spot this (systemctl status showing activating (auto-restart)) and diagnose it (journalctl -u pimonitor -n 50).
  • Add a matching one-line clarification to the usage comment in packaging/install.sh itself.

These came out of a real installation issue: a user pointed install.sh at a directory instead of a file (misled by the path/to/pimonitor-arm64 placeholder), and separately had port 8080 already in use on their Pi with no error reported during installation.

Related Issue

None — user-reported installation confusion, docs-only fix.

Checklist

  • Tests added/updated for the change (go test ./... passes locally)
  • go vet ./... and golangci-lint run are clean
  • Documentation updated if this changes the REST API (docs/API.md),
    configuration (README.md, packaging/pimonitor.example.yaml), or
    installation/packaging (packaging/install.sh, systemd units)
  • No breaking change to /api/v1/... response shapes, or a new API
    version was introduced instead

This is a documentation-only change (plus a comment in install.sh); no Go source was touched, so there is nothing to test/vet/lint.

claude added 3 commits July 13, 2026 17:13
The README's placeholder path/to/pimonitor-arm64 suggested an
architecture-suffixed filename, but release tarballs ship the binary
plainly named "pimonitor". It also wasn't obvious that the argument
must point to the binary file itself rather than a directory
containing it, which led to a "binary not found" error when a
directory was passed instead.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019tj5emEtos6unD4AdufXfJ
install.sh's systemctl enable --now returns immediately for Type=simple
units, so a bind failure (e.g. listen_addr port already in use) never
surfaces as an install error - the service just crash-loops silently.
Document how to stage a customized config.yaml before installing, and
how to verify the service actually stayed up afterwards.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019tj5emEtos6unD4AdufXfJ
Add a copy-pasteable snippet using wget (plus curl to resolve the
latest release tag via the GitHub API) so users don't need to browse
the Releases page and manually pick the right asset filename, which
embeds both the version and architecture
(pimonitor_<version>_linux_<arch>.tar.gz).

Also reorder the installation section into numbered steps (download,
optional config customization, run installer, verify) so the config
customization step is clearly presented before install.sh runs.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019tj5emEtos6unD4AdufXfJ
@LarsLaskowski
LarsLaskowski merged commit 034305d into main Jul 13, 2026
3 checks passed
@LarsLaskowski
LarsLaskowski deleted the claude/peaceful-maxwell-nsn49m branch July 13, 2026 17:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants