Skip to content

TPT AstroLink — Project Cosmos

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)


Overview

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.

Architecture (Zero-Python)

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.

Repository Layout

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

Data Flow

  1. Command: Web UI → WebSocket → Cloud Core (Go) → MQTT → Edge Agent (Rust) → FFI → INDI/ASCOM → Mount.
  2. Telemetry: Edge Agent → MQTT → Cloud Core → WebSocket → Web UI.
  3. 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.

Getting Started (30 minutes)

1. Dashboard (2 min)

# 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)

2. Node Install (2 min)

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 8883

This auto-detects your architecture and installs the latest release.

3. Connect Your Hardware

  • INDI (Linux): Start indiserver for your mount/focuser/weather station.
  • ASCOM (Windows): Ensure ASCOM drivers are installed and configured.

4. Verify

Check the dashboard at http://localhost:3000 — your node should appear online within 30 seconds. Try a test slew:

  1. Enter target coordinates (RA/Dec)
  2. Click Slew
  3. Watch the mount move in real-time telemetry

Next Steps

Documentation

  • 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.

License

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.

About

Cloud-native remote observatory control and a crowdsourced virtual observatory network, with edge AI transient detection. Rust edge agent, Go cloud core & Relay scheduler, Next.js dashboard.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages