From b042d128fca1dd996f24c31fd6ccf6ca7e13541a Mon Sep 17 00:00:00 2001 From: 3wc <3wc.git@doesthisthing.work> Date: Tue, 22 Sep 2020 17:48:14 +0200 Subject: [PATCH] Initial import --- .envrc.sample | 4 ++++ .gitignore | 1 + README.md | 19 +++++++++++++++++++ compose.yml | 27 +++++++++++++++++++++++++++ 4 files changed, 51 insertions(+) create mode 100644 .envrc.sample 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..d48b429 --- /dev/null +++ b/.envrc.sample @@ -0,0 +1,4 @@ +export SERVICE=selfoss +export DOMAIN=reader.example.com +export STACK_NAME=selfoss +export LETS_ENCRYPT_ENV=production 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..e1e210c --- /dev/null +++ b/README.md @@ -0,0 +1,19 @@ +# selfoss + +[Selfoss][selfoss] RSS reader using Coöp Cloud ♥ + +NOTE: this set-up currently has NO AUTHENTICATION and is probably not ready for +production use. + +1. Set up Docker Swarm and [`abra`][abra] +2. Deploy [`compose-stacks/traefik`][compose-traefik] +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` +8. Open the configured domain in your browser to finish set-up + +[selfoss]: https://www.selfoss.aditu.de/ +[abra]: https://git.autonomic.zone/autonomic-cooperative/abra +[compose-traefik]: https://git.autonomic.zone/compose-stacks/traefik diff --git a/compose.yml b/compose.yml new file mode 100644 index 0000000..cd8c989 --- /dev/null +++ b/compose.yml @@ -0,0 +1,27 @@ +version: '3.3' + +services: + selfoss: + image: akito13/selfoss + volumes: + - selfoss:/selfoss/data + networks: + - proxy + deploy: + labels: + - traefik.enable=true + - traefik.docker.network=proxy + - traefik.http.routers.${STACK_NAME}-http.rule=Host(`${DOMAIN?Variable not set}`) + - traefik.http.routers.${STACK_NAME}-http.entrypoints=web + - traefik.http.routers.${STACK_NAME}-https.rule=Host(`${DOMAIN?Variable not set}`) + - traefik.http.routers.${STACK_NAME}-https.entrypoints=web-secure + - traefik.http.routers.${STACK_NAME}-https.tls=true + - traefik.http.routers.${STACK_NAME}-https.tls.certresolver=${LETS_ENCRYPT_ENV} + - traefik.http.services.${STACK_NAME}.loadbalancer.server.port=8888 + +networks: + proxy: + external: true + +volumes: + selfoss: