SkyPortal is a standalone, extensible, API-first web application that can be used to serve public and/or private astronomical data on infrastructure that you manage. Tired of managing observations of thousands of sources for you and your group in Google Docs? Got a new astronomical survey you’d like to serve to the public and don’t want build and maintain a website yourself? Want a place to manage requests for observations during an upcoming observing run? Sometimes work in a mobile/tablet environment? Then this project may be for you!
SkyPortal is a fully open-source portal to manage and collaborate on time-domain sources and events. On the backend, it has been designed to ingest and store millions of events per night from disparate discovery streams. The frontend allows searching by source properties, source-level summary pages, synchronous and asynchronous source-level communication, and group and user management.
By design SkyPortal makes use of hierarchical access control, frontend/backend abstractions with strong API contracts, elastic scaling, modern CI/CD practices, logging for auditability and traceability, and documentation meant to foster extensibility. It is built to run at the individual laptop level, in on-premise clusters, or in the cloud. The initial use cases were developed in close consultation with other time-domain practitioners and studying and using proprietary portals.
To launch a demo instance of SkyPortal, first clone the source code from GitHub:
$ git clone --recurse-submodules firstname.lastname@example.org:skyportal/skyportal.git
then install the system dependencies. If you haven’t
already initialized the database, from the
skyportal directory, run
$ make db_init
Then start the app with
$ make run
When the terminal shows
Server at: http://localhost:5000, open another
terminal, navigate to the
skyportal directory, and run
$ make load_demo_data
to populate the database with sample data. To access the running, populated
skyportal instance, log in as the admin user by navigating your browser to
http://localhost:5000/become_user/1. Then navigate to the home page at
- System Architecture
- Developer notes
- Data loader
- How to Contribute
- Adding new features
- Styling components
- Database Schema
- Database migrations
- Analyzing database queries
- Access controls
- Slack Integration
- Follow-up triggering
- MMA Features
- Spatial Catalogs
- Advanced usage
- Image Analysis
- SkyPortal Extensions
SkyPortal is released under the BSD license. We encourage you to modify it, reuse it, and contribute changes back for the benefit of others. We follow standard open source development practices: changes are submitted as pull requests and, once they pass the test suite, reviewed by the team before inclusion. Please also see our contributing guide.
We thank the Gordon and Betty Moore Foundation for a Software SkyPortal grant, which partially covered the cost of the development of this project.