Timezone settings
Setup detects the timezone from station coordinates and lets you change it for your account. Additional accounts default to the station's geographic timezone.
Upgrading from v0.8.6 or earlier: Existing saved timezone preferences are preserved. If the displayed time is incorrect, open account menu → Preferences → Regional & Language → Timezone, choose your timezone (for example, Europe/Amsterdam), and save. Daylight saving time is automatic. Changing the Docker or server timezone does not change your account preference.
Docker Image
Version: 0.8.7
Environment: production
Git Commit: ca5d462
Build Date: 20260912
Commits in this release:
- ca5d462 fix(app): adjust document title formatting for stationName and version
- b8fb458 feat(app): dynamically update document title with station name and version
- 9a6c785 feat(map-load-error): add error handling and retry mechanism for map loading failures
- 41ca670 feat(setup): add timezone detection and configuration for stations and accounts
- b21c5a9 test(celestial-scene): block external IO and enhance Sun scene mocking
- 1ad2008 test(rotator): add StopRejected test for proper stop failure handling
- 4d29778 fix(rotator-control): prioritize slewing state over tracking in status display
- da6b857 feat(hardware-control): implement hardware command handling with feedback and stop recovery tests
- 33eeaaa fix(target-selector-bar): resolve stale rotator owner selection by using instance ownership snapshot
- 87ba225 refactor(target-sky-planetarium): simplify crosshair visibility logic by removing unnecessary tracking checks
- ef1a499 feat(tracker-command-feedback): add tests and refine completion feedback handling
- 96e2984 feat(worker): add operation and command tracking logic with robust state management
- 97c1f14 feat(rotator-control): add stop rotator functionality with backend and frontend integration
- 56ebbb9 feat(rotator-control): refine manual control handling and improve status updates
- ba9ce6c feat(rotator-control): add manual control UI and backend support
- 7846137 fix(maplibre): support v6 camera and worker loading
- ef053de chore(dependencies): add
flatbuffers,h3,timezonefinder, andtimezonefinder-datato requirements - 5011fd7 chore(dependencies): update
package-lock.jsonto synchronize peer dependency entries - 596f150 refactor(maplibre): switch to named imports and update maplibre-gl to v6.8.0
- aec0319 feat(setup): add timezone support during setup and improve rotator defaults
- 667f309 docs(readme): document MiriSDR support, udev setup instructions, and SoapyMiri updates
- a0ae470 docs(readme): add release notes for v0.8.6
- 810ead7 bump(version): update to 0.8.6
Pull the Docker image:
For AMD64 systems:
docker pull --platform linux/amd64 ghcr.io/sgoudelis/ground-station:0.8.7For ARM64 systems (Raspberry Pi, etc):
docker pull --platform linux/arm64 ghcr.io/sgoudelis/ground-station:0.8.7Or pull architecture-specific tags directly:
# AMD64
docker pull ghcr.io/sgoudelis/ground-station:0.8.7-amd64
# ARM64
docker pull ghcr.io/sgoudelis/ground-station:0.8.7-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.7# 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.7Option 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.7# 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.7Note: 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.7
# 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.6...v0.8.7