From 536d95846890e870207fb1e610ced6ed7cc834fb Mon Sep 17 00:00:00 2001 From: devydave Date: Fri, 26 Jun 2026 12:12:02 +0200 Subject: [PATCH] feat: adds iocaine config --- abra.sh | 6 +++--- compose.iocaine.yml | 25 +++++++++++++++++++++++++ entrypoint.sh.tmpl | 12 ++++++++++++ file-provider.yml.tmpl | 11 ++++++++++- traefik.yml.tmpl | 11 +++++++++++ 5 files changed, 61 insertions(+), 4 deletions(-) create mode 100644 compose.iocaine.yml diff --git a/abra.sh b/abra.sh index 9a1fab8..41f8e52 100644 --- a/abra.sh +++ b/abra.sh @@ -1,3 +1,3 @@ -export TRAEFIK_YML_VERSION=v31 -export FILE_PROVIDER_YML_VERSION=v12 -export ENTRYPOINT_VERSION=v5 +export TRAEFIK_YML_VERSION=v32 +export FILE_PROVIDER_YML_VERSION=v13 +export ENTRYPOINT_VERSION=v6 diff --git a/compose.iocaine.yml b/compose.iocaine.yml new file mode 100644 index 0000000..cd0732e --- /dev/null +++ b/compose.iocaine.yml @@ -0,0 +1,25 @@ +--- +version: "3.8" + +services: + app: + environment: + IOCAINE_ENABLE: "1" + IOCAINE_PLUGIN_VERSION: "v1.2.0" + volumes: + - "plugins-local:/plugins-local" + + iocaine: + image: "git.madhouse-project.org/iocaine/iocaine:3.5.0" + environment: + RUST_LOG: "iocaine=info" + ports: + - target: 42069 + published: 42069 + protocol: tcp + mode: host + networks: + - proxy + +volumes: + plugins-local: diff --git a/entrypoint.sh.tmpl b/entrypoint.sh.tmpl index 8da044b..d930f78 100644 --- a/entrypoint.sh.tmpl +++ b/entrypoint.sh.tmpl @@ -15,4 +15,16 @@ export DO_AUTH_TOKEN=$(cat "$DO_AUTH_TOKEN_FILE") export AZURE_CLIENT_SECRET=$(cat "$AZURE_CLIENT_SECRET_FILE") {{ end }} +{{ if eq (env "IOCAINE_ENABLE") "1" }} +apk --no-cache add git go +iocaine_path="/plugins-local/src/git.mstar.dev/mstar/traefik-iocaine-middleware" +if [ ! -d "$iocaine_path" ]; then + git clone --depth 1 --branch $IOCAINE_PLUGIN_VERSION https://git.mstar.dev/mstar/traefik-iocaine-middleware.git $iocaine_path +else + git -C $iocaine_path fetch origin 'refs/tags/*:refs/tags/*' + git -C $iocaine_path checkout tags/$IOCAINE_PLUGIN_VERSION +fi +(cd $iocaine_path && go mod vendor) +{{ end }} + /entrypoint.sh "$@" diff --git a/file-provider.yml.tmpl b/file-provider.yml.tmpl index 6bab128..a180ecd 100644 --- a/file-provider.yml.tmpl +++ b/file-provider.yml.tmpl @@ -17,6 +17,15 @@ http: authResponseHeaders: - X-Forwarded-User {{ end }} + {{ if eq (env "IOCAINE_ENABLE") "1" }} + iocaine: + plugin: + iocaine: + iocaineHttpUrl: "http://iocaine:42069" + methods: + - GET + - HEAD + {{ end }} {{ if eq (env "BASIC_AUTH") "1" }} basicauth: basicAuth: @@ -61,4 +70,4 @@ tls: certificates: - certFile: /run/secrets/ssl_cert keyFile: /run/secrets/ssl_key - {{ end }} \ No newline at end of file + {{ end }} diff --git a/traefik.yml.tmpl b/traefik.yml.tmpl index 0ad4a07..a4c0a68 100644 --- a/traefik.yml.tmpl +++ b/traefik.yml.tmpl @@ -42,6 +42,10 @@ entrypoints: allowEncodedPercent: true allowEncodedQuestionMark: true allowEncodedHash: true + {{- if eq (env "IOCAINE_ENABLE") "1" }} + middlewares: + - iocaine@file + {{- end }} {{- if eq (env "GITEA_SSH_ENABLED") "1" }} gitea-ssh: address: ":2222" @@ -153,3 +157,10 @@ certificatesResolvers: - "1.1.1.1:53" - "9.9.9.9:53" {{- end }} + +{{ if eq (env "IOCAINE_ENABLE") "1" }} +experimental: + localPlugins: + iocaine: + moduleName: git.mstar.dev/mstar/traefik-iocaine-middleware +{{ end }} -- 2.52.0