about summary refs log tree commit diff
path: root/bundles/go-away
diff options
context:
space:
mode:
authorRobert Günzler <r@gnzler.io>2025-09-07 17:32:13 +0200
committerRobert Günzler <r@gnzler.io>2025-09-07 17:42:42 +0200
commit38be6c13f76e893cf47636257071b440dec0c5b2 (patch)
treef7ded3235a7e3362cbd1ed3d91523968fe0faf90 /bundles/go-away
initial commit
Signed-off-by: Robert Günzler <r@gnzler.io>
Diffstat (limited to 'bundles/go-away')
-rwxr-xr-xbundles/go-away/files/go-away.run18
-rw-r--r--bundles/go-away/files/traefik.yaml28
-rw-r--r--bundles/go-away/items.py41
-rw-r--r--bundles/go-away/metadata.py5
4 files changed, 92 insertions, 0 deletions
diff --git a/bundles/go-away/files/go-away.run b/bundles/go-away/files/go-away.run
new file mode 100755
index 0000000..376fbb2
--- /dev/null
+++ b/bundles/go-away/files/go-away.run
@@ -0,0 +1,18 @@
+#!/bin/sh
+set -eux
+
+cd /var/lib/go-away || exit 1
+
+test -d examples
+test -d examples/snippets
+test -f examples/generic.yml
+
+exec ./go-away \
+	--bind 0.0.0.0:${node.metadata.get("go-away/port")} \
+	--backend gzr.im="http://${node.metadata.get("container_gateway", "10.89.0.1")}:${node.metadata.get("www/gzr-im/port")}" \
+	--backend gnzler.de="http://${node.metadata.get("container_gateway", "10.89.0.1")}:${node.metadata.get("www/gzr-im/port")}" \
+	--backend gnzler.io="http://${node.metadata.get("container_gateway", "10.89.0.1")}:${node.metadata.get("www/gzr-im/port")}" \
+	--backend gonca.me="http://${node.metadata.get("container_gateway","10.89.0.1")}:${node.metadata.get("www/gonca-me/port")}" \
+	--policy examples/generic.yml \
+	--policy-snippets examples/snippets/ \
+	--challenge-template anubis
diff --git a/bundles/go-away/files/traefik.yaml b/bundles/go-away/files/traefik.yaml
new file mode 100644
index 0000000..e44a842
--- /dev/null
+++ b/bundles/go-away/files/traefik.yaml
@@ -0,0 +1,28 @@
+http:
+  services:
+    go-away:
+      loadBalancer:
+        servers:
+          - url: http://${node.metadata.get("container_gateway", "10.89.0.1")}:${node.metadata.get("go-away/port")}
+
+  routers:
+    gzr-im:
+      rule: Host(`gzr.im`) || Host(`gnzler.io`) || Host(`gnzler.de`)
+      entryPoints:
+        - http
+        - https
+      service: go-away
+      middlewares:
+        - tls-redirect@file
+      tls:
+        certResolver: le
+    gonca-me:
+      rule: Host(`gonca.me`)
+      entryPoints:
+        - http
+        - https
+      service: go-away
+      middlewares:
+        - tls-redirect@file
+      tls:
+        certResolver: le
diff --git a/bundles/go-away/items.py b/bundles/go-away/items.py
new file mode 100644
index 0000000..904b922
--- /dev/null
+++ b/bundles/go-away/items.py
@@ -0,0 +1,41 @@
+
+# local_deploy = {
+#     "/usr/bin/go-away": {
+#         "command": "make build",
+#         "cwd": "/home/robert/src/go-away",
+#         "artifact": "go-away",
+#         "content_hash": "335fc3b7868f3610dbe8397021501c465ee2627c",
+#     },
+# }
+
+directories = {
+    "/var/lib/go-away": {
+        "mode": "0775",
+        "group": "wheel",
+        "owner": "nobody",
+    },
+}
+
+files = {
+    "/etc/service/go-away.run": {
+        "content_type": "mako",
+        "mode": "0755",
+        "triggers": {"svc_s6rc:go-away:restart"},
+    },
+
+    "/etc/traefik/go-away.yaml": {
+        "content_type": "mako",
+        "source": "traefik.yaml",
+        "needs": {
+            "bundle:traefik",
+        },
+    },
+
+}
+
+svc_s6rc = {
+    "go-away": {
+        "bundle": "services",
+        "generate": "service",
+    }
+}
diff --git a/bundles/go-away/metadata.py b/bundles/go-away/metadata.py
new file mode 100644
index 0000000..5160f64
--- /dev/null
+++ b/bundles/go-away/metadata.py
@@ -0,0 +1,5 @@
+defaults = {
+    "apk": {
+        "packages": {},
+    },
+}