github sgoudelis/ground-station v0.4.0

14 hours ago

Docker Image

Version: 0.4.0
Environment: production
Git Commit: ec1063e
Build Date: 20260426

📖 View Project Documentation

Commits in this release:

  • ec1063e "Add additional baud rate options (1250, 2500, 5000, 12500) to decoder parameters across components to support extended use cases."
  • d6132da "Remove deprecated satellite and group selection components, refactor tracking logic to integrate with enhanced multi-tracker views and streamline state handling."
  • bd32b25 "Add rig status handling to target dialog, enhance status chip visuals, and refactor rotator logic for consistency and clarity."
  • 45be1ae "Integrate rig selection and status handling into target retarget dialog, enhance slot selection UI, and refactor logic for consistency and clarity."
  • 7d8c615 "Add selector logic for running transmitters and integrate with VFO components to support multi-tracker metadata and enhance transmitter scoping."
  • e91d66d "Refactor tracker view and bookmark logic to support multi-tracker metadata, improve transmitter handling, and standardize offset calculations across components."
  • 9b19458 "Refactor rig and rotator status handling to use shared helpers and improve consistency in disconnected and LED status logic across components."
  • 6258647 "Adjust font sizes, padding, and dimensions in target satellite selector for improved UI consistency and readability."
  • 5c9e1f2 "Remove redundant check for rotator selection in rig control logic to simplify condition handling and eliminate unnecessary code."
  • 9efd849 "Set default target states to disconnected for new targets in satellite selector, ensuring consistent initialization behavior."
  • d659115 "Add parked state handling to hardware popover status logic, update warning chip and badge colors for consistency and clarity."
  • 5ad49ab "Refactor bookmark clustering logic to support frequency-aware grouping and improve cluster metadata aggregation for better signal organization."
  • bd19a56 "Introduce sameIdentifier and normalizeTrackerId helpers for consistent identifier comparisons, update logic across VFO components to ensure reliable matching and tracker validation."
  • 519a06a "Enhance hardware popover with slewing state handling, refined status label logic, and improved VFO display layout for better readability and clarity."
  • 3cfe5dd "Refactor hardware status logic into shared helpers for consistent state handling across target tabs and popovers, and streamline UI components by removing redundant code."
  • 251c37d "Add warning chip logic to hardware popover for displaying below-horizon, parked, and stopped states, and update popover layout for better clarity and responsiveness."
  • 844838e "Adjust hardware popover badge logic to exclude disconnected state from issue counts and update font sizes for improved clarity and readability."
  • b2cd395 "Refactor file browser loading behavior with persistent shell visibility and enhanced state-specific overlays for improved UX."
  • c5c2c53 "Add optional 'prefix' prop to TargetNumberIcon and update relevant components for consistent target label formatting."
  • 9ef6dc1 "Simplify satellite icon color logic in TargetPopover by introducing fleet visibility check via hasAnyVisibleTarget, ensuring clearer and more concise rules."
  • 05b098d "Adjust badge styling in hardware popover by customizing size, padding, and font for improved visual consistency."
  • 421c6d5 "Remove obsolete tests for tracking-related logic and refactor hardware state handling in UI components to improve code clarity and streamline functionality."
  • 9d5abb2 "Preserve active tracker selection during quick actions by introducing a ref for trackerId, ensuring user context is maintained while avoiding unintended overwrites."
  • 1fdc21e "Refactor rotator selection dialog with improved no-rotator handling, enhanced state checks, and updated UI feedback for better user experience."
  • 578076b "Add fallback logic for Horizons fetches with adaptive projection step reductions to handle no-ephemeris errors gracefully."
  • db1fe6e "Add STEREO-A and STEREO-B spacecraft entries to spacecraft index with corresponding metadata for improved mission tracking."
  • 0c24e9e "Refactor satellite-map altitude and velocity labels with human-readable formatting for improved UI clarity."
  • 516324b "Remove unused decoder types 'LoRa' and 'AFSK' from monitored-satellite-dialog and observation-form-dialog for cleaner configuration options."
  • b9c9489 "Add observation tracker support in TargetSatelliteSelectorBar, update filtering logic, and adjust tracker labels for improved clarity and functionality."
  • 2a4a6b1 "Add tracker slot limit enforcement, observation-slot support, and corresponding tests for improved resource control."
  • 4c8746f "Add disabled prop to SatelliteSearchAutocomplete for conditional interactivity, simplify TargetSatelliteSelectorBar by removing unused tracking logic, and optimize retargeting capabilities with active observation checks."
  • cf6e7cf "Add observation executor and tracker handler tests for tracker lifecycle, enhance session handling logic, and introduce ephemeral tracker slot support."
  • 301df27 "Prioritize 'filled' folder thumbnails in decoded thumbnail selection logic and add corresponding test for improved source preference."
  • 08154e4 "Add decoded folder thumbnail handling with centralized backend utilities and reusable frontend components, refactor file browser logic for improved clarity and maintainability."
  • 6f648ac "Add SDR parameter caching with localStorage, enable forced refresh handling, and refactor state updates for improved efficiency and scalability."
  • 61c1ce0 "Enhance SatelliteEditDialog state handling to support local edit tracking, prevent unnecessary form resync, and improve satellite change detection with useRef."
  • 40bffc8 "Introduce sio support in TrackerHandler to emit tracker instance snapshots and add corresponding tests."
  • f4daeb6 "Add rotatorName computation in TargetSatelliteSelectorBar to improve tooltip clarity and update memoization dependencies appropriately."
  • 8258b41 "Remove upcoming observation tooltip logic from TargetSatelliteSelectorBar to simplify tooltip generation."
  • 248dd31 "Add rig-based state handling and metadata display in FleetTargetRow and HardwarePopover while removing unused navigation logic for improved flexibility and clarity."
  • 45cd5ef "Refactor pass timing and countdown logic to TargetSatelliteInfo for improved encapsulation, readability, and display consistency while removing redundant logic from TargetSatelliteSelectorBar."
  • fc49b16 "Introduce hasTargets state to normalize target dependency checks, improve condition readability, and streamline control components."
  • 5282a41 "Normalize null-like state values in logger messages across handlers for improved consistency and readability."
  • df2ac69 "Remove unused targetNoradUsage logic and simplify linked observation checks in TargetSatelliteSelectorBar."
  • 57e79d7 "Refactor linked observation handling in TargetSatelliteSelectorBar to simplify running observation checks using targetOption."
  • f08b7ac "Simplify target deletion logic in TargetSatelliteSelectorBar by leveraging targetOption properties and reducing redundant checks."
  • 53647d2 "Enhance error details view with copy-to-
  • 16bf559 "Refactor linked observation filtering in TargetSatelliteSelectorBar to account for rotator and NORAD IDs, improving robustness and accuracy."
  • d85fbd6 "Refactor linked observation handling in TargetSatelliteSelectorBar by leveraging targetOptions for simplicity and reducing redundant logic."
  • 07f5533 "Remove unused task and SDR logic in dashboard layout and observation banner while streamlining multi-observation handling for clarity and maintainability."
  • 5585bdc "Refactor conflict resolution and preview logic by enhancing conflict reason handling, unifying variable names, and adding detailed time formatting for improved clarity and flexibility."
  • 7215de9 "Support multiple running observations with dynamic UI updates and refactor countdown logic for efficiency and clarity."
  • 5fc6b7e "Update AGENTS.md to use repository-relative paths for backend DB configuration and improve clarity in setup instructions."
  • 93d919b "Normalize tracker ID handling by removing redundant logic, resolving runtime rotator ownership dynamically, and updating dependent tests and components."
  • 66c3a2f "Add shared tracker-state update helper with rotator ownership arbitration and corresponding tests."
  • 45f1e0f "Remove group_id requirement for creating tracking states and add test for auto-tracking without group_id."
  • 68d3c89 "Improve satellite tracking test stability by handling empty state and live telemetry scenarios."
  • 7a067ac "Handle 'none' rotator ID sentinel in CRUD operations and tracker logic to prevent invalid processing."
  • 26ac55d "Remove unused preview box in TargetSatelliteSelectorBar component for cleanup and simplification."
  • f040b31 "Add 'No targets configured' UI messages, tracker deletion logic, and reset active tracker state functionality across frontend and backend."
  • ce3b9d0 "Upgrade uuid package to version 14.0.0 in frontend dependencies."
  • 359a69f "Add fleet pass summaries feature with backend API integration, tracker-based data fetching, and frontend UI updates in TargetPopover."
  • dbb40ea "Refactor transcription workers to use dedicated asyncio loops for provider I/O, optimize audio preprocessing off main event loop, and improve Socket.IO status emissions."
  • 6bda4c6 "Add support for swapping rotator ownership between trackers, including backend and frontend integration."
  • 939e683 "Log warning for rotator ownership conflicts in tracking state assignments."
  • cb9fae7 "Fix inconsistent fontFamily syntax in TargetPopover component for elevation typography."
  • c9cee3b "Upgrade Mako to version 1.3.11 in backend requirements."
  • 1af4e16 "Update layout schema to version 3 and enhance satellite search UI with retarget hint and responsive Paper component improvements."
  • 0af2a63 "Update layout schema to version 3, refine grid layouts for all breakpoints, and simplify responsive handling in satellite selector UI."
  • c1d878c "Improve table and layout responsiveness by adding minWidth and horizontal scrolling to scheduler components."
  • e1b286f "Add SatelliteEditDialog component and integrate edit functionality into SatelliteInfo; enable satellite details editing with improved dialog flows."
  • 7058fc8 "Introduce layout schema versioning in local storage handling, enforce default layouts for legacy data, and improve layout persistence logic."
  • 8a1492c "Enforce layout schema versioning across components, update layout persistence logic, and enhance default grid layouts."
  • 065e48a "Combine satellite name and alternative name into a single line with fallback logic and trimming redundant caption handling in SatelliteInfo component."
  • 9a4ab20 "Introduce reusable TargetBadge component, replacing Chip-based target labels across fleet and dashboard views for enhanced styling and tracking state support."
  • f579a38 "Refactor rig and rotator control components: enhance usage displays, optimize state management, and improve UI responsiveness with dynamic styling and fallback logic."
  • 621c9a3 "Refactor satellite data handling with improved fallback checks, conditional properties, and dynamic tab/dropdown target switching for enhanced flexibility and UI responsiveness."
  • 2ebdf46 "Refactor rig control layout and fleet target row styles, enhance satellite tracking state management, and optimize target grid layouts."
  • 344f23b "Add in-depth architecture and implementation overview for multi-target and multi-rotator tracking in backend tracker README."
  • ba496f4 "Normalize and refactor tracker ID handling across frontend and backend to improve consistency and fallback logic."
  • ebca6a5 Restrict Drone CI pipeline to run on push events for the main branch only.
  • 7945234 Add visitor tracking badges to README.md
  • 8d717a7 "Update Drone CI pipeline to run push events on the main branch only"
  • 7e4b5ea "Refactor TargetNumberIcon and map tooltip for improved layout consistency and visual alignment."
  • 7a2bddb "Add dynamic satellite tracking indicators and support for target prioritization, improving tracking state management and UI responsiveness."
  • 1404ea3 "Use user time settings (timezone and locale) in CelestialTopbar and MonitoredGridIsland"
  • 63177ef "Add delete confirmation dialog and improve action buttons in CelestialTopbar"
  • 74384d8 "Add individual clear action dialogs and enhance celestial settings management"
  • 5f29b7a Update column labels in MonitoredGridIsland for clarity and consistency
  • 37a7dbb Enable partial celestial track updates to improve efficiency and state synchronization
  • 65fb80f Refresh monitored celestial objects after adding new targets in CelestialTopbar
  • 4597980 Implement viewport animations and dynamic label placement in SolarSystemCanvas
  • 4f1122e Add support for target_type and target_key fields in monitored celestial objects for mission/body distinction
  • 6fcb6cb Display loading progress text in celestial toolbar and integrate with tracks loading state.
  • aef2659 Refactor celestial handlers to streamline observer location loading and emit partial row callback
  • 2b4b4fa Add celestial vectors caching table, CRUD operations, and observer math for local sky projections
  • bdf3a50 Add body type metadata and support for planets/moons count across backend and frontend
  • d393ef2 Adapt step computation for celestial timelines, enforce sample cap, and fix minor UI dependencies
  • 3844b87 Remove disableRowSelectionOnClick from monitored grid island DataGrid configuration
  • 7dace99 Add support for custom colors in monitored celestial objects
  • 7ead1ee Bump version to 0.3.16

Pull the Docker image:

For AMD64 systems:

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

For ARM64 systems (Raspberry Pi, etc):

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

Or pull architecture-specific tags directly:

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

# ARM64
docker pull ghcr.io/sgoudelis/ground-station:0.4.0-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.0
# 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.0

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

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

# 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.3.16...v0.4.0

Don't miss a new ground-station release

NewReleases is sending notifications on new releases.