From 5a6b0c4903b4e4c9d6ddd58b2fa5daed1cffc2f4 Mon Sep 17 00:00:00 2001 From: 3wc <3wc.git@doesthisthing.work> Date: Sat, 26 Sep 2020 11:12:24 +0200 Subject: [PATCH] Initial import --- .envrc.sample | 4 ++++ .gitea/template | 2 ++ .gitignore | 1 + README.md | 17 +++++++++++++++++ compose.yml | 29 +++++++++++++++++++++++++++++ 5 files changed, 53 insertions(+) create mode 100644 .envrc.sample create mode 100644 .gitea/template create mode 100644 .gitignore create mode 100644 README.md create mode 100644 compose.yml diff --git a/.envrc.sample b/.envrc.sample new file mode 100644 index 0000000..3c28b48 --- /dev/null +++ b/.envrc.sample @@ -0,0 +1,4 @@ +export SERVICE=${REPO_NAME_SNAKE} +export DOMAIN=${REPO_NAME_KEBAB}.example.com +export STACK_NAME=${REPO_NAME_SNAKE} +export LETS_ENCRYPT_ENV=production diff --git a/.gitea/template b/.gitea/template new file mode 100644 index 0000000..72111ff --- /dev/null +++ b/.gitea/template @@ -0,0 +1,2 @@ +/README.md +/.envrc.sample 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..53bd57e --- /dev/null +++ b/README.md @@ -0,0 +1,17 @@ +# ${REPO_NAME_TITLE} + +${REPO_DESCRIPTION} + +## Basic usage + +1. Set up Docker Swarm and [`abra`] +2. Deploy [`compose-stacks/traefik`] +3. `git clone ${REPO_HTTPS_URL} && cd ${REPO_NAME}` +3. `cp .envrc.sample .envrc` +4. Edit `.envrc` - be sure to change `$DOMAIN` to something that resolves to + your Docker swarm box +5. `direnv allow` (or `. .envrc`) +6. `abra deploy` + +[`abra`]: https://git.autonomic.zone/autonomic-cooperative/abra +[`compose-stacks/traefik`]: https://git.autonomic.zone/compose-stacks/traefik diff --git a/compose.yml b/compose.yml new file mode 100644 index 0000000..81fcc49 --- /dev/null +++ b/compose.yml @@ -0,0 +1,29 @@ +--- +version: "3.8" + +services: + app: + image: nginx:1.19.2 + networks: + - proxy + deploy: + restart_policy: + condition: on-failure + labels: + - "traefik.enable=true" + - "traefik.docker.network=proxy" + - "traefik.http.routers.${STACK_NAME}.tls=true" + - "traefik.http.services.${STACK_NAME}.loadbalancer.server.port=80" + - "traefik.http.routers.${STACK_NAME}.rule=Host(`${DOMAIN}`)" + - "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}" + - "traefik.http.routers.${STACK_NAME}.entrypoints=web-secure" + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost"] + interval: 30s + timeout: 10s + retries: 10 + start_period: 1m + +networks: + proxy: + external: true