github sgoudelis/ground-station v0.8.24

3 hours ago

Docker Image

Version: 0.8.24
Environment: production
Git Commit: 1ec3c41
Build Date: 20261030

📖 View Project Documentation

Commits in this release:

  • 1ec3c41 chore(version): bump to v0.8.24
  • 66efe29 feat(scheduler): add observation conflict detection and validation across components - Implemented findObservationConflict and getObservationForPass utilities to identify hardware conflicts and manage task times. - Updated observation-form-dialog, satellite-selector, and pass-selector to validate conflicting observations using the shared logic. - Enhanced transmitter configuration with DecoderNumberField for numeric parameter support, validation, and optional values. - Added frontend tests to cover conflict resolution, form validation, and transmitter modal behaviors. - Refined test logic to support SDR hardware changes and ensure robust validation.
  • 00033d7 feat(scheduler): ensure saved satellites and transmitters load correctly by NORAD ID, even with autocomplete limits
  • 0fd592f chore(telemetry): remove extraneous newline in USP parser
  • b260d08 feat(telemetry): enable parsing of unsupported captures with current parser without altering saved metadata
  • c60126f feat(telemetry): add RS18S support to USP parser and test coverage
  • a389a25 feat(frontend): add number field support for decoder parameters with validation - Introduced DecoderNumberField component for handling numeric decoder parameters with validation. - Updated decoder dialogs and forms to support range-constrained number inputs. - Implemented validation logic to block invalid parameter drafts and ensure correct saving. - Added comprehensive tests for decoder parameter behaviors and edge cases.
  • 826d5ff fix(artifact dates): standardize capture/completion time handling across backend and frontend - Refactored backend to prefer captured_at over created in LibraryInventory and file queries. - Added fallback handling for missing capture time using file modification dates. - Updated backend transcription worker to include UTC timestamps in start and end times. - Migrated frontend file browser to default sorting by captured_at. - Improved robustness of date parsing and reporting across metadata sources in tests, localization, and UI.
  • b79163b refactor(backend): simplify telemetry parsing and satellite identification logic
  • 5f3a1b6 feat(frontend): introduce ResponsiveActionButton for adaptive toolbar actions across dialogs and components
  • 996b747 feat(telemetry): add packet decoding, telemetry parsing, and housekeeping views
  • 57ef9de test(frontend/backend): add end-to-end and edge-case coverage for satellite search workflows

Pull the Docker image:

For AMD64 systems:

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

For ARM64 systems (Raspberry Pi, etc):

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

Or pull architecture-specific tags directly:

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

# ARM64
docker pull ghcr.io/sgoudelis/ground-station:0.8.24-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 \
  -e GS_HTTP_PORT=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.24
# ARM64 (Raspberry Pi, etc)
docker run -d \
  --platform linux/arm64 \
  --network host \
  -e GS_HTTP_PORT=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.24

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.24
# 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.24

Port selection: In host-network mode, change GS_HTTP_PORT=7000 to your desired HTTP port, such as GS_HTTP_PORT=8080. Docker ignores -p in this mode. In bridge mode, change the host side of -p 7000:7000, such as -p 8080:7000; keep the container side at 7000. The backend remains on 127.0.0.1:7001 inside the container.

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>:<HTTP_PORT> (7000 by default).

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.24

# Run the container again (use the appropriate command above for your architecture and retain your HTTP port choice)

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.23...v0.8.24

Don't miss a new ground-station release

NewReleases is sending notifications on new releases.