From 521fdad8ef51e292049c467b8e8c4991bc4e81dc Mon Sep 17 00:00:00 2001 From: Ben Armstead Date: Wed, 8 Jul 2026 11:42:06 +0100 Subject: [PATCH] add Ploro, App hosting New template ploro.dev.hosting.json: one-click custom-subdomain connection for the Ploro app-hosting platform (routing CNAME + Cloudflare-for-SaaS ownership and ACME DCV TXT records). hostRequired; warnPhishing (unsigned synchronous apply). Co-Authored-By: Claude Opus 4.8 (1M context) --- ploro.dev.hosting.json | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 ploro.dev.hosting.json diff --git a/ploro.dev.hosting.json b/ploro.dev.hosting.json new file mode 100644 index 00000000..8fb5195b --- /dev/null +++ b/ploro.dev.hosting.json @@ -0,0 +1,20 @@ +{ + "providerId": "ploro.dev", + "providerName": "Ploro", + "serviceId": "hosting", + "serviceName": "App hosting", + "version": 1, + "logoUrl": "https://ploro.dev/favicon.ico", + "description": "Connects a domain to an app built on Ploro: routes traffic to the app and pre-validates its HTTPS certificate.", + "variableDescription": "target: the Cloudflare-for-SaaS routing hostname the CNAME points to. owntxt: the custom-hostname ownership token. dcv1/dcv2: the ACME (DCV) certificate-validation tokens. All four values are issued per hostname by Ploro and passed on the apply URL.", + "warnPhishing": true, + "syncBlock": false, + "syncRedirectDomain": "ploro.dev", + "hostRequired": true, + "records": [ + { "type": "CNAME", "host": "@", "pointsTo": "%target%", "ttl": 3600 }, + { "type": "TXT", "host": "_cf-custom-hostname", "data": "%owntxt%", "ttl": 600, "txtConflictMatchingMode": "All" }, + { "type": "TXT", "host": "_acme-challenge", "data": "%dcv1%", "ttl": 600, "txtConflictMatchingMode": "All" }, + { "type": "TXT", "host": "_acme-challenge", "data": "%dcv2%", "ttl": 600, "txtConflictMatchingMode": "All" } + ] +}