Docker Image
Version: 0.8.21
Environment: production
Git Commit: 21ea004
Build Date: 20261025
Commits in this release:
- 21ea004 chore(version): bump to v0.8.21
- faa7173 feat(frontend): refactor scheduler dialogs into memoized host component with transition handling and tests
- b284e71 feat(frontend): refactor scheduler dialogs into memoized host component with transition handling and tests
- 374ef4b feat(frontend): refactor EarthView map tracking with useStableEvent and isolated island component
- 62fabeb feat(frontend): improve memoization and stability in waterfall settings with new useStableEvent hook and expanded tests
- 8053af5 feat(frontend): refactor target layout and map settings with memoization and error handling improvements
- 2ab48a1 feat(frontend): replace transmitter select dropdown with go-to button and menu interaction
- 6d17411 feat(frontend): refactor transmitter target label into reusable component and replace split button with dropdown in frequency settings
- 3767365 feat(frontend): add target labels and slot numbers to VFO transmitter lock with tests
- 385348d feat(frontend): enhance transmitter and satellite edit dialogs with contextual helper texts
- 42eef07 feat(frontend): enhance LoRa parameter rendering and VFO styling in decoded packets drawer with tests
- c354732 feat(frontend): add copy target name and ID feature with enhanced popover tests
- 717710d feat(backend): add LoRa decoder suggestions with locked VFO support and tests
- edb3030 feat(frontend): add target popover satellite and transmitter editors with tests
- 869a7db feat(tinygs): resolve reused NORADs with TLE identity fallback
- 652ee99 feat(loRa): add configurable receiver profiles with TinyGS integration and front-end support
- 7aef4fd feat(backend/frontend): integrate TinyGS transmitter support with orbital sync and waterfall UI adjustments
- 4f71a8f feat(backend): add live LoRa VFO controls with tests for dynamic parameter updates and overrides
- fa5baa3 feat(backend): add LoRa decoder with regression tests and frontend parameter support
- e981daa feat(telemetry): add UMKA-1 USP telemetry decoding and display
- e3112d7 feat(frontend): implement Earth View satellite propagation with OMM support
- 15b8b51 feat(frontend): implement Earth View satellite propagation with OMM support
- db45cab feat(backend): add versioned URLs for recording snapshots and thumbnails
- 0b7d8cc feat(filebrowser): ensure page requests handle late or out-of-order replies
- 7a8e9bf feat(filebrowser): replace multi-select with enhanced type filter component
- 43db0e1 feat(filebrowser): add observation filter with rehydration support
- d2a6ffc feat(filebrowser): add waterfall generation tracking and overlay for recordings
- 6fe0aad feat(frontend): add transmitter strip with grouped labels and frequency markers in
WaterfallViewer - 3ba6ce6 chore(frontend): update
vite,lightningcss, and related dependencies - 5e738e8 chore: update dependencies and configuration for backend and frontend
- 51b1a0c feat(scheduler): add regeneration progress tracking and disable actions during requests
Pull the Docker image:
For AMD64 systems:
docker pull --platform linux/amd64 ghcr.io/sgoudelis/ground-station:0.8.21For ARM64 systems (Raspberry Pi, etc):
docker pull --platform linux/arm64 ghcr.io/sgoudelis/ground-station:0.8.21Or pull architecture-specific tags directly:
# AMD64
docker pull ghcr.io/sgoudelis/ground-station:0.8.21-amd64
# ARM64
docker pull ghcr.io/sgoudelis/ground-station:0.8.21-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 \
-e GS_HTTP_PORT=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.21# ARM64 (Raspberry Pi, etc)
docker run -d \
--platform linux/arm64 \
--network host \
-e GS_HTTP_PORT=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.21Option 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.21# 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.21Port selection: In host-network mode, change
GS_HTTP_PORT=7000to your desired HTTP port, such asGS_HTTP_PORT=8080. Docker ignores-pin this mode. In bridge mode, change the host side of-p 7000:7000, such as-p 8080:7000; keep the container side at 7000. The backend remains on127.0.0.1:7001inside the container.
Note: 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>:<HTTP_PORT> (7000 by default).
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.21
# Run the container again (use the appropriate command above for your architecture and retain your HTTP port choice)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.20...v0.8.21