github sgoudelis/ground-station v0.8.7

2 hours ago

Timezone settings

Setup detects the timezone from station coordinates and lets you change it for your account. Additional accounts default to the station's geographic timezone.

Upgrading from v0.8.6 or earlier: Existing saved timezone preferences are preserved. If the displayed time is incorrect, open account menu → Preferences → Regional & Language → Timezone, choose your timezone (for example, Europe/Amsterdam), and save. Daylight saving time is automatic. Changing the Docker or server timezone does not change your account preference.

Docker Image

Version: 0.8.7
Environment: production
Git Commit: ca5d462
Build Date: 20260912

📖 View Project Documentation

Commits in this release:

  • ca5d462 fix(app): adjust document title formatting for stationName and version
  • b8fb458 feat(app): dynamically update document title with station name and version
  • 9a6c785 feat(map-load-error): add error handling and retry mechanism for map loading failures
  • 41ca670 feat(setup): add timezone detection and configuration for stations and accounts
  • b21c5a9 test(celestial-scene): block external IO and enhance Sun scene mocking
  • 1ad2008 test(rotator): add StopRejected test for proper stop failure handling
  • 4d29778 fix(rotator-control): prioritize slewing state over tracking in status display
  • da6b857 feat(hardware-control): implement hardware command handling with feedback and stop recovery tests
  • 33eeaaa fix(target-selector-bar): resolve stale rotator owner selection by using instance ownership snapshot
  • 87ba225 refactor(target-sky-planetarium): simplify crosshair visibility logic by removing unnecessary tracking checks
  • ef1a499 feat(tracker-command-feedback): add tests and refine completion feedback handling
  • 96e2984 feat(worker): add operation and command tracking logic with robust state management
  • 97c1f14 feat(rotator-control): add stop rotator functionality with backend and frontend integration
  • 56ebbb9 feat(rotator-control): refine manual control handling and improve status updates
  • ba9ce6c feat(rotator-control): add manual control UI and backend support
  • 7846137 fix(maplibre): support v6 camera and worker loading
  • ef053de chore(dependencies): add flatbuffers, h3, timezonefinder, and timezonefinder-data to requirements
  • 5011fd7 chore(dependencies): update package-lock.json to synchronize peer dependency entries
  • 596f150 refactor(maplibre): switch to named imports and update maplibre-gl to v6.8.0
  • aec0319 feat(setup): add timezone support during setup and improve rotator defaults
  • 667f309 docs(readme): document MiriSDR support, udev setup instructions, and SoapyMiri updates
  • a0ae470 docs(readme): add release notes for v0.8.6
  • 810ead7 bump(version): update to 0.8.6

Pull the Docker image:

For AMD64 systems:

docker pull --platform linux/amd64 ghcr.io/sgoudelis/ground-station:0.8.7

For ARM64 systems (Raspberry Pi, etc):

docker pull --platform linux/arm64 ghcr.io/sgoudelis/ground-station:0.8.7

Or pull architecture-specific tags directly:

# AMD64
docker pull ghcr.io/sgoudelis/ground-station:0.8.7-amd64

# ARM64
docker pull ghcr.io/sgoudelis/ground-station:0.8.7-arm64

Run the container:

Option 1: With SoapySDR Remote Server Discovery (Recommended)

Uses host networking to enable mDNS discovery of SoapySDR remote servers:

# AMD64
docker run -d \
  --platform linux/amd64 \
  --network host \
  --name ground-station \
  --restart unless-stopped \
  --device=/dev/bus/usb \
  --privileged \
  -v /path/to/data:/app/backend/data \
  ghcr.io/sgoudelis/ground-station:0.8.7
# ARM64 (Raspberry Pi, etc)
docker run -d \
  --platform linux/arm64 \
  --network host \
  --name ground-station \
  --restart unless-stopped \
  -v /dev:/dev \
  --privileged \
  -v /path/to/data:/app/backend/data \
  ghcr.io/sgoudelis/ground-station:0.8.7

Option 2: Standard Bridge Mode (No SoapySDR Remote Discovery)

Uses standard bridge networking with port mapping:

# AMD64
docker run -d \
  --platform linux/amd64 \
  -p 7000:7000 \
  --name ground-station \
  --restart unless-stopped \
  --device=/dev/bus/usb \
  --privileged \
  -v /path/to/data:/app/backend/data \
  ghcr.io/sgoudelis/ground-station:0.8.7
# ARM64 (Raspberry Pi, etc)
docker run -d \
  --platform linux/arm64 \
  -p 7000:7000 \
  --name ground-station \
  --restart unless-stopped \
  -v /dev:/dev \
  --privileged \
  -v /path/to/data:/app/backend/data \
  ghcr.io/sgoudelis/ground-station:0.8.7

Note: Replace /path/to/data with your desired data directory path. For ARM64, using -v /dev:/dev ensures all USB devices are accessible.

After starting the container, access the web interface at http://<YOUR_HOST>:7000

First startup note: On first run, it can take up to ~30 seconds after container startup for the frontend to become available.

You can watch startup progress with:

docker logs -f --tail=100 ground-station

Upgrading an existing container:

# Stop and remove the existing container
docker stop ground-station
docker rm ground-station

# Pull the new version
docker pull ghcr.io/sgoudelis/ground-station:0.8.7

# Run the container again (use the appropriate command above for your architecture)

Multi-arch support:

This image supports linux/amd64 and linux/arm64 platforms. Docker will automatically pull the correct architecture for your system.

Full Changelog: v0.8.6...v0.8.7

Don't miss a new ground-station release

NewReleases is sending notifications on new releases.