sirius.international
An interactive mapping platform with a 3D globe, external data integrations and applications for iOS and Android.
From idea to platform
Sirius was created to explore distributed information sources in a geographic context. Its globe and map layers bring together aviation, satellites, cameras, weather and natural events. The project develops a shared map interface, data catalogues and API integrations rather than a separate view for each provider.
Application architecture
The frontend uses MapLibre GL JS and WebGL for the map and globe. JavaScript modules handle layers, filters, dialogs and source selection. HLS playback and satellite calculation libraries support available video streams and orbital views. Some catalogues are static files; an API layer supplies changing data.
Backend and data
A Python API aggregates selected sources, caches responses and keeps provider configuration outside browser code. nginx serves the frontend and proxies requests to the API process managed by systemd. Each layer depends on its provider’s availability and freshness; the application distinguishes current data, saved datasets and retrieval failures.
OCI and Terraform
The backend runs on Oracle Linux on OCI Ampere. A shared Terraform stack defines networking, routing, access rules, compute and the public IP. A web module prepares nginx templates and a domain/HTTPS installer. Application deployment is a separate step, giving infrastructure and product releases distinct change cycles.
Deployment automation
Autodeploy checks main, retrieves a specific revision and runs syntax checks. Frontend and API releases have separate directories and active-version symlinks. The API is updated when its deployment inputs change. Health checks inspect API responses and served HTML; failed deployments trigger rollback.
iOS and Android applications
Application projects were created for both iOS and Android using Capacitor. Map code and assets are packaged with the app while data and APIs remain on the server. iOS uses Xcode and the TestFlight testing workflow; Android has a Gradle project and its own build process. Backend changes are independent of new app releases. Platform-dependent native integrations include location, sharing, saved places and notifications.
Operations and ongoing development
A prepared monitoring module checks system resources, services, HTTPS and application responses, with APNs alerts after recipient configuration. The project combines product development, data integration, Infrastructure as Code, automated deployment and mobile distribution. External libraries retain their licenses and required source attribution.
Open project in a new tab