{"id":26138238,"url":"https://github.com/onecommons/cloudmap","last_synced_at":"2026-03-16T06:09:48.245Z","repository":{"id":161758220,"uuid":"625044066","full_name":"onecommons/cloudmap","owner":"onecommons","description":null,"archived":false,"fork":false,"pushed_at":"2024-05-22T23:42:45.000Z","size":56,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-12-25T18:29:24.993Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"odbl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/onecommons.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-04-07T23:05:42.000Z","updated_at":"2025-02-22T09:25:02.000Z","dependencies_parsed_at":"2024-04-01T19:29:54.690Z","dependency_job_id":"c2ac5f97-2a52-4280-b2b2-18a69c6aa656","html_url":"https://github.com/onecommons/cloudmap","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/onecommons/cloudmap","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onecommons%2Fcloudmap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onecommons%2Fcloudmap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onecommons%2Fcloudmap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onecommons%2Fcloudmap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/onecommons","download_url":"https://codeload.github.com/onecommons/cloudmap/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onecommons%2Fcloudmap/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30570274,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-16T06:02:37.763Z","status":"ssl_error","status_checked_at":"2026-03-16T06:02:14.913Z","response_time":96,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-11T01:56:20.743Z","updated_at":"2026-03-16T06:09:48.224Z","avatar_url":"https://github.com/onecommons.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cloud Map: Blueprints for a Free and Open Cloud\n\nA cloud map is a document that describes git repositories and the software, services, and applications that can be built from them. What makes a cloud map more than just a collection of metadata is that it uses a schema to express the dependencies between code repositories, artifacts, and applications. This schema follows the [TOSCA standard](#about-tosca) so that a cloud map can be used to automate the building and deployment of applications and services.\n\nCurrently this repository contains a [cloudmap.yaml](./cloudmap.yaml) file generated from the projects at \u003chttps://unfurl.cloud/onecommons/blueprints\u003e. In the near future, we plan to automate this process so that anyone hosting a public repository on [Unfurl Cloud](https://unfurl.cloud) will have the option to have it added to this cloud map -- we want to make it as simple as possible for anyone to contribute to a free and open cloud.\n\n## Motivation\n\nLet's start with the grand vision: There's a vast universe of open-source projects and applications but it often takes a lot of work to integrate, configure, and deploy all these components into a useful running service. If there was a way to easily express those integrations in a composable, reusable manner that would go a long way towards building a [free and open cloud](https://www.unfurl.cloud/blog/the-free-and-open-cloud). Imagine a cloud map as the heart of something like a package manager for deploying web services and cloud infrastructure.\n\nBut our initial use-cases are a lot more modest:\n\n* [Unfurl](https://github.com/onecommons/unfurl) uses cloud maps to discover cloud blueprints that match the requirements of its user's environment.\n* Cloud maps are used to manage and synchronize repositories hosted by instances of Unfurl Cloud.\n* [Unfurl](https://github.com/onecommons/unfurl) can also synchronize local git repositories and Gitlab projects with a cloud map.\n\n## Anatomy of a cloud map\n\nIf you take a look at the [cloudmap.yaml](./cloudmap.yaml) in this repository, you'll find a YAML file with sections that describe the following:\n\n### Git Repositories\n\nThe bulk of a cloud map file is in the `repositories` section, which consists of a list of metadata about git repositories, each of which looks like:\n\n```yaml\nrepositories:\n  unfurl.cloud/onecommons/blueprints/mediawiki:\n    git: unfurl.cloud/onecommons/blueprints/mediawiki.git\n    path: onecommons/blueprints/mediawiki\n    name: MediaWiki\n    protocols:\n    - https\n    - ssh\n    internal_id: '35'\n    project_url: https://unfurl.cloud/onecommons/blueprints/mediawiki\n    metadata:\n      description: MediaWiki is free and open-source wiki software used in Wikipedia,\n        Wiktionary, and many other online encyclopedias.\n      issues_url: https://unfurl.cloud/onecommons/blueprints/mediawiki/-/issues\n      homepage_url: https://unfurl.cloud/onecommons/blueprints/mediawiki\n    default_branch: main\n    branches:\n      main: 0fc60cb3afd06ae2c4abe038007e9ff4db398662\n    tags:\n      v1.0.0: 0fc60cb3afd06ae2c4abe038007e9ff4db398662\n      v0.1.0: 225932bc2a45473d682e48f272bc48fcd83909bb\n    notable:\n      ensemble-template.yaml#spec/service_template:\n        artifact_type: artifact.tosca.ServiceTemplate\n        name: Mediawiki\n        version: 0.1\n        description: MediaWiki is free and open-source wiki software used in Wikipedia,\n          Wiktionary, and many other online encyclopedias.\n        type:\n          name: Mediawiki@unfurl.cloud/onecommons/blueprints/mediawiki\n          title: Mediawiki\n          extends:\n          - Mediawiki@unfurl.cloud/onecommons/blueprints/mediawiki\n          - unfurl.nodes.SQLWebApp@unfurl.cloud/onecommons/std:generic_types\n          - SQLWebApp@unfurl.cloud/onecommons/std:generic_types\n          - WebApp@unfurl.cloud/onecommons/std:generic_types\n          - _ContainerAppBase@unfurl.cloud/onecommons/std:generic_types\n          - App@unfurl.cloud/onecommons/std:generic_types\n          - tosca.nodes.Root\n          - tosca.capabilities.Node\n          - tosca.capabilities.Root\n        dependencies:\n        - MySQLDB@unfurl.cloud/onecommons/std:generic_types\n        artifacts:\n        - docker.io/bitnami/mediawiki\n...\nartifacts:\n  docker.io/bitnami/mediawiki:\n    type: artifacts.OCIImage\n```\n\nThe `notable` section lists files and directories in the repository that are useful for characterizing the repository and integrating it with the other resources in the cloud map. Unfurl looks for files of interest when synchronizing repositories with the cloud map but entries can be added manually too. For example, `Dockerfiles` for building container images or `ensemble-template.yaml` containing cloud blueprints for deploying.\n\n### Artifacts\n\nMost code isn't used directly, instead there is a build or packaging process to create the the artifact (for example, an executable binary, a software package, or a container image) that actually used when an application is deployed; the `artifacts` section of a cloud map lists artifacts.\n\nArtifacts are declared separately from repositories because there isn't necessarily a way to determine what artifacts are built and their location, but that relationship can be expressed with the `builds` annotation in the `notable` section. In the future, the cloud map schema will be extended to better represent the build processes build artifacts from code in repositories.\n\n### Cloud blueprints\n\nA cloud blueprint is a TOSCA service template that describes how to deploy a service or application includes a its dependencies, such as artifacts (e.g. container images) or other services (e.g. a database service).  Most of the repositories currently in this cloud map contain `cloud blueprints` -- you'll see a summary of the blueprint in the `notable` section of those repositories.\n\nBlueprints are designed to be abstract enough to be used in a variety of environments. For example, a blueprint can specify a compute instance for a container image and that blueprint can deployed anywhere from a cheap virtual server to on a Kubernetes cluster.\n\n## About TOSCA\n\n[TOSCA](https://github.com/oasis-open/tosca-community-contributions) (Topology and Orchestration Specification for Cloud Applications) is the glue that ties the services in a cloud map together. TOSCA is a standard for describing and deploying cloud-provider independent abstractions of cloud infrastructure and services. We choose TOSCA because it is the only general purpose open standard for describing and orchestrating deployments -- isn't tied to a particular software ecosystem like Kubernetes, allowing a wide-range of abstractions to be expressed. A cloud map declares the TOSCA schema it uses to describe the entities it declares, such as artifacts, services, and processes. Using TOSCA allows a TOSCA processor like [Unfurl](https://github.com/onecommons/unfurl) the services found in the cloud map.\n\n## More than an Awesome List\n\nBlueprints can adapt themselves to different environments, based on its declared requirements. Environments are defined by the TOSCA schema the blueprints use but environments can be grouped like this:\n\n* Cloud-providers like AWS or Google Cloud. The blueprint can run on and integrates with cloud-provider specific resources and APIs.\n\n* Self-hosted: You can run the blueprint on your own machines or compute instances and integration is done by configuring those machines.\n\n* Kubernetes / Cloud Native: The blueprint runs in a Kubernetes cluster and integrates with other services is done using cloud native APIs.\n\nYou can create master blueprints that connects together other blueprints -- one vision for the cloud map is enable users to cloud architecture blueprints for different environments and use-cases that connect best-of-breed blueprint applications and services.\n\n## Adding to the Cloud Map\n\nIf you want to help build a free and open cloud or just make it easy an way for your users to deploy your application, its easy to contribute:\n\n* Create blueprints for your favorite software using our [project templates](https://unfurl.cloud/projects/new#create_from_template) and automatically sync your blueprint with the cloud map.\n\n* Help build out the [Unfurl Cloud standard library](https://onecommons.pages.staging.unfurl.cloud/std/) -- for example, by adding more and better cloud-provider agnostic abstractions.\n\n* Adding your own repositories to the cloud map. If you have local clones of git repositories you want to add, one simple way to do that is with this command:\n\n`unfurl cloudmap --import local --clone-root ../my-repos https://github.com/onecommons/cloudmap`\n\nwhere `my-repos` is a local directory containing or more git repositories. This command will clone this repository, update the cloud map with metadata from those local repositories, and then create a branch with those changes. If you'd like to add your own repositories to this cloud map that would be awesome, just submit a pull request.\n\nWhat would you like to see in a cloud map? Let us know! File an issue at \u003chttps://unfurl.cloud/onecommons/cloudmap/-/issues/new\u003e or find us on [Discord](http://www.unfurl.cloud/discord).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fonecommons%2Fcloudmap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fonecommons%2Fcloudmap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fonecommons%2Fcloudmap/lists"}