Docker Image
Version: 0.8.17
Environment: production
Git Commit: ef38df8
Build Date: 20261006
Commits in this release:
- ef38df8 chore(version): bump to v0.8.17
- eee0b7b refactor(solarsystem-canvas): refine label gap and bounding calculations for better alignment
- 30935cf refactor(solarsystem-canvas): adjust label placements and add light theme rendering
- 9981663 test(satellites): add unit tests for SatelliteInfoDialog and target actions
- 8f6fc01 test(satellites): add tests for sync details dialog and satellite links
- 0ec111d refactor(location-form): remove unused ZoomOut handler and icon
- 93bbfa8 test(worker): add Deepgram worker cleanup and disconnect tests
- 32ec940 test(worker): add Deepgram worker cleanup and disconnect tests
- 6ac2808 feat(inventory): include nested SatDump output sizes in decoded folder summaries
- b6fbd7c feat(scheduler): add IQ retention and waterfall generation on SatDump failure
- 02fd0d6 refactor(waterfall): remove Gemini branding from VFO dialogs
- 9e721e9 feat(target-picker): add icon support and responsive view toggle
- cdd648e feat(waterfall): improve touch gesture handling in subtitle component
- a9ff6bb feat(waterfall): add GNSS history clearing and audio status indicators
- 7c5b1f9 refactor(waterfall): remove WebGL renderer and simplify canvas handling
- f79b47d feat(waterfall): add fast zoom interaction with adjustable idle timing
- 91b852d feat(waterfall): add suggested decoder config handling and apply logic
- 3877ff2 feat(waterfall): track secondary canvas state and simplify renderer labels
- 665c950 feat(waterfall): integrate WebGL renderer with fallback and update components
- 314713a feat(library): support deletion of decoded folders and update tests
- 6bd14d3 feat(flow-layout): support manual node positions and update graph rendering logic
- 07c6b60 feat(library): include artifact size in observation summaries and update tests
- 37de88b feat(library): include artifact size in observation summaries and update tests
- d2a0731 style(filebrowser): remove period from viewer instruction text
- b917484 feat(filebrowser): derive observation size from artifacts when folder size is zero
- ac8d682 feat(filebrowser): group artifacts into categorized sections and update tests
- 1449cf0 feat(backend/frontend): enhance observation and recording file handling
- 1ee3ab3 feat(library): include artifact count for observations and add related tests
- 2c8cd77 feat(library): include artifact count for observations and add related tests
- 1793828 feat(library): introduce filesystem-backed inventory and related tests
- 7e423eb refactor(transcription-subtitles): use darkened subtitleColor for consistent VFO styling
- 5ad0d59 refactor(target-map): update satellite coverage color to white for consistent styling
- a2f0503 refactor(transcription-subtitles): adjust styles for consistent color usage
- 812f04b refactor(transcription-subtitles): improve drag handling with pointer events and optimize rendering
- 51c3563 refactor(app-shell): relocate TranscriptionSubtitles to application shell for persistent visibility
- 98def86 fix(waterfall): prevent edge strokes for full-bandwidth recordings
- 55d9bb3 feat(backend): add GNU Radio launcher and decoder error logging
- 312c0a4 feat(monitoring): add backend performance audit plan and opt-in timing tools
- 8164bd7 refactor(vfoaudio): enhance mute indicators and audio toolbar logic
- b5ba8ba chore(dependencies): update
brace-expansion,moment, andundicito latest versions - c1a165b chore(dependencies): bump PyJWT to 2.15.0 and urllib3 to 2.8.0
- bf4f306 refactor(tasks-popover): simplify running tasks list rendering
- b1bc128 refactor(tasks-popover): adjust spacing for completed task list based on running tasks
- 7cb36b7 refactor(rotator): remove satellite tracking lead slider and optimize rotator controls
- 9cada9a refactor(popovers): unify Popover styles with
slotPropsand improve task list UI - 11045df feat(components): add synchronized VFO audio controls with compact UI
- 5e05622 refactor(waterfall): reset rotator event queue on start and optimize idle event handling
- e027f50 refactor(waterfall): initialize rotator status from store to prevent redundant marker redraws
- af0aa42 refactor(components): add
DeferredIslandPlaceholderfor incremental mounting of deferred islands - 7bac9dc refactor(components): defer island and map renderings to optimize responsiveness
- 8bcd1b4 refactor(celestial): batch and optimize state updates for celestial and solar scene data
- 773654f refactor(satellites): replace
requestAnimationFramewithsetInterval, optimize selection updates - b771d22 refactor(waterfall): replace
requestAnimationFramewithsetIntervalfor periodic updates - 332a45e refactor(waterfall): enhance canvas overlays and DOM synchronization for improved rendering
- 51cfed8 feat(waterfall): add rotator marker alignment and event handling in waterfall rendering
- 430d4aa test(satellites): adjust selector for add group dialog heading in e2e tests
- ef38e22 test(satellites): update selectors for add group dialog in e2e tests
- 5fbd744 test(satellites): refine e2e test selectors and button actions for group management
- a8f648a test(groups): add unit and integration tests for group actions and selection logic
- 50683f3 refactor(models): use lambda for datetime defaults to ensure accurate evaluation
- bf7bd08 docs(README): fix redundant phrasing in v0.8.16 release notes
Pull the Docker image:
For AMD64 systems:
docker pull --platform linux/amd64 ghcr.io/sgoudelis/ground-station:0.8.17For ARM64 systems (Raspberry Pi, etc):
docker pull --platform linux/arm64 ghcr.io/sgoudelis/ground-station:0.8.17Or pull architecture-specific tags directly:
# AMD64
docker pull ghcr.io/sgoudelis/ground-station:0.8.17-amd64
# ARM64
docker pull ghcr.io/sgoudelis/ground-station:0.8.17-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.17# 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.17Option 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.17# 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.17Note: 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.17
# 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.16...v0.8.17