# abra [![Build Status](https://drone.autonomic.zone/api/badges/autonomic-cooperative/abra/status.svg)](https://drone.autonomic.zone/autonomic-cooperative/abra) Docker stack magic 🎩🐇 ## Install ```sh curl -fsSL https://install.abra.autonomic.zone | bash ``` Specific releases are available via the project [release page](https://git.autonomic.zone/autonomic-cooperative/abra/releases). ## Changes See [CHANGELOG.md](./CHANGELOG.md). ## Hacking ```sh git clone ssh://git@git.autonomic.zone:2222/autonomic-cooperative/abra.git cd abra make dev_install ``` See [autonomic-cooperative/installer-scripts](https://git.autonomic.zone/autonomic-cooperative/installer-scripts) for the installer script deployment. To make a release, just add an entry to [CHANGELOG.md](./CHANGELOG.md) and bump the version in [abra-installer](./script.d/abra-installer) (following [semver](https://semver.org/) please) and then `git tag x.x.x && git push origin main --tags`. If you want the [installer-scripts](https://git.autonomic.zone/autonomic-cooperative/installer-scripts) deployment to pick that up, you'll need to change the version number in the [Makefile](https://git.autonomic.zone/autonomic-cooperative/installer-scripts/src/branch/main/Makefile) and run `make` in that repository and push the changes. ## Specify what to deploy where You can use `abra` in one of 2 ways: 1. Clone a `compose-stack`, create an `.envrc` in it, and run `abra` in that directory. Be sure to set `ABRA_STACK_DIR=.` 2. "Monorepo mode": keep all your `compose-stack`s in one directory and all your `env` files in another, e.g.: ``` $ tree . ├── apps │   ├── mediawiki.demo.autonomic.zone.env │   ├── wordpress.demo.autonomic.zone.env └── stacks ├── gitea ├── matrix-synapse ├── mediawiki ├── nextcloud ├── swarmpit ├── traefik └── wordpress $ abra -e apps/mediawiki.demo.autonomic.zone.env deploy ``` ## Examples - `abra run mariadb mysqldump gitea -p'GdIbMeS09SURRktBnm3jcTufsL5z0MPd' | gzip > ../git.autonomic.zone_mariadb_`date +%F`.sql.gz`