From e61d8543b851018374aeeb64594b0d83f052cbca Mon Sep 17 00:00:00 2001 From: drmathias Date: Thu, 6 Nov 2025 15:19:58 +0000 Subject: [PATCH] feat: set up convertx --- convertx/docker-compose.yml | 12 ++++++++++++ gateway/caddy/Caddyfile | 6 ++++++ gateway/cloudflare-ddns/config.json | 4 ++++ gateway/dashboard/assets/icons/convertx.png | Bin 0 -> 23526 bytes gateway/dashboard/index.html | 8 ++++++++ 5 files changed, 30 insertions(+) create mode 100644 convertx/docker-compose.yml create mode 100644 gateway/dashboard/assets/icons/convertx.png diff --git a/convertx/docker-compose.yml b/convertx/docker-compose.yml new file mode 100644 index 0000000..26f05d6 --- /dev/null +++ b/convertx/docker-compose.yml @@ -0,0 +1,12 @@ +name: convertx +services: + app: + image: ghcr.io/c4illin/convertx + container_name: convertx + restart: unless-stopped + ports: + - "8033:3000" + environment: + - ALLOW_UNAUTHENTICATED=true + volumes: + - ./data:/app/data diff --git a/gateway/caddy/Caddyfile b/gateway/caddy/Caddyfile index 78176bc..a437805 100644 --- a/gateway/caddy/Caddyfile +++ b/gateway/caddy/Caddyfile @@ -45,6 +45,12 @@ www.64815139.xyz { redir https://www.{host}{uri} } +convertx.64815139.xyz { + route { + reverse_proxy 192.168.0.216:8033 + } +} + gitea.64815139.xyz { route { rewrite /user/login /user/oauth2/Authelia diff --git a/gateway/cloudflare-ddns/config.json b/gateway/cloudflare-ddns/config.json index faf68d9..ed8a9b6 100644 --- a/gateway/cloudflare-ddns/config.json +++ b/gateway/cloudflare-ddns/config.json @@ -18,6 +18,10 @@ "name": "auth", "proxied": false }, + { + "name": "convertx", + "proxied": false + }, { "name": "gitea", "proxied": false diff --git a/gateway/dashboard/assets/icons/convertx.png b/gateway/dashboard/assets/icons/convertx.png new file mode 100644 index 0000000000000000000000000000000000000000..320d6ec555974989d91c0a5b25aecb4bad47ea44 GIT binary patch literal 23526 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

Hello {{.Req.Header.Get "Remote-Name"}}