Sign inSign up

byluke/openhamclock

By byluke

•Updated 7 months ago

ARM64 and AMD64 docker image for OpenHamClock

Image
0

4.7K

byluke/openhamclock repository overview

⁠OpenHamClock — Hardened Docker Image

A hardened, multi-platform Docker image for OpenHamClock⁠ — a ham radio dashboard featuring DX clusters, band conditions, solar data, WSJT-X integration, and more.

Built on Alpine Linux with a non-root user, minimal attack surface, and automatic daily updates tracking upstream releases.

Platforms: linux/amd64 · linux/arm64


⁠Live demo

clock.ham-radio.nl⁠ — running the linux/arm64 build (latest).


⁠Quick start

docker pull byluke/openhamclock:latest

⁠Docker Compose

services:
  openhamclock:
    image: byluke/openhamclock:latest
    container_name: openhamclock
    restart: unless-stopped
    ports:
      - "3000:3000"         # Web UI
      - "2237:2237/udp"     # WSJT-X UDP relay
      - "12060:12060/tcp"   # N1MM / DXLog integration
    volumes:
      - openhamclock-data:/app/data
    environment:
      - NODE_ENV=production
      - PORT=3000
      - TZ=Europe/Amsterdam
    healthcheck:
      test: ["CMD", "wget", "-qO-", "http://localhost:3000/api/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 15s

volumes:
  openhamclock-data:

Save as docker-compose.yml and run:

docker compose up -d

Then open http://localhost:3000⁠ in your browser.


⁠Ports

PortProtocolPurpose
3000TCPWeb UI
2237UDPWSJT-X relay
12060TCPN1MM / DXLog integration

⁠Image details

  • Base image: node:20-alpine
  • Runs as non-root user hamclock
  • PID 1 managed by tini⁠
  • Alpine packages upgraded at build time for latest security patches
  • Images are rebuilt automatically when upstream releases a new version

⁠Configuration

On first run the application writes a .env file from its built-in defaults. Edit that file and restart the container to apply changes. The full variable reference is in the upstream README⁠.

The most important variables to set:

VariableDefaultDescription
CALLSIGNN0CALLYour amateur radio callsign
LOCATORFN31Maidenhead grid locator (4–6 chars)
TZ(browser)IANA timezone (e.g. Europe/Amsterdam)
UNITSimperialmetric or imperial
TIME_FORMAT1212 or 24 hour clock
THEMEdarkdark, light, legacy, or retro
WSJTX_ENABLEDtrueEnable WSJT-X UDP listener
WSJTX_UDP_PORT2237UDP port for WSJT-X decoded messages
SPOT_RETENTION_MINUTES30DX spot retention window (5–30 min)
DX_CLUSTER_CALLSIGN(CALLSIGN-56)Login callsign for DX Spider cluster
LOG_LEVELwarndebug, info, warn, or error

Pass them via the environment block in your compose file or as -e flags with docker run.


⁠Upstream project

All application code belongs to accius/openhamclock⁠. This repository only provides the hardened Docker packaging.

Tag summary

Content type

Image

Digest

sha256:f209740fd…

Size

53.7 MB

Last updated

7 months ago

docker pull byluke/openhamclock