The Co-op Cloud command-line utility belt 🎩🐇
Go to file
2021-09-07 13:01:22 +02:00
.chglog chore: added git-chglog options 2021-07-15 01:18:34 +01:00
cli docs: lower case that [ci skip] 2021-09-07 09:13:13 +02:00
cmd/abra docs: document main package 2021-09-05 00:19:20 +02:00
pkg fix: get app new working again 2021-09-07 08:12:37 +02:00
scripts/installer build: add installer script 2021-09-07 13:01:22 +02:00
tests/resources tests: around 60% code coverage for config package 2021-07-19 14:36:00 +01:00
.drone.yml fix: use more descriptive name for token [ci skip] 2021-09-07 09:04:06 +02:00
.envrc.sample dosc: add gitea token [ci skip] 2021-09-07 09:01:26 +02:00
.gitignore feat: auto-release abra with goreleaser when a tag is pushed 2021-09-06 17:22:18 +02:00
.goreleaser.yml build: generate binaries directly 2021-09-07 10:49:51 +02:00
go.mod chore: update to golang 1.17 2021-09-07 07:21:52 +02:00
go.sum chore: update to golang 1.17 2021-09-07 07:21:52 +02:00
Makefile fix: drop file for version handling [ci skip] 2021-09-07 09:39:12 +02:00
README.md docs: explain further our understanding of versioning 2021-09-07 10:55:30 +02:00
TODO.md docs: shuffle TODOs from my side [ci skip] 2021-09-03 11:59:35 +02:00

abra

https://coopcloud.tech

Build Status Go Report Card

The Co-op Cloud utility belt 🎩🐇

abra is a command-line tool for managing your own Co-op Cloud. 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.

Install

Arch-based Linux Distros

abra (coming-soon) or for the latest version on git abra-git

yay -S abra-git # or abra

Debian-based Linux Distros

Coming Soon

Homebrew

Coming Soon

Build from source

git clone https://git.coopcloud.tech/coop-cloud/abra
cd abra
go env -w GOPRIVATE=coopcloud.tech
make install

The abra binary will be in $GOPATH/bin.

Hacking

Install direnv, run cp .envrc.sample .envrc, then run direnv allow in this directory. This will set coopcloud repos as private due to this bug.. Or you can run go env -w GOPRIVATE=coopcloud.tech but I'm not sure how persistent this is.

Install Go >= 1.16 and then:

  • make build to build
  • ./abra to run commands
  • make test will run tests

Our Drone CI configuration runs a number of sanity on each pushed commit. See the Makefile for more handy targets.

Please use the conventional commit format for your commits so we can automate our change log.

Versioning

We use goreleaser to help us automate releases. We use semver for versioning all releases of the tool. While we are still in the public alpha release phase, we will maintain a 0.y.z-alpha format. Change logs are generated from our commit logs. We are still working this out and aim to refine our release praxis as we go.

For developers, while using this -alpha format, the y part is the "major" version part. So, if you make breaking changes, you increment that and not the x part. So, if you're on 0.1.0-alpha, then you'd go to 0.1.1-alpha for a backwards compatible change and 0.2.0-alpha for a backwards incompatible change.

Fork maintenance

We maintain a fork of godotenv for two features:

  1. multi-line env var support
  2. inline comment parsing

You can upgrade the version here by running go get github.com/Autonomic-Cooperative/godotenv@<commit> where <commit> is the latest commit you want to pin to. We are aiming to migrate to YAML format for the environment configuration, so this should only be a temporary thing.