0e29e78144
Closes #147
102 lines
3.7 KiB
Markdown
102 lines
3.7 KiB
Markdown
# 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
|
|
|
|
Requirements:
|
|
|
|
- `pwqgen` (optional)
|
|
- `pwgen` (optional)
|
|
- `curl`
|
|
- `docker`
|
|
- Bash >= 4
|
|
|
|
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 <your-new-version>`
|
|
- `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
|
|
```
|