Docker Image
Version: 0.8.13
Environment: production
Git Commit: 371a0c8
Build Date: 20260925
Commits in this release:
- 371a0c8 chore(version): bump to v0.8.13
- b74896c feat(celestial): add deletion support for vector snapshots and enhance history with snapshot counts
- 928a67d feat(celestial): update default past hours to 6 for projection settings
- 9d55b7c feat(observations): ensure tracker removal keeps locks free and improve safe shutdown handling
- ab13978 feat(celestial): enable network fetch fallback for expired cache entries
- 974f848 feat(celestial): introduce target key handling in tracking and celestial payloads
- 972b7be fix(drone): replace deprecated
--timeflag with--timeoutin container stop commands - 95159d4 feat(celestial): add ProjectionSelector component and integrate with topbar
- 4e3d2ef feat(earthview): add azimuth support across translations and UI components
- 133fd3a feat(observations): refine conflict handling and update logic for scheduled observations
- 29d950c feat(celestial): ensure consistent target key replacement and enhance validation in catalog and tracking logic
- ee98515 refactor(celestial): standardize projection bounds and enhance celestial scene state
- c152fd4 refactor(observations): enhance observation status handling, runtime cleanup, and startup/shutdown transitions
- f51fc94 fix(observations): fail when SDR is unhealthy
- da4b4a1 feat(tracker): implement tracker cleanup and enhance removal logic
- 71226f6 feat(celestial): add vector coverage timeline, API history fetch, and caching tests
- e1feaa0 feat(celestial): canonicalize target keys and refactor related logic
- 21d5641 feat(celestial): improve error handling for monitor and refresh actions
- c015235 feat(celestial): add dynamic icons and improved catalog display for object types
- 488f0f9 feat(celestial): integrate i18n support for ephemeris sync errors and general improvements
- 739c318 feat(celestial): prevent duplicate monitor actions and refresh conflicts
- 00da3bf feat(celestial): add centralized ephemeris sync status broadcast and UI updates
- b73f926 feat(celestial): add shared runtime and persistent state management for ephemeris synchronization
- e1aee0a refactor(celestial): improve button responsiveness, add compact action buttons, and enhance UI clarity
- 744a986 fix(e2e): update button role selector in satellites spec for stricter matching
- b9b7b25 feat(celestial): enhance ephemeris sync error handling and status reporting
- 79ed9c7 feat(celestial): mark Earth as non-monitorable and update filtering logic
- 69c8223 refactor(celestial): remove redundant cache refresh message handling logic
- cd9f4ca feat(navigation): group admin satellite and celestial pages, add expandable navigation
- e8bdc1d feat(celestial): add admin pages for monitoring celestial bodies and ephemeris synchronization
- a448b4d feat(celestial): add Horizons circuit breaker and fallback handling
- 398f474 feat(tasks): add timezone support and improve timestamp handling
Pull the Docker image:
For AMD64 systems:
docker pull --platform linux/amd64 ghcr.io/sgoudelis/ground-station:0.8.13For ARM64 systems (Raspberry Pi, etc):
docker pull --platform linux/arm64 ghcr.io/sgoudelis/ground-station:0.8.13Or pull architecture-specific tags directly:
# AMD64
docker pull ghcr.io/sgoudelis/ground-station:0.8.13-amd64
# ARM64
docker pull ghcr.io/sgoudelis/ground-station:0.8.13-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 \
ghcr.io/sgoudelis/ground-station:0.8.13# 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.13Option 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.13# 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.13Note: Replace
/path/to/datawith your desired data directory path. For ARM64, using-v /dev:/devensures 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.13
# 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.12...v0.8.13