Cloud-native remote observatory control and a distributed "virtual observatory" network for crowdsourced sky monitoring.
License: Dual MIT / Apache-2.0 — Copyright © TPT Solutions Codename: Project Cosmos · Spec Version: 1.1 (2026-07-20)
TPT AstroLink democratizes astronomical observation by bridging amateur hardware and professional-grade data collection. It provides:
- A SaaS remote observatory control dashboard (mobile-friendly, cross-platform).
- A distributed "virtual observatory" network for crowdsourced sky monitoring via the Relay scheduling protocol.
- Edge AI transient alerts that automatically trigger "Target of Opportunity" events when a brightness anomaly is detected.
| Component | Tech | Role |
|---|---|---|
| TPT Edge Agent ("Node") | Rust | Lightweight binary on observatory hardware (Raspberry Pi 5, Intel NUC). FFI to INDI/ASCOM C/C++ drivers, FITS capture, edge AI inference, MQTT/S3. |
| TPT Cloud Core | Go | WebSocket gateway, MQTT bridge, Postgres (metadata), S3 (FITS), Astrometry worker, auth. |
| TPT Client UI | TypeScript / React / Next.js + Three.js | Universal control dashboard, 3D sky visualization, real-time telemetry. |
| The "Relay" Protocol | Go | Crowdsourcing scheduling engine: assign targets to nodes by local night-time availability, stitch multi-node data. |
tpt-astrolink/
├── edge-agent/ # Rust workspace — TPT Edge Agent
├── cloud-core/ # Go modules — TPT Cloud Core
├── client-ui/ # Next.js app — TPT Client UI
├── relay/ # Go — Relay scheduling engine
├── docs/ # Spec, protocol & API contracts
├── infra/ # IaC, CI/CD, Docker, K8s
└── LICENSE-MIT / LICENSE-APACHE
- Command: Web UI → WebSocket → Cloud Core (Go) → MQTT → Edge Agent (Rust) → FFI → INDI/ASCOM → Mount.
- Telemetry: Edge Agent → MQTT → Cloud Core → WebSocket → Web UI.
- Data: Edge Agent captures FITS → compresses → S3 → Cloud worker → Astrometry.net → Postgres.
┌────────────┐
Command ─────▶│ Client UI │──── WebSocket ────┐
│ (Next.js) │◀─── WebSocket ────┤
└────────────┘ Telemetry │
▼
┌────────────────┐
│ Cloud Core │
│ (Go / Go) │◀──┐
└────────────────┘ │
│ MQTT │ S3
▼ │
┌─────────────┐ │
│ Edge Agent │────────┘
│ (Rust) │── FFI ──▶ INDI/ASCOM
└─────────────┘
Architecture diagram is a placeholder; refine in
docs/architecture.md.
# Start the control dashboard with a single command:
docker compose -f infra/docker-compose.quickstart.yml up -d
# Open http://localhost:3000
# Login: [email protected] / password (set via seed-dev.sh)SSH into your observatory computer (Raspberry Pi 5 or Intel NUC) and run:
curl -fsSL https://raw.githubusercontent.com/tptsolutions/tpt-astrolink/main/edge-agent/scripts/install.sh | bash -s -- \
--repo tptsolutions/tpt-astrolink \
--node-id my-observatory \
--mqtt-broker cloud-core.example.com \
--mqtt-port 8883This auto-detects your architecture and installs the latest release.
- INDI (Linux): Start
indiserverfor your mount/focuser/weather station. - ASCOM (Windows): Ensure ASCOM drivers are installed and configured.
Check the dashboard at http://localhost:3000 — your node should appear online within 30 seconds. Try a test slew:
- Enter target coordinates (RA/Dec)
- Click Slew
- Watch the mount move in real-time telemetry
- Node Operator Guide — hardware-specific driver setup
- Architecture — data flow diagrams
- API Contracts — WebSocket & MQTT message schemas
docs/protocols/websocket-contract.md— Cloud Core ↔ Client UI message schema.docs/protocols/mqtt-contract.md— Cloud Core ↔ Edge Agent topic/payload schema.docs/architecture.md— Full command/telemetry/data flow diagrams.docs/node-operator-guide.md— Flashing and configuring a physical Edge Node.docs/beta-onboarding.md— Pilot observatory onboarding runbook.docs/storage/postgres-schema.md,docs/storage/s3-layout.md— storage layouts.docs/security-review.md— threat model and security posture.
This project is dual-licensed under the MIT License and the Apache License 2.0. You may choose either license at your option.
See LICENSE-MIT and LICENSE-APACHE for the full text.
© TPT Solutions. All rights reserved.