{"id":37140553,"url":"https://github.com/mikelangelo-project/capstan","last_synced_at":"2026-01-14T16:28:31.070Z","repository":{"id":57587267,"uuid":"59827827","full_name":"mikelangelo-project/capstan","owner":"mikelangelo-project","description":"Capstan, a tool for packaging and running your application on OSv.","archived":false,"fork":true,"pushed_at":"2018-09-18T12:57:51.000Z","size":854,"stargazers_count":19,"open_issues_count":15,"forks_count":7,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-06-20T14:10:11.032Z","etag":null,"topics":["aws","go","golang","openstack","osv","package-manager","packaging","unikernel"],"latest_commit_sha":null,"homepage":"http://osv.io/capstan/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"cloudius-systems/capstan","license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mikelangelo-project.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}},"created_at":"2016-05-27T10:51:12.000Z","updated_at":"2024-06-20T14:10:11.033Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/mikelangelo-project/capstan","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/mikelangelo-project/capstan","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikelangelo-project%2Fcapstan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikelangelo-project%2Fcapstan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikelangelo-project%2Fcapstan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikelangelo-project%2Fcapstan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mikelangelo-project","download_url":"https://codeload.github.com/mikelangelo-project/capstan/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikelangelo-project%2Fcapstan/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28425941,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T15:24:48.085Z","status":"ssl_error","status_checked_at":"2026-01-14T15:23:41.940Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["aws","go","golang","openstack","osv","package-manager","packaging","unikernel"],"created_at":"2026-01-14T16:28:30.348Z","updated_at":"2026-01-14T16:28:31.063Z","avatar_url":"https://github.com/mikelangelo-project.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Capstan\n\n*This is an upgraded version of the [original Capstan](https://github.com/cloudius-systems/capstan) and\nis maintained by [MIKELANGELO consortium](https://www.mikelangelo-project.eu). Although it is still\npossible, joining this repository with the original Capstan is not very likely. We're looking towards\nthe first stable release at the moment.*\n\nCapstan is a command-line tool for rapidly running your application on [OSv unikernel](http://osv.io).\nIt focuses on improving user experience during building the unikernel and attempts to support\nnot only a variety of runtimes (C, C++, Java, Node.js etc.), but also a variety of ready-to-run\napplications (Hadoop HDFS, MySQL, SimpleFOAM etc.).\n\n## Philosophy\nBuildning unikernels is generally a nightmare! It is a non-trivial task that requires deep\nknowledge of unikernel implementation. It depends on numerous installation tools and takes\nsomewhat 10 minutes to prepare each unikernel once configured correctly.\nBut an application-oriented developer is not willing to take a load of new knowledge about unikerel\nspecifics, nor wait long minutes to compile! And that's where Capstan comes in.\n\nCapstan tends to be a tool that one configures with *application-oriented settings*\n(Where is application entry point? What environment variables to pass? etc.) and then\nruns a command or two to quickly boot up a new unikernel with application. Measured in seconds.\n\nTo achieve this, Capstan uses **precompiled** artefacts: precompiled OSv kernel, precompiled Java runtime,\nprecompiled MySQL, and many more. All you have to do is to name what precompiled packages you want\nto have available in your unikernel and that's it.\n\n## Features\nCapstan is designed to prepare and run OSv unikernel for you.\nWith Capstan it is possible to:\n\n* prepare OSv unikernel without compiling anything but your application, in seconds\n* use any precompiled package from the MIKELANGELO package repository, or a combination thereof\n* set arbitrary size of the target unikernel filesystem\n* run OSv unikernel using one of the supported providers\n\nBut Capstan is not a magic tool that could solve all the problems for you.\nCapstan does **not**:\n\n* compile your application. If you have Java application, you need to use `javac` compiler and compile\nthe application yourself prior using Capstan tool!\n* inspect your application. Capstan does nothing with your application but copies it into the unikernel\n* overcome OSv unikernel limits. Consult OSv documentation about what these limits are since they\nall still apply. Most notably, you can only run single process inside unikernel (forks are forbidden).\n\n## Getting started\nCapstan can be installed using precompiled binary or compiled from source.\n[Step-by-step Capstan Installation Guide](Documentation/Installation.md)\n\nUsing Capstan is rather simple: open up your project directory and create\n[Capstan configuration files](Documentation/ConfigurationFiles.md)\nthere:\n```\n$ cd $PROJECT_DIR\n$ capstan package init --name {name} --title {title} --author {author}\n$ capstan runtime init --runtime {runtime}\n# edit meta/run.yaml to match your application structure\n```\nBeing in project root directory, then use Capstan command to create unikernel\n(consult [CLI Reference](Documentation/generated/CLI.md) for a list of available arguments):\n```\n$ capstan package compose {unikernel-name}\n```\nAt this point, you have your unikernel built. It contains all your project files plus all the\nprecompiled artefacts that you asked for. In other words, the unikernel contains everything and is\nready to be started! As you might have expected, there is Capstan command to run unikernel for you\n(using KVM/QEMU hipervisor):\n```\n$ capstan run {unikernel-name}\n```\nCongratulations, your unikernel is up-and-running! Press CTRL + C to stop it.\n\n## Documentation\n\n* [Step-by-step Capstan Installation Guide](Documentation/Installation.md)\n* [Running My First Application Inside Unikernel](Documentation/WalkthroughNodeJS.md)\n* [Configuration Files](Documentation/ConfigurationFiles.md)\n    * [Native](Documentation/RuntimeNative.md)\n    * [Java](Documentation/RuntimeJava.md)\n    * [Node.js](Documentation/RuntimeNode.md)\n    * [Python](Documentation/RuntimePython.md)\n* [.capstanignore](Documentation/Capstanignore.md)\n* [Attaching volumes](Documentation/Volumes.md)\n* [Capstan S3 Repository](Documentation/Repository.md)\n* [CLI Reference](Documentation/generated/CLI.md)\n* [OSv filesystem](Documentation/OsvFilesystem.md)\n\n## License\nCapstan is distributed under the 3-clause BSD license.\n\n## Acknowledgements\nThis code has been developed within the [MIKELANGELO project](https://www.mikelangelo-project.eu)\n(no. 645402), started in January 2015, and co-funded by the European Commission under the\nH2020-ICT-07-2014: Advanced Cloud Infrastructures and Services programme.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmikelangelo-project%2Fcapstan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmikelangelo-project%2Fcapstan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmikelangelo-project%2Fcapstan/lists"}