commit caf4bdfe05343bc4bb312a45ee9256f0e06f4f40 Author: 3wc <3wc.git@doesthisthing.work> Date: Sun May 2 12:45:18 2021 +0200 Initial working version diff --git a/.env.sample b/.env.sample new file mode 100644 index 0000000..18b85d5 --- /dev/null +++ b/.env.sample @@ -0,0 +1,9 @@ +TYPE=minio + +DOMAIN=minio.example.com +## Domain aliases +#EXTRA_DOMAINS=', `www.minio.example.com`' +LETS_ENCRYPT_ENV=production + +SECRET_SECRET_KEY_VERSION=v1 # length=20 +SECRET_ACCESS_KEY_VERSION=v1 # length=40 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..37b52cc --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/.envrc diff --git a/README.md b/README.md new file mode 100644 index 0000000..b3f613d --- /dev/null +++ b/README.md @@ -0,0 +1,28 @@ +# minio + +${REPO_DESCRIPTION} + + +* **Category**: +* **Status**: +* **Image**: [`minio`](https://hub.docker.com/r/minio/minio) +* **Healthcheck**: +* **Backups**: +* **Email**: +* **Tests**: +* **SSO**: + + +## Basic usage + +1. Set up Docker Swarm and [`abra`] +2. Deploy [`coop-cloud/traefik`] +3. `abra app new minio --secrets` (optionally with `--pass` if you'd like + to save secrets in `pass`) +4. `abra app YOURAPPDOMAIN config` - be sure to change `$DOMAIN` to something that resolves to + your Docker swarm box +5. `abra app YOURAPPDOMAIN deploy` +6. Open the configured domain in your browser to finish set-up + +[`abra`]: https://git.autonomic.zone/autonomic-cooperative/abra +[`coop-cloud/traefik`]: https://git.autonomic.zone/coop-cloud/traefik diff --git a/compose.yml b/compose.yml new file mode 100644 index 0000000..e12fc18 --- /dev/null +++ b/compose.yml @@ -0,0 +1,49 @@ +--- +version: "3.8" + +services: + app: + image: minio/minio:RELEASE.2021-04-22T15-44-28Z + volumes: + - minio-data:/export + networks: + - proxy + deploy: + restart_policy: + delay: 10s + max_attempts: 10 + window: 60s + labels: + - "traefik.enable=true" + - "traefik.http.services.${STACK_NAME}.loadbalancer.server.port=9000" + - "traefik.http.routers.${STACK_NAME}.rule=Host(`${DOMAIN}`${EXTRA_DOMAINS})" + - "traefik.http.routers.${STACK_NAME}.entrypoints=web-secure" + - "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}" + ## Redirect from EXTRA_DOMAINS to DOMAIN + #- "traefik.http.routers.${STACK_NAME}.middlewares=${STACK_NAME}-redirect" + #- "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLForceHost=true" + #- "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLHost=${DOMAIN}" + command: server /export + secrets: + - secret_key + - access_key + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] + interval: 30s + timeout: 20s + retries: 3 + +networks: + proxy: + external: true + +volumes: + minio-data: + +secrets: + secret_key: + external: true + name: ${STACK_NAME}_secret_key_${SECRET_SECRET_KEY_VERSION} + access_key: + external: true + name: ${STACK_NAME}_access_key_${SECRET_ACCESS_KEY_VERSION}