Docker Image
Version: 0.5.0
Environment: production
Git Commit: 32537da
Build Date: 20260609
Commits in this release:
- 32537da fix: update target number validation logic in selector bar
- 3d052d5 refactor: reorder navigation items to move
earthviewbelowcelestialoptions - 5d961f7 feat: add time-offset callouts for selected paths and improve past/future orbit rendering
- 5136705 feat: add test for satellite group renaming during sync and update group name logic
- 4f83cbc fix: adjust overlay zIndex to use modal layer for proper stacking
- 94e1fff feat: enhance location wizard with backup restore step and optimize GNSS-SDR build
- ca689a0 feat: add station metadata and improve location handling
- 160d67f feat: add customizable map dragging and zooming options
- 6c93640 fix: adjust label positioning to respect canvas edges
- aecc4e3 feat: categorize satellite groups with new icons and subheaders
- a8116c3 refactor: rename
overviewcomponents and Redux logic toearthview - 712689f refactor: adjust tab scroll button behavior in
target-selector-bar - ece0f34 refactor: integrate
AdminSystemPageLayoutinto system pages and update navigation segment for hardware - 0a4fa77 chore: update dependencies in backend and frontend
- 64f1c39 remove: deprecate and delete camera and rotator components
- 1f59608 refactor: modularize location handling and migrate to MapLibre
- 89983cb refactor: simplify location form header logic and adjust dialog layout
- ea56e87 feat: add wizard UI for location setup in frontend
- 1eac93b feat: add callsign support for locations in backend and frontend
- b52118b test: add unit tests for location CRUD and handler logic
- ed1086f feat: switch default map engine to MapLibre and remove beta labels
- 8929bf8 feat: add dynamic orbit path splitting and enhance polyline rendering
- f609570 feat: add tests and enhance cache logic for satellite path tracking
- 236c13e feat: improve orbit rendering and label offset customization
- 87f44c2 fix: improve target number fallback logic and tracker labeling
- ee493aa feat: introduce non-satellite target tracking and elevation-based AOS/LOS logic
- d68b927 feat: adjust Sun label positioning in single-tracked mode and improve label offset logic
- efa4135 fix: filter out non-renderable bodies and improve solar system canvas accuracy
- 5d6f8b6 refactor: simplify celestial vector cache handling and remove redundant command mismatch logic
- 337599e fix: resolve ID collision and improve cache logic for celestial vectors
- a5296b4 feat: add IAUs-recognized dwarf planets and support for "dwarf" body type
- 2e6fd37 increase: extend MAX_ZOOM limit to 60000 for improved solar system canvas scalability
- 2af4ca2 refactor: remove unused ephemeris fallback logic and add targeted tests for observer sampling behavior
- 401dc68 refactor: unify arrow and label bias handling for clearer offscreen target placement
- 9910069 feat: add locale-based distance formatting to solar system view
- 307c72d feat: add fullscreen support to solar system view and toolbar controls
- 62e3bc2 refactor: preserve rig control fields in target normalization and simplify frontend handling
- 62f4afb feat: add tests for rig control normalization and update payload handling
- 95556e0 feat: add async tracker mission vector refresh and debounce logic
- 6a93467 refactor: remove unused ephemeris error handling and fallback projection logic
- 45969ab feat: overhaul celestial vectors schema and frontend solar system visualization
- 40df4a8 add tooltips to map control buttons for improved accessibility and usability
- 3da851d feat: add fullscreen handling and resize support for target map component
- a8a2c19 feat: add altitude to satellite path data and improve cache schema versioning
- d3287bb refactor: fix indentation for satellite markers in target map component
- 4f21099 feat: add MapLibre Globe projection support and integrate in target map components
- 12bf8ed feat: add padding for MapLibre coverage fitting to improve map framing
- 498e26e refactor: remove
overview-map.jsxand consolidate logic into existing MapLibre components - 9cb9b1b feat: improve satellite position validation and enhance altitude/velocity labels
- 878d8c4 feat: refine MapLibre popup theming for tracked and non-tracked targets
- 0e95c0b feat: add dynamic tooltip orientation handling for MapLibre popups
- 5770ad8 feat: add engine-specific zoom persistence and migration for MapLibre and Leaflet
- 0ac3915 feat: allow MapLibre to preserve user-requested zoom levels
- 83e9f42 feat: add satellite error handling and improve propagation robustness
- 9b17d4d fix: enforce
whiteSpace: 'nowrap'for tooltips and popups across components - 35c8701 feat: add support for engine-specific map zoom handling
- 703e7a4 feat: enhance MapLibre overlays with accurate terminator projections and satellite tracking
- b833fc7 refactor: extract attribution bar into reusable
OverviewAttributionBarcomponent for map components - f799214 feat: add custom theming for MapLibre popups in overview map
- abc6dec feat: implement satellite overview map using MapLibre
- 75f08c4 ci: optimize and refactor backend test workflow
- 49ab891 feat: add lazy loading for SoapySDR workers and improve optional dependency handling
- af2caff feat: add canonical target name resolution for tracking entities
- 8346908 fix: prevent placeholder position objects from being emitted in tracker data
- ce311f3 test: add unit tests for dispatcher response normalization and error handling
- f1ff1a1 feat: add control and maintenance handlers for backend commands and unify frontend socket API calls
- 26b8ba5 refactor: remove WebRTC-related components and backend routes
- f2534f1 chore: update zeroconf to 0.149.7 in backend dependencies
- ccb282f chore: bump version to 0.4.13
Pull the Docker image:
For AMD64 systems:
docker pull --platform linux/amd64 ghcr.io/sgoudelis/ground-station:0.5.0For ARM64 systems (Raspberry Pi, etc):
docker pull --platform linux/arm64 ghcr.io/sgoudelis/ground-station:0.5.0Or pull architecture-specific tags directly:
# AMD64
docker pull ghcr.io/sgoudelis/ground-station:0.5.0-amd64
# ARM64
docker pull ghcr.io/sgoudelis/ground-station:0.5.0-arm64Run 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.5.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.5.0Option 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.5.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.5.0Note: Replace
/path/to/datawith 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:/devensures 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.5.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.4.13...v0.5.0