# abra [![Build Status](https://drone.autonomic.zone/api/badges/coop-cloud/abra/status.svg)](https://drone.autonomic.zone/coop-cloud/abra) [![codecov](https://codecov.io/gh/Autonomic-Cooperative/abra/branch/main/graph/badge.svg?token=aX3I5NMRsj)](undefined) > https://coopcloud.tech The cooperative cloud utility belt 🎩🐇 `abra` is a command-line tool for managing your own [Co-op Cloud](https://coopcloud.tech). It can provision new servers, create applications, deploy them, run backup and restore operations and a whole lot of other things. It is the go-to tool for day-to-day operations when managing a Co-op Cloud instance. ## Change log > 🔥 🔥 🔥 Please note, while we are still in [public > alpha](https://docs.coopcloud.tech/roadmap/), the `abra` release > versioning scheme is not following [semver](https://semver.org/) conventions > because we are still in the exploratory phases of building this tool. Please > read the changes before upgrading your `abra` installation as there are > **most likely** breaking changes coming each release. Sorry for any > inconvenience caused, we're working hard to make this tool stable. Semver > will be respected when we reach public beta. 🔥 🔥 🔥 See [CHANGELOG.md](./CHANGELOG.md). ## Documentation > [docs.coopcloud.tech](https://docs.coopcloud.tech) ## Install Install the latest stable release: ```sh curl https://install.abra.autonomic.zone | bash ``` or the bleeding-edge development version: ```sh curl https://install.abra.autonomic.zone | bash -s -- --dev ``` The source for this script is [here](./deploy/install.abra.autonomic.zone/installer). ## Update Run `abra upgrade` to automatically download and install the latest release version. To update the development version, run `abra upgrade --dev`. ## Hack It's written in Bash version 4 or greater! Install it via `curl https://install.abra.autonomic.zone | bash -s -- --dev`, then you can hack on the source in `~/.abra/src`. The command-line interface is generated via [docopt](http://docopt.org/). If you add arguments then you need to run `make docopt` ro regenerate the parser. Please remember to update the [CHANGELOG](./CHANGELOG.md) when you make a change. ## Generating a new apps.json You'll need to install the following requirements: - [requests](https://docs.python-requests.org/en/master/) (`apt install python3-requests` / `pip install requests`) - [skopeo](https://github.com/containers/skopeo) (check [the install docs](https://github.com/containers/skopeo/blob/master/install.md)) - [jq](https://stedolan.github.io/jq/tutorial/) (`sudo apt-get install jq` or see [the install docs](https://stedolan.github.io/jq/download/)) - [yq](https://mikefarah.gitbook.io/yq/) (see [the install docs](https://mikefarah.gitbook.io/yq/#install)) Then run `./bin/app-json.py` ([source](./bin/app-json.py)) and it will spit out the JSON file into [deploy/apps.coopcloud.tech/apps.json](./deploy/apps.coopcloud.tech/apps.json). ## Releasing ### `abra` > [install.abra.autonomic.zone](https://install.abra.autonomic.zone) - Change the `x.x.x` header in [CHANGELOG.md](./CHANGELOG.md) to reflect new version and mark date - Update the version in [abra](./abra) - Update the version in [deploy/install.abra.autonomic.zone/installer](./deploy/install.abra.autonomic.zone/installer) - `git commit` the above changes and then tag it with `git tag ` - `git push` and `git push --tags` - Deploy a new installer script `make release-installer` - Tell the world (CoTech forum, Matrix public channel, Autonomic mastodon, etc.) ### apps.coopcloud.tech > [apps.coopcloud.tech](https://apps.coopcloud.tech) ```bash $ make release-apps ```