Join GitHub today
Welcome to the Singularity Hub Wiki!
What is Singularity Hub?
Singularity Hub is a registry for scientific linux containers.
What is a Linux Container?
A container image is an encapsulated, portable environment that is created to distribute a scientific analysis or a general function. Containers help with reproducibility of such content as they nicely package software and data dependencies, along with libraries that are needed. Thus, the core of Singularity Hub are these Singularity container images, and by way of being on Singularity Hub they can be easily built, updated, referenced with a url for a publication, and shared. This small guide will help you to get started building your containers using Singularity Hub and your Github repositories.
How does it work?
You can follow some basic steps to build your scientific containers.
- create an account on Singularity Hub, authentication is with Github
- connect a Github repository to a new container collection. This means creating a webhook that will trigger a new build at each push to the repository. One collection coincides with one repository, and holds multiple images.
- push the Singularity build recipe (a text file specification to build your image called
Singularity) to the repository to trigger the build
- Singularity-Hub will be notified of the push via the webhook, and the build recipe file will be version controlled via the Github commit. This repo url, commit id, storage location, and some secrets are then sent to Singularity Hub builders.
- the container is built on the cloud, and when finished, is accessible programatically from the Singularity command line client, or the Singularity Global client.
Singularity Hub is developed at Stanford University with support from Google Cloud. Thank you!
Singularity 2.5 is released, and so is Singularity Hub 2.1! See the Release Notes for details.
- Generate: How to connect to Github and create automatic builds for your containers.
- Visualize: Use Singularity Hub and command line tools to see the guts of your container.
- Deploy: Use the Singularity software to use your containers from Singularity Hub.
- Share: Share your containers via social media, and upload asciicasts to distribute.
- singularity software is going to be the controller for pulling and otherwise interacting with your images on Singularity Hub.
- singularity global client is another option if you want a manager included (a small database to keep track of things).
- singularity server is an open source version of Singularity Hub if you want to deploy your own (that you can push to).
- Troubleshooting in case you need some help!
- Terms of Service
Meet the Builders
We deploy instances on Google Cloud, our "builders" on demand to build your image. Each builder performs the build in a secure environment, and can be used in different ways! You can read more about the builders, or continue to learn about your building options.