Docker Image
Version: 0.8.3
Environment: production
Git Commit: 73f5529
Build Date: 20260829
Commits in this release:
- 73f5529 fix(docker): switch frontend builder to Debian-based Node 22 to resolve npm ci issue
- 19361e8 bump(version): update to 0.8.2
- bfd43ff bump(version): update to 0.8.1 and improve frontend Docker build process
- 7b87dce bump(version): update to 0.8.0
- 02d39c1 feat(target): enhance citation handling with improved presentation and dialog
- 9754ae1 feat(target): add responsive metric panels for better adaptability
- 57c5970 fix(target): refresh focus signal on Solar System view transition
- ce65371 feat(target): integrate TargetViewPicker component and enhance view customization options
- 4369782 fix(celestial): allow display of negative elevations for live targets
- 1a9f016 test(celestial): add unit tests for celestial slice and planetarium canvas
- 26d9e19 fix(dashboard): handle unavailable satellite status for offline target slots
- 34fde3f fix(recording): shorten start button label from "RECORD" to "REC"
- e35c02c feat(dashboard): display app version and environment in expanded menu
- 60e378a test(recording): add unit tests for recording-band drag behavior
- 1a48196 fix(recording): simplify recording-band selection toggle enablement logic
- d7f2038 feat(recording): add recording-band selection with draggable frequency offset
- be9733a feat(passes): improve tag container layout and scrolling behavior
- 2265ee8 feat(passes): improve pass status alignment and tag styling
- e97a2e5 feat(passes): add transmitter link summaries, tooltips, and sorting support
- 4f5a963 test: add unit tests for slice reducers, services, utilities, and controllers
- 34b1b89 test(e2e): improve hardware rig page test stability by waiting for Socket.IO readiness
- 161bb39 fix(playback): restrict inventory refresh to relevant recording actions
- d4c3d80 fix(scheduler): remove redundant
disabledprop from monitored-satellite dialog form control - 7852603 fix(recording): ensure recording overlay stays mounted with aria updates
- e3dd63e feat(recording): add customizable IQ storage formats and decimation support
- 82f0ef9 chore(store): persist user table density preference with whitelist update
- 0344196 style(toast): adjust toast border radius for consistency with UI design
- d036e95 feat(tlesync): expand CelesTrak group support and enhance URL handling
- 2d8be3a feat(tlesync): enhance CelesTrak integration with canonical URLs, strict validation, and six-digit support
- 392c9e0 test(accessibility): improve test reliability for tab navigation on home page
- 940df21 feat(restore): implement memory-efficient full database restore with streamed SQL processing
- 59bb341 feat(restore): increase full restore max file size to 1GB and adjust payload limits
- 4e0afe5 feat(backup): add cancelable full database backup with progress tracking
- e12bb7d feat(filebrowser): enable row click to show details in normal mode
- 3cae0bf feat(tlesync): implement CelesTrak-specific safeguards and sync state tracking
- 0fb380f update(images): refine satellite image workflow and update ID 25544 presets
- 3c18fb2 update(images): refresh satellite images for ID 25544 across all resolutions
- a243a24 update(images): refresh satellite images across multiple resolutions
- c3fd42b update(images): refresh satellite images across multiple resolutions
- 71ddabe remove: client-side target diagnostics and backend logging for crash reports
- fcdc598 feat(target-diagnostics): add client-side crash reporting for target page
- 3f9ec89 refactor(toasts): unify toast theming under
ThemeProviderwith improved cross-mode styles - e3490bc feat(sync): add cancel synchronization functionality with i18n support
- b5ee25d refactor(filebrowser): replace
StackwithBoxfor simplified layout in observation folder dialog - 171a301 feat(filebrowser): add grouped recording cards for observation bundles
- 96d126a feat(Docker): add SDRplay RSP API v3.15 support for SoapySDRPlay3
- 87b543f chore(frontend): update
package-lock.jsondependencies and adjust peer dependency flags - 0a50939 feat(decoders): replace SSDV decoder with Geoscan image decoder
- c0b72ad feat(playback): enable playback of recordings from observation bundles
- 47916bd feat(playback): decouple SigMF playback recordings from File Browser filters
- e1f24d6 feat(decoders): add SSDV decoder support to scheduler dialogs with updated bandwidth defaults and parameters
- d9f51be feat(decoders): add SSDV decoder for packetized image data and integrate across frontend and backend
- 8654b27 feat(observations): skip bundle creation for disposable IQ-only tasks and add cleanup for empty bundles
- a908864 refactor(filebrowser): remove hardcoded pipeline value and adjust chip visibility logic for observations
- 26cb748 feat(observations): enhance bundle lifecycle management and UI integration
- d9a2e5a feat(observations): add observation bundles, frontend dialog, and backend integration
- ce8fd28 feat(waterfall): improve decoded packets drawer row mapping and adjust column widths
- 59426c5 chore(version): bump to 0.7.19 and update release notes in README
Pull the Docker image:
For AMD64 systems:
docker pull --platform linux/amd64 ghcr.io/sgoudelis/ground-station:0.8.3For ARM64 systems (Raspberry Pi, etc):
docker pull --platform linux/arm64 ghcr.io/sgoudelis/ground-station:0.8.3Or pull architecture-specific tags directly:
# AMD64
docker pull ghcr.io/sgoudelis/ground-station:0.8.3-amd64
# ARM64
docker pull ghcr.io/sgoudelis/ground-station:0.8.3-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.3# 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.3Option 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.3# 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.3Note: 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.3
# 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.7.19...v0.8.3