Docker Image
Version: 0.3.0
Environment: production
Git Commit: fefc6b1
Build Date: 20260403
Commits in this release:
- fefc6b1 Bump version to 0.3.1 in
version.json. - 1da4871 Remove redundant
apt-get updateand dependency installation step from Dockerfile. - c04d1a8 Bump version to 0.3.0 in
version.json. - 6faa785 Sync
satelliteIdwith backend updates intarget-sliceto ensure real-time tracking state consistency. - a576d9c Introduce active and upcoming observation indicators in the dashboard:
- f8cc69c Dim inactive satellite markers in
overview-mapusing a new custom icon. - 64fa5dc Refactor frequency violation text formatting to handle multi-code-point icons and improve trim logic.
- 2caebf3 Improve frequency violation alert styling in
satellite-transmitters: - 2b5af37 Import Leaflet in
satellite-mapand remove redundant ESLint disable directive frommercator-grid. - 2884993 Normalize satellite data parsing and enhance map visuals:
- db916bd Add
getModulationColorutility to dynamically set badge colors insatellite-infocomponent - 97a1210 Enhance frequency band display:
- a9eb35c Localize string literals and fix Greek translations across frontend components and JSON files.
- bd117f8 Upgrade frontend and backend dependencies:
- b6c7020 Refactor hardware e2e tests for improved reliability and reuse
- c2dad53 Relax ESLint rules for gradual adoption of React compiler-driven hooks; replace
LocationFormwith directLocationPageusage in settings panel - 88db272 Refactor
SettingsTabsto derive active tabs from URL; remove redundant state variables and handlers - fe7154c Refactor selection and action handling in tables
- 1d78c77 Refactor dashboard edit mode to use Redux actions for grid editing states.
- 9bb5e7b - Implement
toSelectedIdsutility to normalize row selections across multiple tables. - Switch to functionalmanualChunksin Vite config for compatibility with Vite 8. - Overrideworker.formattoesin Vite config to ensure compatibility with top-level await. - Upgrade frontend and backend dependencies, including FastAPI, aiohttp, cryptography, and Pillow. - Update grid layout components to improve resizing and layout synchronization. - Addoverview-map-layout-changeevent to synchronize map state with layout changes. - Refactor data grid row selection across multiple components usingtoSelectedIdsfor consistency. - 7ddd443 Handle azimuth wraparound and improve target tolerance logic
Pull the Docker image:
For AMD64 systems:
docker pull --platform linux/amd64 ghcr.io/sgoudelis/ground-station:0.3.0For ARM64 systems (Raspberry Pi, etc):
docker pull --platform linux/arm64 ghcr.io/sgoudelis/ground-station:0.3.0Or pull architecture-specific tags directly:
# AMD64
docker pull ghcr.io/sgoudelis/ground-station:0.3.0-amd64
# ARM64
docker pull ghcr.io/sgoudelis/ground-station:0.3.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.3.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.3.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.3.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.3.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.3.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.2.19...v0.3.0