Compare commits

..

2 Commits

Author SHA1 Message Date
devydave d79d4ab12d refactor: add seperate entrypoint for plugin init
continuous-integration/drone/pr Build is failing
2026-07-03 13:10:52 +02:00
devydave 536d958468 feat: adds iocaine config
continuous-integration/drone/pr Build is failing
2026-06-26 12:12:02 +02:00
11 changed files with 80 additions and 34 deletions
-7
View File
@@ -15,13 +15,6 @@ LOG_MAX_AGE=1
# This is here so later lines can extend it; you likely don't wanna edit
COMPOSE_FILE="compose.yml"
# Increase read timeout (or change it to 0s) to ensure large file
# uploads work.
#
# https://doc.traefik.io/traefik/reference/install-configuration/entrypoints/#opt-transport-respondingTimeouts-readTimeout
READ_TIMEOUT=60s
WRITE_TIMEOUT=0s
#####################################################################
# General settings #
#####################################################################
+3 -2
View File
@@ -1,3 +1,4 @@
export TRAEFIK_YML_VERSION=v32
export FILE_PROVIDER_YML_VERSION=v12
export ENTRYPOINT_VERSION=v5
export FILE_PROVIDER_YML_VERSION=v13
export ENTRYPOINT_VERSION=v7
export IOCAINE_ENTRYPOINT_VERSION=v1
-1
View File
@@ -5,7 +5,6 @@ services:
deploy:
labels:
- "traefik.http.middlewares.anubis.forwardauth.address=http://anubis:8080/.within.website/x/cmd/anubis/api/check"
- "traefik.http.middlewares.anubis.forwardauth.trustForwardHeader=true"
anubis:
image: "ghcr.io/techarohq/anubis:v1.25.0"
environment:
+25
View File
@@ -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:
+10 -5
View File
@@ -3,7 +3,7 @@ version: "3.8"
services:
app:
image: "traefik:v3.7.8"
image: "traefik:v3.7.5"
# Note(decentral1se): *please do not* add any additional ports here.
# Doing so could break new installs with port conflicts. Please use
# the usual `compose.$app.yml` approach for any additional ports
@@ -27,6 +27,9 @@ services:
- source: entrypoint
target: /custom-entrypoint.sh
mode: 0555
- source: iocaine_entrypoint
target: /entrypoint.iocaine.sh
mode: 0555
networks:
- proxy
- internal
@@ -34,8 +37,6 @@ services:
- DASHBOARD_ENABLED
- LOG_LEVEL
- ${LOG_MAX_AGE:-0}
- READ_TIMEOUT=${READ_TIMEOUT:-60s}
- WRITE_TIMEOUT=${WRITE_TIMEOUT:-0s}
healthcheck:
test: ["CMD", "traefik", "healthcheck"]
interval: 30s
@@ -57,12 +58,12 @@ services:
- "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}"
- "traefik.http.routers.${STACK_NAME}.service=api@internal"
- "traefik.http.routers.${STACK_NAME}.middlewares=security@file"
- "coop-cloud.${STACK_NAME}.version=6.0.0+v3.7.7"
- "coop-cloud.${STACK_NAME}.version=5.1.1+v3.6.15"
- "coop-cloud.${STACK_NAME}.timeout=${TIMEOUT}"
- "backupbot.backup=${ENABLE_BACKUPS:-true}"
socket-proxy:
image: lscr.io/linuxserver/socket-proxy:3.4.2
image: lscr.io/linuxserver/socket-proxy:3.4.0
deploy:
endpoint_mode: dnsrr
environment:
@@ -117,6 +118,10 @@ configs:
name: ${STACK_NAME}_entrypoint_${ENTRYPOINT_VERSION}
file: entrypoint.sh.tmpl
template_driver: golang
iocaine_entrypoint:
name: ${STACK_NAME}_entrypoint_${IOCAINE_ENTRYPOINT_VERSION}
file: entrypoint.iocaine.sh.tmpl
template_driver: golang
volumes:
letsencrypt:
+15
View File
@@ -0,0 +1,15 @@
#!/bin/sh
set -e
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)
exit 0
+4
View File
@@ -15,4 +15,8 @@ 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" }}
/entrypoint.iocaine.sh
{{ end }}
/entrypoint.sh "$@"
+10 -1
View File
@@ -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 }}
{{ end }}
-13
View File
@@ -1,13 +0,0 @@
!Breaking: Starting with v3.6.16, the Docker provider requires Docker API version v1.40 or above (Docker Engine v19.03). Users running older (end of life) versions of Docker Engine should update their Docker Engine or use the DOCKER_API_VERSION environment variable to override the API version used by Traefik.
letsencrypt: Avoid HTTP-01 challenge if `LETS_ENCRYPT_DNS_CHALLENGE_ENABLED` is set, in order to rely on DNS-01 challenges for servers not exposed to the internet.
matrix-federation: Entrypoint was changed to :8448 to match published port
fix: ensure large uploads work. You can now set the following env vars:
- READ_TIMEOUT
- WRITE_TIMEOUT
cloudflare: Add Cloudflare as DNS provider
For more information take a look at the migration guide: https://doc.traefik.io/traefik/v3.7/migrate/v3/#v377
+1
View File
@@ -0,0 +1 @@
letsencrypt: Avoid HTTP-01 challenge if `LETS_ENCRYPT_DNS_CHALLENGE_ENABLED` is set, in order to rely on DNS-01 challenges for servers not exposed to the internet.
+12 -5
View File
@@ -33,10 +33,6 @@ entrypoints:
to: web-secure
web-secure:
address: ":443"
transport:
respondingTimeouts:
readTimeout: {{ env "READ_TIMEOUT" }}
writeTimeout: {{ env "WRITE_TIMEOUT" }}
http:
encodedCharacters:
allowEncodedSlash: true
@@ -46,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"
@@ -100,7 +100,7 @@ entrypoints:
{{- end }}
{{- if eq (env "MATRIX_FEDERATION_ENABLED") "1" }}
matrix-federation:
address: ":8448"
address: ":9001"
{{- end }}
{{- if eq (env "NEXTCLOUD_TALK_HPB_ENABLED") "1" }}
nextcloud-talk-hpb:
@@ -157,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 }}