2020-09-08 06:54:07 +00:00
# abra
2020-09-07 21:29:29 +00:00
2020-10-25 20:08:03 +00:00
[![Build Status ](https://drone.autonomic.zone/api/badges/coop-cloud/abra/status.svg )](https://drone.autonomic.zone/coop-cloud/abra)
2020-10-26 10:49:06 +00:00
[![codecov ](https://codecov.io/gh/Autonomic-Cooperative/abra/branch/main/graph/badge.svg?token=aX3I5NMRsj )](undefined)
2020-09-08 06:54:19 +00:00
2021-04-18 15:42:42 +00:00
> https://coopcloud.tech
2020-10-25 20:22:29 +00:00
2020-10-26 17:16:54 +00:00
The cooperative cloud utility belt 🎩🐇
2021-04-18 15:42:42 +00:00
`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.
2021-03-02 10:53:55 +00:00
2021-03-04 12:24:13 +00:00
## Change log
2021-03-20 20:44:26 +00:00
> 🔥 🔥 🔥 Please note, while we are still in [public
2021-04-18 15:42:42 +00:00
> alpha](https://docs.coopcloud.tech/roadmap/), the `abra` release
2021-03-20 20:44:26 +00:00
> 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. 🔥 🔥 🔥
2021-03-04 12:24:13 +00:00
See [CHANGELOG.md ](./CHANGELOG.md ).
2020-12-29 14:10:05 +00:00
## Documentation
2021-04-18 15:42:42 +00:00
> [docs.coopcloud.tech](https://docs.coopcloud.tech)
2020-12-29 14:10:05 +00:00
2020-09-22 11:05:23 +00:00
## Install
2020-09-08 18:10:26 +00:00
2021-05-30 19:25:33 +00:00
Requirements:
- `pwqgen` (optional)
- `pwgen` (optional)
- `curl`
- `docker`
2021-05-30 20:06:22 +00:00
- `bash` >= 4
2021-05-30 19:25:33 +00:00
2021-03-15 08:34:38 +00:00
Install the latest stable release:
2020-09-22 11:05:23 +00:00
```sh
2020-10-25 20:08:03 +00:00
curl https://install.abra.autonomic.zone | bash
2020-09-22 11:05:23 +00:00
```
2021-03-02 10:53:55 +00:00
2021-03-15 08:34:38 +00:00
or the bleeding-edge development version:
```sh
curl https://install.abra.autonomic.zone | bash -s -- --dev
```
2021-04-01 20:34:51 +00:00
The source for this script is [here ](./deploy/install.abra.autonomic.zone/installer ).
2021-03-04 15:31:18 +00:00
2021-03-15 08:34:38 +00:00
## Update
Run `abra upgrade` to automatically download and install the latest release
2021-03-16 06:00:23 +00:00
version.
To update the development version, run `abra upgrade --dev` .
2021-03-15 08:34:38 +00:00
2021-03-02 10:53:55 +00:00
## Hack
2021-03-17 11:50:02 +00:00
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.
2021-03-15 08:34:38 +00:00
2021-03-15 09:07:17 +00:00
Please remember to update the [CHANGELOG ](./CHANGELOG.md ) when you make a change.
2021-03-15 08:34:38 +00:00
2021-04-18 15:46:33 +00:00
## Generating a new apps.json
2021-04-02 14:05:31 +00:00
You'll need to install the following requirements:
- [requests ](https://docs.python-requests.org/en/master/ ) (`apt install python3-requests` / `pip install requests` )
2021-04-02 14:13:07 +00:00
- [skopeo ](https://github.com/containers/skopeo ) (check [the install docs ](https://github.com/containers/skopeo/blob/master/install.md ))
2021-04-02 14:11:36 +00:00
- [jq ](https://stedolan.github.io/jq/tutorial/ ) (`sudo apt-get install jq` or see [the install docs ](https://stedolan.github.io/jq/download/ ))
2021-04-02 14:13:07 +00:00
- [yq ](https://mikefarah.gitbook.io/yq/ ) (see [the install docs ](https://mikefarah.gitbook.io/yq/#install ))
2021-04-02 14:05:31 +00:00
2021-04-18 15:42:42 +00:00
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 ).
2021-04-02 14:05:31 +00:00
2021-04-02 13:53:08 +00:00
## Releasing
### `abra`
2021-03-17 11:59:09 +00:00
2021-04-18 15:48:36 +00:00
> [install.abra.autonomic.zone](https://install.abra.autonomic.zone)
2021-03-17 11:59:09 +00:00
- Change the `x.x.x` header in [CHANGELOG.md ](./CHANGELOG.md ) to reflect new version and mark date
2021-04-02 13:53:08 +00:00
- Update the version in [abra ](./abra )
2021-04-02 13:55:29 +00:00
- Update the version in [deploy/install.abra.autonomic.zone/installer ](./deploy/install.abra.autonomic.zone/installer )
2021-03-17 11:59:09 +00:00
- `git commit` the above changes and then tag it with `git tag <your-new-version>`
2021-04-02 13:56:15 +00:00
- `git push` and `git push --tags`
2021-04-02 13:53:08 +00:00
- Deploy a new installer script `make release-installer`
2021-04-02 13:55:29 +00:00
- Tell the world (CoTech forum, Matrix public channel, Autonomic mastodon, etc.)
2021-04-02 13:38:49 +00:00
2021-04-18 15:42:42 +00:00
### apps.coopcloud.tech
2021-04-02 13:38:49 +00:00
2021-04-18 15:42:42 +00:00
> [apps.coopcloud.tech](https://apps.coopcloud.tech)
2021-04-02 13:38:49 +00:00
```bash
2021-04-18 15:44:44 +00:00
$ make release-apps
2021-04-02 13:38:49 +00:00
```