SkyPortal#
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.
Quick Start#
To launch a demo instance of SkyPortal, first clone the source code from GitHub:
$ git clone --recurse-submodules git@github.com: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
http://localhost:5000
.
User Guide#
- System Architecture
- Setup
- Usage
- API
- Developer notes
- Deployment
- Versioning
- Data loader
- How to Contribute
- Adding new features
- Adding a new type of Comment or Annotation
- Styling components
- Database Schema
- Database migrations
- Analyzing database queries
- Access controls
- Slack Integration
- Follow-up triggering
- MMA Features
- Periodic Timeseries Features
- Spatial Catalogs
- Advanced usage
- How to work with photometric series
- Analysis
- SkyPortal Extensions
- Front-end Pages
Contributing#
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.
Acknowledgments#
We thank the Gordon and Betty Moore Foundation for a Software SkyPortal grant, which partially covered the cost of the development of this project.