Skip to content

docs(docker): improve container documentation#1014

Open
lbatalha wants to merge 11 commits into
accius:Stagingfrom
lbatalha:add-docker-image-docs
Open

docs(docker): improve container documentation#1014
lbatalha wants to merge 11 commits into
accius:Stagingfrom
lbatalha:add-docker-image-docs

Conversation

@lbatalha
Copy link
Copy Markdown

What does this PR do?

  • Add documentation to clarify that there are container images available in the github container registry, as it is not currently obvious
  • Improve docker compose to use that image
  • Document ITURHFPROP microservice as part of a compose file

I think it would be nice if the ITURHFPROP service also had a github action to build a container image similar to OHC, to simplify new deployments.

Type of change

  • Bug fix
  • New feature
  • Performance improvement
  • Refactor / code cleanup
  • Documentation
  • Translation
  • Map layer plugin

How to test

To test the compose file change simply docker compose pull and verify that the image is pulled from ghcr.io

accius and others added 9 commits May 6, 2026 23:38
Release v26.3.1 — Staging → main
Hotfix: guard PropagationPanel against empty/invalid timeZone (RangeError on first load)
…g_line787

[Hotfix main] bug fix spelling of console.debug
Release v26.3.2 — pre-Hamvention drop (MeshCom + VOACAP hotfix)
whatsnew(26.3.2): correct MeshCom contributor attribution
Cuts Staging into main for the v26.3.3 release.
…ction

The socket idle timeout (60s) was the shortest of all failure timers, so
any 60s gap between spots — normal on quiet bands overnight — tore down a
healthy connection. Keepalive (120s) was too slow to prevent it and the
180s activity watchdog (the graceful node-failover) never got to run.

- socket timeout 60s -> 300s, as a last-resort TCP backstop; the 180s
  activity watchdog now owns failover as designed
- keepalive 120s -> 60s so the connection stays warm
- destroy the socket in the 'timeout' handler — Node does not auto-close
  on timeout, leaving a zombie socket that kept feeding data and
  spuriously reset the failover counter after [RECONNECT]
- mark authenticated on first spot; the DXSpider prompt has no trailing
  newline so prompt-based detection never matched, and sh/dx output lines
  ("...de Helmut<DF4IY>") false-matched the prompt regex

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…uth detection"

This reverts commit e95faf6. The proxy fix was cherry-picked to main
prematurely. It will be validated on Staging first and reach main on the
normal release schedule. The fix remains intact on Staging (e7826d9).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown
Owner

@accius accius left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for picking this up — the GHCR images aren't discoverable today and the iturhfprop microservice compose example is a nice add. The docker-composedocker compose (V2) update is overdue. Verified the GHCR image is real: docker-image.yml publishes to ghcr.io/accius/openhamclock on every tagged release.

One blocker, one substantive note, a couple of small things.

Blocker — wrong base branch. This PR targets main, but all in-flight work for this repo merges to Staging first (main only takes a release at a time). External docs PRs are no exception. Could you retarget the PR to Staging? (Easiest from the GitHub UI under "Edit" on the PR title; no need to recreate.)

docker-compose.yml has both build: . and image: .... With both present, docker compose up still builds by default and tags the build as the image name — it doesn't pull the prebuilt image automatically. So the README change implies "use the prebuilt image" but the compose file's default behavior is unchanged. Two cleaner options:

  • For the "pull the prebuilt image" UX: remove build: . from the default compose file and document docker compose build for users who want to build from source.
  • Or split into two files — docker-compose.yml (pulls image:) and docker-compose.build.yml (overrides with build:).

As written, anyone following the new docs will still do a local build on first up, which defeats the point of pointing them at GHCR.

Smaller notes:

  • README reorders Quick Start to put "Container Deployment" before "Local Install". Fine editorially, just confirming it's deliberate.
  • iturhfprop compose snippet — the iturhfprop: service has no image: tag, no restart: policy, no healthcheck, and no port mapping. Users following the snippet will get a working container but it's less robust than the main service block. Minor — could mirror the main service's structure for consistency, or leave it minimal since it's an internal-only service on the compose network.
  • The dropped sentence "(in the iturhfprop-service/ directory)" → "(documentation and deployment examples in iturhfprop-service/README.md)" is a slight regression in discoverability — the directory pointer is useful for people who don't think to open the subdir README. Could mention both.

CI itself: the checks list is empty here, which usually means GitHub didn't trigger them for an main-targeted PR with this profile — that'll sort itself once the base is changed to Staging.

— K0CJH

@accius accius changed the base branch from main to Staging May 24, 2026 23:42
@accius
Copy link
Copy Markdown
Owner

accius commented May 24, 2026

I have repointed the PR to Staging from my side.

@accius
Copy link
Copy Markdown
Owner

accius commented May 24, 2026

After pointing to staging it looks like you will need to run a prettier on the code and update the PR.

@lbatalha
Copy link
Copy Markdown
Author

lbatalha commented May 25, 2026

The lint issue was related to me leaving the correct indentation for the compose file in the code snippet, this is important so new people copy pasting dont accidentally break the yaml, so I added a quick skeleton of a compose file to provide more context, what do you think?

As for the compose build issue, not sure how claude got that review wrong as its well documented behavior 😅.

As for the small comments:

  • README change is deliberate, but depends on the project preferences
  • I've added the restart policy, the rest do not make sense for this service
  • I think linking to the doc right away achieves the same as before, but is a bit more specific

Sorry about targeting this to main, completely forgot its supposed to go to staging 🤦‍♀️

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