abra/README.md

57 lines
2.1 KiB
Markdown

# 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) (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`