github sgoudelis/ground-station v0.4.7

6 hours ago

Docker Image

Version: 0.4.7
Environment: production
Git Commit: 05327a2
Build Date: 20260510

📖 View Project Documentation

Commits in this release:

  • 05327a2 Update AppBar theming: add appBar color to semantic palette and simplify MUI overrides for consistent styling.
  • ac597b1 Add dark mode support for AppBar: introduce appBar semantic color, update theming configuration, and refine MUI overrides for adaptive styling.
  • 659610b Refactor TitleBar styles: extract shared style presets to common.jsx, replace inline sx definitions with islandTitleBarSx and islandTitleBarCompactSx across components, and enhance i18n support for Celestial layout titles.
  • 5820079 Integrate adaptive theming: refactor to use semantic palette for colors, expand theme configuration with state and surface definitions, enhance waterfall and dashboard theming with dynamic styles, and update MUI component overrides.
  • fb58662 Add secondary pointer at 90° to rotator gauges for improved visualization.
  • e7b666a Bump Mako dependency to version 1.3.12 in requirements.txt and pyproject.toml.
  • de6f725 Refactor satellite icon loading logic: implement fallback path resolution, enhance error handling, and optimize loading states.
  • 8488da6 Update satellite icons: replace 64px, 128px, and 256px resolutions for NORAD ID 60209.
  • 3532ea7 Remove obsolete satellite icons: delete outdated full2 resolution images and update 64px, 128px, and 256px variants for NORAD IDs 53109 and 62298.
  • 2e995e5 Relocate satellite base resolution icons to full directory, update script and workflows accordingly, and adjust attribution and frontend usage paths.
  • e399aca Extend "Lock on Target" feature: add default settings, enhance initial state handling, and implement UI toggle in Map Settings.
  • 9072c40 Add "Lock on Target" feature: implement state management, UI toggle, and button interactions in Target Map.
  • c196cdc Update satellite icons: replace 64px, 128px, 256px, and base resolutions for NORAD IDs 44339 and 60209.
  • 7e83698 Add new satellite icon for NORAD ID 965: process image source, update attribution, and generate 64px, 128px, 256px, and base resolutions.
  • e4d9766 Update satellite icons: replace 64px, 128px, 256px, and base resolutions for NORAD IDs 46504, 46505, 46506, and 46507.
  • 0e4a082 Integrate canonical orbit handling for satellites: add database support for TLE/OMM models, implement CRUD logic updates, and extend UI for orbital data management.
  • 7660f2d "Update satellite icons: replace 64px, 128px, 256px, and base resolutions for NORAD ID 57172."
  • 0615d17 "Update satellite icons: replace 64px, 128px, 256px, and base resolutions for NORAD ID 25544."
  • 98fa389 "Add process_satellite_icons.py script for batch satellite icon generation, update workflow documentation, and include new NORAD presets."
  • 4e6ca90 "Document and process satellite icon workflow: add detailed satellite icon creation guide, update attribution metadata, and include new icons for OSCAR 7 (7530) and Es'hail 2 (43700) with respective presets."
  • 4ab20f9 "Modularize celestial icons: consolidate body, mission, and satellite icon logic into icon-catalog.js; introduce TargetIcon wrapper for flexible icon handling and update relevant components for streamlined integration."
  • 1dc1432 "Refactor target selector bar: use refs for handleRetargetTarget and trackingState to prevent stale closures in async operations."
  • d4ff013 "Add satellite icon support: include image processing pipeline, caching improvements, fallback logic, and UI integration for enhanced satellite visuals."
  • 61eb49b "Remove current elevation logic and associated UI elements from celestial passes and target components; increase angle precision to two decimal places for azimuth and elevation display."
  • eb86e2a "Fix satellite altitude calculation: convert altitude to meters and adjust mile conversion formula for consistency."
  • 580a67d "Reduce precision for non-satellite distance display in target info island from four to two decimal places for clarity."
  • 4564de8 "Add mile-based calculations and display for satellite altitude and velocity across target info UI components."
  • 50e07d6 "Simplify satellite status UI: remove redundant icon and tooltip, streamline layout for better readability and alignment."
  • fbac0c3 "Add Titan support: include texture attribution, body aliases, and sphere icons; enhance satellite visibility UI with elevation-based status indicators and dynamic metadata"
  • 0c33714 "Add Solar System Layout Options Dialog: modularize component logic, refactor settings management, and integrate into main layout to streamline UI customization."
  • 1d62817 "Refactor quick filter buttons across satellite-related components: add dynamic sizing, tooltips, keyboard shortcuts, and icons for improved UI consistency and usability."
  • cfc7754 "Standardize tooltip anchor distance to 12px across map components for consistent positioning."
  • c26a581 "Add tooltip orientation utility with dynamic direction and offset logic; integrate with satellite markers and tooltips for improved positioning."
  • 9216493 "Add support for highlighting satellite-specific passes in timeline components"
  • 82f950d "Enable pass-assigned color support in timeline components, normalize color handling, and update stroke/fill logic accordingly."
  • f27f09f "Remove deprecated backend tests for celestial refresh handlers leveraging network fetch."
  • 653bb3f "Normalize satellite retargeting: ensure target identity fields are consistently updated, including satellite name, type, and reset of unused fields."
  • 5bc1101 "Remove redundant backend tests for tracker target types normalization and rig handler behavior."
  • f43f6f7 "Implement elevation curve handling improvements: backend provides curves for stabilized payloads; frontend adds fallback for legacy cases, guarded calculations, and dynamic updates."
  • ff0ba93 "Normalize tracker identity retargeting: add satellite name handling, reset command/body fields, and update target state fields to ensure accurate UI rendering for observation passes."
  • 5e5b321 "Redesign target selector: improve UI/UX for satellite, mission, and body selection with enhanced search, filtering, and catalog loading states."
  • 0e7100c "Integrate resolveTargetDisplayName utility across components to improve target name handling and consistency."
  • a2e8dfd "Add utilities for celestial target handling, update celestial info component with tracking support, and add backend tests for target state normalization."
  • ffef00a "Enable network fetch for celestial scene and track handlers on cache miss, suppress curve labels for large timeline windows, and add tests to validate new behavior."
  • 7e9ae4b "Add tests for celestial refresh handlers: ensure proper handling of network fetch and bypassing cache for both single-target and monitored refresh scenarios."
  • 48910bd "Bump version to 0.4.6"

Pull the Docker image:

For AMD64 systems:

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

For ARM64 systems (Raspberry Pi, etc):

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

Or pull architecture-specific tags directly:

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

# ARM64
docker pull ghcr.io/sgoudelis/ground-station:0.4.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 \
  -e GS_ENVIRONMENT=production \
  -e GR_BUFFER_TYPE=vmcirc_mmap_tmpfile \
  ghcr.io/sgoudelis/ground-station:0.4.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 \
  -e GS_ENVIRONMENT=production \
  -e GR_BUFFER_TYPE=vmcirc_mmap_tmpfile \
  ghcr.io/sgoudelis/ground-station:0.4.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 \
  -e GS_ENVIRONMENT=production \
  -e GR_BUFFER_TYPE=vmcirc_mmap_tmpfile \
  ghcr.io/sgoudelis/ground-station:0.4.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 \
  -e GS_ENVIRONMENT=production \
  -e GR_BUFFER_TYPE=vmcirc_mmap_tmpfile \
  ghcr.io/sgoudelis/ground-station:0.4.7

Note: Replace /path/to/data with your desired data directory path. Option 1 (host networking) is required for automatic mDNS discovery of SoapySDR remote servers. Option 2 works for local SDRs and all other features. 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

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.4.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.4.6...v0.4.7

Don't miss a new ground-station release

NewReleases is sending notifications on new releases.