<workflowJob _class='org.jenkinsci.plugins.workflow.job.WorkflowJob'><action></action><action></action><action></action><action></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.JobDisplayAction'><displayUrl>https://jenkins.younex.de/job/paas-platform/</displayUrl></action><action></action><action _class='com.cloudbees.plugins.credentials.ViewCredentialsAction'><stores></stores></action><description>dotnews-paas platform: lint every push to main and roll it out to the production paas server via paas-self-deploy (ci/Jenkinsfile.platform). Polls the repo every 2 minutes.</description><displayName>paas-platform</displayName><fullDisplayName>paas-platform</fullDisplayName><fullName>paas-platform</fullName><name>paas-platform</name><url>https://jenkins.younex.de/job/paas-platform/</url><buildable>true</buildable><build _class='org.jenkinsci.plugins.workflow.job.WorkflowRun'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.SCMTrigger$SCMTriggerCause'><shortDescription>Started by an SCM change</shortDescription></cause></action><action></action><action _class='org.jenkinsci.plugins.workflow.libs.LibrariesAction'></action><action></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>d0460cf8b806fe5466b38eb73b0b0a4907627e31</SHA1><branch><SHA1>d0460cf8b806fe5466b38eb73b0b0a4907627e31</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>d0460cf8b806fe5466b38eb73b0b0a4907627e31</SHA1><branch><SHA1>d0460cf8b806fe5466b38eb73b0b0a4907627e31</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>d0460cf8b806fe5466b38eb73b0b0a4907627e31</SHA1><branch><SHA1>d0460cf8b806fe5466b38eb73b0b0a4907627e31</SHA1><name>refs/remotes/origin/main</name></branch></lastBuiltRevision><remoteUrl>https://github.com/younex1/deploy-younex-web.git</remoteUrl><scmName></scmName></action><action></action><action _class='org.jenkinsci.plugins.workflow.cps.EnvActionImpl'></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><action _class='org.jenkinsci.plugins.pipeline.modeldefinition.actions.RestartDeclarativePipelineAction'></action><action></action><action _class='org.jenkinsci.plugins.workflow.job.views.FlowGraphAction'></action><action></action><action></action><action></action><building>false</building><description>d0460cf bootstrap: search.younex.de Caddy host for the Meilisearch site search (</description><displayName>#10</displayName><duration>6978</duration><estimatedDuration>12371</estimatedDuration><fullDisplayName>paas-platform #10</fullDisplayName><id>10</id><keepLog>false</keepLog><number>10</number><queueId>5825</queueId><result>FAILURE</result><timestamp>1791626349698</timestamp><url>https://jenkins.younex.de/job/paas-platform/10/</url><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>bootstrap.sh</affectedPath><commitId>d0460cf8b806fe5466b38eb73b0b0a4907627e31</commitId><timestamp>1791625695000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>bootstrap: search.younex.de Caddy host for the Meilisearch site search (VM 111)

Hand-written host next to panel.caddy so a golden-template refresh keeps it:
browsers reach only /multi-search, /indexes/*/search and /health; the admin
API is limited to the LAN and the cms.dotnews.media egress IP. Straight to
the VM, never through Varnish. Already live on VM 101 (2026-10-10).

Co-Authored-By: Claude Fable 5.1 &lt;noreply@anthropic.com&gt;
</comment><date>2026-10-10 11:48:15 +0200</date><id>d0460cf8b806fe5466b38eb73b0b0a4907627e31</id><msg>bootstrap: search.younex.de Caddy host for the Meilisearch site search (VM 111)</msg><path><editType>edit</editType><file>bootstrap.sh</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></culprit><inProgress>false</inProgress><previousBuild><number>9</number><url>https://jenkins.younex.de/job/paas-platform/9/</url></previousBuild></build><build _class='org.jenkinsci.plugins.workflow.job.WorkflowRun'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.SCMTrigger$SCMTriggerCause'><shortDescription>Started by an SCM change</shortDescription></cause></action><action></action><action _class='org.jenkinsci.plugins.workflow.libs.LibrariesAction'></action><action></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>870ef35315f9a5500dd2ce6fbb5b8e1002c3b116</SHA1><branch><SHA1>870ef35315f9a5500dd2ce6fbb5b8e1002c3b116</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>870ef35315f9a5500dd2ce6fbb5b8e1002c3b116</SHA1><branch><SHA1>870ef35315f9a5500dd2ce6fbb5b8e1002c3b116</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>870ef35315f9a5500dd2ce6fbb5b8e1002c3b116</SHA1><branch><SHA1>870ef35315f9a5500dd2ce6fbb5b8e1002c3b116</SHA1><name>refs/remotes/origin/main</name></branch></lastBuiltRevision><remoteUrl>https://github.com/younex1/deploy-younex-web.git</remoteUrl><scmName></scmName></action><action></action><action _class='org.jenkinsci.plugins.workflow.cps.EnvActionImpl'></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><action _class='org.jenkinsci.plugins.pipeline.modeldefinition.actions.RestartDeclarativePipelineAction'></action><action></action><action _class='org.jenkinsci.plugins.workflow.job.views.FlowGraphAction'></action><action></action><action></action><action></action><building>false</building><description>870ef35 golden template r27 (VMID 9031): port conflict detection baked in; r26 d</description><displayName>#9</displayName><duration>12848</duration><estimatedDuration>12371</estimatedDuration><fullDisplayName>paas-platform #9</fullDisplayName><id>9</id><keepLog>false</keepLog><number>9</number><queueId>5821</queueId><result>SUCCESS</result><timestamp>1791496387824</timestamp><url>https://jenkins.younex.de/job/paas-platform/9/</url><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>infra/golden-template.md</affectedPath><commitId>870ef35315f9a5500dd2ce6fbb5b8e1002c3b116</commitId><timestamp>1791496292000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@logyou.de</authorEmail><comment>golden template r27 (VMID 9031): port conflict detection baked in; r26 destroyed

Co-Authored-By: Claude Fable 5.1 &lt;noreply@anthropic.com&gt;
</comment><date>2026-10-08 23:51:32 +0200</date><id>870ef35315f9a5500dd2ce6fbb5b8e1002c3b116</id><msg>golden template r27 (VMID 9031): port conflict detection baked in; r26 destroyed</msg><path><editType>edit</editType><file>infra/golden-template.md</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></culprit><inProgress>false</inProgress><nextBuild><number>10</number><url>https://jenkins.younex.de/job/paas-platform/10/</url></nextBuild><previousBuild><number>8</number><url>https://jenkins.younex.de/job/paas-platform/8/</url></previousBuild></build><build _class='org.jenkinsci.plugins.workflow.job.WorkflowRun'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.SCMTrigger$SCMTriggerCause'><shortDescription>Started by an SCM change</shortDescription></cause></action><action></action><action _class='org.jenkinsci.plugins.workflow.libs.LibrariesAction'></action><action></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>8</buildNumber><marked><SHA1>b3eac39728b98ecd0a24508a1d160383aec84a2f</SHA1><branch><SHA1>b3eac39728b98ecd0a24508a1d160383aec84a2f</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>b3eac39728b98ecd0a24508a1d160383aec84a2f</SHA1><branch><SHA1>b3eac39728b98ecd0a24508a1d160383aec84a2f</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>b3eac39728b98ecd0a24508a1d160383aec84a2f</SHA1><branch><SHA1>b3eac39728b98ecd0a24508a1d160383aec84a2f</SHA1><name>refs/remotes/origin/main</name></branch></lastBuiltRevision><remoteUrl>https://github.com/younex1/deploy-younex-web.git</remoteUrl><scmName></scmName></action><action></action><action _class='org.jenkinsci.plugins.workflow.cps.EnvActionImpl'></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><action _class='org.jenkinsci.plugins.pipeline.modeldefinition.actions.RestartDeclarativePipelineAction'></action><action></action><action _class='org.jenkinsci.plugins.workflow.job.views.FlowGraphAction'></action><action></action><action></action><action></action><building>false</building><description>b3eac39 paas: port conflict detection for create/auto-assign + health-gate port </description><displayName>#8</displayName><duration>13444</duration><estimatedDuration>12371</estimatedDuration><fullDisplayName>paas-platform #8</fullDisplayName><id>8</id><keepLog>false</keepLog><number>8</number><queueId>5819</queueId><result>SUCCESS</result><timestamp>1791496147812</timestamp><url>https://jenkins.younex.de/job/paas-platform/8/</url><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>bin/paas</affectedPath><commitId>b3eac39728b98ecd0a24508a1d160383aec84a2f</commitId><timestamp>1791496068000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@logyou.de</authorEmail><comment>paas: port conflict detection for create/auto-assign + health-gate port guard on deploy

Every app owns PORT and PORT+1000 (health gate). 'paas create --port' now refuses a port
that another app uses as PORT or gate port, the panel port, or anything already bound on
the host, and auto-assignment skips those too; 'paas deploy' refuses to gate on a port
another process answers on. Found when kredible-sw was created on logship-landing's port
and the gate health-checked the wrong app.

Co-Authored-By: Claude Fable 5.1 &lt;noreply@anthropic.com&gt;
</comment><date>2026-10-08 23:47:48 +0200</date><id>b3eac39728b98ecd0a24508a1d160383aec84a2f</id><msg>paas: port conflict detection for create/auto-assign + health-gate port guard on deploy</msg><path><editType>edit</editType><file>bin/paas</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></culprit><inProgress>false</inProgress><nextBuild><number>9</number><url>https://jenkins.younex.de/job/paas-platform/9/</url></nextBuild><previousBuild><number>7</number><url>https://jenkins.younex.de/job/paas-platform/7/</url></previousBuild></build><build _class='org.jenkinsci.plugins.workflow.job.WorkflowRun'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.SCMTrigger$SCMTriggerCause'><shortDescription>Started by an SCM change</shortDescription></cause></action><action></action><action _class='org.jenkinsci.plugins.workflow.libs.LibrariesAction'></action><action></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>7</buildNumber><marked><SHA1>207a3bed6cb478630184ad0e04e8337e59609379</SHA1><branch><SHA1>207a3bed6cb478630184ad0e04e8337e59609379</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>207a3bed6cb478630184ad0e04e8337e59609379</SHA1><branch><SHA1>207a3bed6cb478630184ad0e04e8337e59609379</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>207a3bed6cb478630184ad0e04e8337e59609379</SHA1><branch><SHA1>207a3bed6cb478630184ad0e04e8337e59609379</SHA1><name>refs/remotes/origin/main</name></branch></lastBuiltRevision><remoteUrl>https://github.com/younex1/deploy-younex-web.git</remoteUrl><scmName></scmName></action><action></action><action _class='org.jenkinsci.plugins.workflow.cps.EnvActionImpl'></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><action _class='org.jenkinsci.plugins.pipeline.modeldefinition.actions.RestartDeclarativePipelineAction'></action><action></action><action _class='org.jenkinsci.plugins.workflow.job.views.FlowGraphAction'></action><action></action><action></action><action></action><building>false</building><description>207a3be Caddy: match font files with path_regexp (infix path wildcard never cros</description><displayName>#7</displayName><duration>10820</duration><estimatedDuration>12371</estimatedDuration><fullDisplayName>paas-platform #7</fullDisplayName><id>7</id><keepLog>false</keepLog><number>7</number><queueId>5802</queueId><result>SUCCESS</result><timestamp>1791035947949</timestamp><url>https://jenkins.younex.de/job/paas-platform/7/</url><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>bin/paas</affectedPath><commitId>207a3bed6cb478630184ad0e04e8337e59609379</commitId><timestamp>1791035866000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>Caddy: match font files with path_regexp (infix path wildcard never crosses /)

Co-Authored-By: Claude Fable 5.1 &lt;noreply@anthropic.com&gt;
</comment><date>2026-10-03 15:57:46 +0200</date><id>207a3bed6cb478630184ad0e04e8337e59609379</id><msg>Caddy: match font files with path_regexp (infix path wildcard never crosses /)</msg><path><editType>edit</editType><file>bin/paas</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></culprit><inProgress>false</inProgress><nextBuild><number>8</number><url>https://jenkins.younex.de/job/paas-platform/8/</url></nextBuild><previousBuild><number>6</number><url>https://jenkins.younex.de/job/paas-platform/6/</url></previousBuild></build><build _class='org.jenkinsci.plugins.workflow.job.WorkflowRun'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.SCMTrigger$SCMTriggerCause'><shortDescription>Started by an SCM change</shortDescription></cause></action><action></action><action _class='org.jenkinsci.plugins.workflow.libs.LibrariesAction'></action><action></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>6</buildNumber><marked><SHA1>609039e5efb9e113068885c9f77973841070061e</SHA1><branch><SHA1>609039e5efb9e113068885c9f77973841070061e</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>609039e5efb9e113068885c9f77973841070061e</SHA1><branch><SHA1>609039e5efb9e113068885c9f77973841070061e</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>609039e5efb9e113068885c9f77973841070061e</SHA1><branch><SHA1>609039e5efb9e113068885c9f77973841070061e</SHA1><name>refs/remotes/origin/main</name></branch></lastBuiltRevision><remoteUrl>https://github.com/younex1/deploy-younex-web.git</remoteUrl><scmName></scmName></action><action></action><action _class='org.jenkinsci.plugins.workflow.cps.EnvActionImpl'></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><action _class='org.jenkinsci.plugins.pipeline.modeldefinition.actions.RestartDeclarativePipelineAction'></action><action></action><action _class='org.jenkinsci.plugins.workflow.job.views.FlowGraphAction'></action><action></action><action></action><action></action><building>false</building><description>609039e Caddy static assets: fonts 1y immutable, images/logos/icons 30d (was 1d </description><displayName>#6</displayName><duration>11905</duration><estimatedDuration>12371</estimatedDuration><fullDisplayName>paas-platform #6</fullDisplayName><id>6</id><keepLog>false</keepLog><number>6</number><queueId>5800</queueId><result>SUCCESS</result><timestamp>1791035707936</timestamp><url>https://jenkins.younex.de/job/paas-platform/6/</url><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>bin/paas</affectedPath><commitId>609039e5efb9e113068885c9f77973841070061e</commitId><timestamp>1791035629000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>Caddy static assets: fonts 1y immutable, images/logos/icons 30d (was 1d for all)

PageSpeed flagged the 1-day TTL on every label (~110 KiB of woff2 re-fetched
daily per returning visitor). Font binaries never change in place, so they get
the same immutable policy as hashed build output; unhashed images/logos/icons
get 30 days + 1 day stale-while-revalidate. Stylesheets under /fonts/ stay on
the 30-day rule because they may be patched in place.

Co-Authored-By: Claude Fable 5.1 &lt;noreply@anthropic.com&gt;
</comment><date>2026-10-03 15:53:49 +0200</date><id>609039e5efb9e113068885c9f77973841070061e</id><msg>Caddy static assets: fonts 1y immutable, images/logos/icons 30d (was 1d for all)</msg><path><editType>edit</editType><file>bin/paas</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></culprit><inProgress>false</inProgress><nextBuild><number>7</number><url>https://jenkins.younex.de/job/paas-platform/7/</url></nextBuild><previousBuild><number>5</number><url>https://jenkins.younex.de/job/paas-platform/5/</url></previousBuild></build><build _class='org.jenkinsci.plugins.workflow.job.WorkflowRun'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.SCMTrigger$SCMTriggerCause'><shortDescription>Started by an SCM change</shortDescription></cause></action><action></action><action _class='org.jenkinsci.plugins.workflow.libs.LibrariesAction'></action><action></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>5</buildNumber><marked><SHA1>b0789a3866dc7badcb1aa37a1ae42a558f3602bd</SHA1><branch><SHA1>b0789a3866dc7badcb1aa37a1ae42a558f3602bd</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>b0789a3866dc7badcb1aa37a1ae42a558f3602bd</SHA1><branch><SHA1>b0789a3866dc7badcb1aa37a1ae42a558f3602bd</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>b0789a3866dc7badcb1aa37a1ae42a558f3602bd</SHA1><branch><SHA1>b0789a3866dc7badcb1aa37a1ae42a558f3602bd</SHA1><name>refs/remotes/origin/main</name></branch></lastBuiltRevision><remoteUrl>https://github.com/younex1/deploy-younex-web.git</remoteUrl><scmName></scmName></action><action></action><action _class='org.jenkinsci.plugins.workflow.cps.EnvActionImpl'></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><action _class='org.jenkinsci.plugins.pipeline.modeldefinition.actions.RestartDeclarativePipelineAction'></action><action></action><action _class='org.jenkinsci.plugins.workflow.job.views.FlowGraphAction'></action><action></action><action></action><action></action><building>false</building><description>b0789a3 clicks-writeback: once nightly (02:10 UTC) instead of 3x daily</description><displayName>#5</displayName><duration>11015</duration><estimatedDuration>12371</estimatedDuration><fullDisplayName>paas-platform #5</fullDisplayName><id>5</id><keepLog>false</keepLog><number>5</number><queueId>5734</queueId><result>SUCCESS</result><timestamp>1789728787900</timestamp><url>https://jenkins.younex.de/job/paas-platform/5/</url><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>bin/paas-clicks-writeback</affectedPath><affectedPath>sql/schema.sql</affectedPath><affectedPath>infra/paas-clicks-writeback.timer</affectedPath><affectedPath>bootstrap.sh</affectedPath><commitId>b0789a3866dc7badcb1aa37a1ae42a558f3602bd</commitId><timestamp>1789728682000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>clicks-writeback: once nightly (02:10 UTC) instead of 3x daily

Click counts only feed "most read" hints; one run in the traffic trough is
enough and keeps the CMS load off the daytime entirely.

Co-Authored-By: Claude Fable 5.1 &lt;noreply@anthropic.com&gt;
</comment><date>2026-09-18 12:51:22 +0200</date><id>b0789a3866dc7badcb1aa37a1ae42a558f3602bd</id><msg>clicks-writeback: once nightly (02:10 UTC) instead of 3x daily</msg><path><editType>edit</editType><file>bin/paas-clicks-writeback</file></path><path><editType>edit</editType><file>bootstrap.sh</file></path><path><editType>edit</editType><file>sql/schema.sql</file></path><path><editType>edit</editType><file>infra/paas-clicks-writeback.timer</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></culprit><inProgress>false</inProgress><nextBuild><number>6</number><url>https://jenkins.younex.de/job/paas-platform/6/</url></nextBuild><previousBuild><number>4</number><url>https://jenkins.younex.de/job/paas-platform/4/</url></previousBuild></build><build _class='org.jenkinsci.plugins.workflow.job.WorkflowRun'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.SCMTrigger$SCMTriggerCause'><shortDescription>Started by an SCM change</shortDescription></cause></action><action></action><action _class='org.jenkinsci.plugins.workflow.libs.LibrariesAction'></action><action></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>4</buildNumber><marked><SHA1>b3c8a26a1000d8bdf657f53d790ca9187566b77d</SHA1><branch><SHA1>b3c8a26a1000d8bdf657f53d790ca9187566b77d</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>b3c8a26a1000d8bdf657f53d790ca9187566b77d</SHA1><branch><SHA1>b3c8a26a1000d8bdf657f53d790ca9187566b77d</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>b3c8a26a1000d8bdf657f53d790ca9187566b77d</SHA1><branch><SHA1>b3c8a26a1000d8bdf657f53d790ca9187566b77d</SHA1><name>refs/remotes/origin/main</name></branch></lastBuiltRevision><remoteUrl>https://github.com/younex1/deploy-younex-web.git</remoteUrl><scmName></scmName></action><action></action><action _class='org.jenkinsci.plugins.workflow.cps.EnvActionImpl'></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><action _class='org.jenkinsci.plugins.pipeline.modeldefinition.actions.RestartDeclarativePipelineAction'></action><action></action><action _class='org.jenkinsci.plugins.workflow.job.views.FlowGraphAction'></action><action></action><action></action><action></action><building>false</building><description>b3c8a26 clicks-writeback: 3x daily, chunked requests, per-chunk watermark</description><displayName>#4</displayName><duration>12198</duration><estimatedDuration>12371</estimatedDuration><fullDisplayName>paas-platform #4</fullDisplayName><id>4</id><keepLog>false</keepLog><number>4</number><queueId>5732</queueId><result>SUCCESS</result><timestamp>1789728547885</timestamp><url>https://jenkins.younex.de/job/paas-platform/4/</url><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>bin/paas-clicks-writeback</affectedPath><affectedPath>sql/schema.sql</affectedPath><affectedPath>infra/paas-clicks-writeback.timer</affectedPath><affectedPath>bootstrap.sh</affectedPath><commitId>b3c8a26a1000d8bdf657f53d790ca9187566b77d</commitId><timestamp>1789728417000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>clicks-writeback: 3x daily, chunked requests, per-chunk watermark

The writeback posted ALL changed slugs in one request with a 30 s timeout.
On aktien.news that is ~31k slugs (two Strapi calls each, ~35 min), so the
request always timed out, the watermark was never written and the same
slugs were re-pushed every hour — ~250k click-count writes/day that kept
cms.dotnews.media saturated and surfaced as paas_5xx_tiera CRIT (503 "CMS
unavailable") on 2026-09-18.

- timer: OnCalendar 02:10/10:10/18:10 UTC instead of hourly (click counts
  are "most read" hints, not live data)
- script: send CLICKS_CHUNK (1000) slugs + up to 400 stat paths per request,
  CLICKS_CHUNK_PAUSE_MS (10 s) between chunks, per-chunk timeout 15 min;
  every chunk is watermarked as soon as the app confirms it, a failed chunk
  stops the run and the remainder is retried next time
- stats no longer capped at 400 per run (that cap was per request)
- bootstrap: restart the timer so a changed OnCalendar takes effect

Co-Authored-By: Claude Fable 5.1 &lt;noreply@anthropic.com&gt;
</comment><date>2026-09-18 12:46:57 +0200</date><id>b3c8a26a1000d8bdf657f53d790ca9187566b77d</id><msg>clicks-writeback: 3x daily, chunked requests, per-chunk watermark</msg><path><editType>edit</editType><file>infra/paas-clicks-writeback.timer</file></path><path><editType>edit</editType><file>bootstrap.sh</file></path><path><editType>edit</editType><file>bin/paas-clicks-writeback</file></path><path><editType>edit</editType><file>sql/schema.sql</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></culprit><inProgress>false</inProgress><nextBuild><number>5</number><url>https://jenkins.younex.de/job/paas-platform/5/</url></nextBuild><previousBuild><number>3</number><url>https://jenkins.younex.de/job/paas-platform/3/</url></previousBuild></build><build _class='org.jenkinsci.plugins.workflow.job.WorkflowRun'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.SCMTrigger$SCMTriggerCause'><shortDescription>Started by an SCM change</shortDescription></cause></action><action></action><action _class='org.jenkinsci.plugins.workflow.libs.LibrariesAction'></action><action></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>3</buildNumber><marked><SHA1>81489bc8aa9bb4cc341b1ef9b3260d7f34af09b1</SHA1><branch><SHA1>81489bc8aa9bb4cc341b1ef9b3260d7f34af09b1</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>81489bc8aa9bb4cc341b1ef9b3260d7f34af09b1</SHA1><branch><SHA1>81489bc8aa9bb4cc341b1ef9b3260d7f34af09b1</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>81489bc8aa9bb4cc341b1ef9b3260d7f34af09b1</SHA1><branch><SHA1>81489bc8aa9bb4cc341b1ef9b3260d7f34af09b1</SHA1><name>refs/remotes/origin/main</name></branch></lastBuiltRevision><remoteUrl>https://github.com/younex1/deploy-younex-web.git</remoteUrl><scmName></scmName></action><action></action><action _class='org.jenkinsci.plugins.workflow.cps.EnvActionImpl'></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><action _class='org.jenkinsci.plugins.pipeline.modeldefinition.actions.RestartDeclarativePipelineAction'></action><action></action><action _class='org.jenkinsci.plugins.workflow.job.views.FlowGraphAction'></action><action></action><action></action><action></action><building>false</building><description>81489bc golden-template: r26 is VMID 9030 (verified), r25 pruned</description><displayName>#3</displayName><duration>17690</duration><estimatedDuration>12371</estimatedDuration><fullDisplayName>paas-platform #3</fullDisplayName><id>3</id><keepLog>false</keepLog><number>3</number><queueId>5720</queueId><result>SUCCESS</result><timestamp>1789568949475</timestamp><url>https://jenkins.younex.de/job/paas-platform/3/</url><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>infra/golden-template.md</affectedPath><commitId>81489bc8aa9bb4cc341b1ef9b3260d7f34af09b1</commitId><timestamp>1789568868000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>golden-template: r26 is VMID 9030 (verified), r25 pruned

Co-Authored-By: Claude Fable 5.1 &lt;noreply@anthropic.com&gt;
</comment><date>2026-09-16 16:27:48 +0200</date><id>81489bc8aa9bb4cc341b1ef9b3260d7f34af09b1</id><msg>golden-template: r26 is VMID 9030 (verified), r25 pruned</msg><path><editType>edit</editType><file>infra/golden-template.md</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></culprit><inProgress>false</inProgress><nextBuild><number>4</number><url>https://jenkins.younex.de/job/paas-platform/4/</url></nextBuild><previousBuild><number>2</number><url>https://jenkins.younex.de/job/paas-platform/2/</url></previousBuild></build><build _class='org.jenkinsci.plugins.workflow.job.WorkflowRun'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.SCMTrigger$SCMTriggerCause'><shortDescription>Started by an SCM change</shortDescription></cause></action><action></action><action _class='org.jenkinsci.plugins.workflow.libs.LibrariesAction'></action><action></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>2</buildNumber><marked><SHA1>b4705e141dbda467fdca36e88bbbd0021a114434</SHA1><branch><SHA1>b4705e141dbda467fdca36e88bbbd0021a114434</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>b4705e141dbda467fdca36e88bbbd0021a114434</SHA1><branch><SHA1>b4705e141dbda467fdca36e88bbbd0021a114434</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>b4705e141dbda467fdca36e88bbbd0021a114434</SHA1><branch><SHA1>b4705e141dbda467fdca36e88bbbd0021a114434</SHA1><name>refs/remotes/origin/main</name></branch></lastBuiltRevision><remoteUrl>https://github.com/younex1/deploy-younex-web.git</remoteUrl><scmName></scmName></action><action></action><action _class='org.jenkinsci.plugins.workflow.cps.EnvActionImpl'></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><action _class='org.jenkinsci.plugins.pipeline.modeldefinition.actions.RestartDeclarativePipelineAction'></action><action></action><action _class='org.jenkinsci.plugins.workflow.job.views.FlowGraphAction'></action><action></action><action></action><action></action><building>false</building><description>b4705e1 repo: drop stray empty '.claude/settings.local.json ' and ignore the loc</description><displayName>#2</displayName><duration>16427</duration><estimatedDuration>12371</estimatedDuration><fullDisplayName>paas-platform #2</fullDisplayName><id>2</id><keepLog>false</keepLog><number>2</number><queueId>5717</queueId><result>SUCCESS</result><timestamp>1789567808284</timestamp><url>https://jenkins.younex.de/job/paas-platform/2/</url><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>docs/ci-platform-deploy.md</affectedPath><affectedPath>ci/jenkins-setup.sh</affectedPath><affectedPath>.claude/settings.local.json </affectedPath><affectedPath>panel/views/project.ejs</affectedPath><commitId>52b4623b73f6dbdfe3dddf4299fea8c9ab1527db</commitId><timestamp>1789562178000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>panel: branch selector is a dropdown again, preloaded with all remote branches

The list is fetched on page load (fetching on focus opened the dropdown
before it was filled, which looked like 'only the current branch'). Falls
back to a text field + Save if listing fails. Also: ci/jenkins-setup.sh
defaults match the live Jenkins job (https repo URL, credential younex1).

Co-Authored-By: Claude Fable 5.1 &lt;noreply@anthropic.com&gt;
</comment><date>2026-09-16 14:36:18 +0200</date><id>52b4623b73f6dbdfe3dddf4299fea8c9ab1527db</id><msg>panel: branch selector is a dropdown again, preloaded with all remote branches</msg><path><editType>edit</editType><file>ci/jenkins-setup.sh</file></path><path><editType>edit</editType><file>panel/views/project.ejs</file></path><path><editType>add</editType><file>.claude/settings.local.json </file></path><path><editType>edit</editType><file>docs/ci-platform-deploy.md</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>.claude/settings.local.json </affectedPath><affectedPath>.gitignore</affectedPath><commitId>b4705e141dbda467fdca36e88bbbd0021a114434</commitId><timestamp>1789562201000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>repo: drop stray empty '.claude/settings.local.json ' and ignore the local settings file

Co-Authored-By: Claude Fable 5.1 &lt;noreply@anthropic.com&gt;
</comment><date>2026-09-16 14:36:41 +0200</date><id>b4705e141dbda467fdca36e88bbbd0021a114434</id><msg>repo: drop stray empty '.claude/settings.local.json ' and ignore the local settings file</msg><path><editType>delete</editType><file>.claude/settings.local.json </file></path><path><editType>edit</editType><file>.gitignore</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></culprit><inProgress>false</inProgress><nextBuild><number>3</number><url>https://jenkins.younex.de/job/paas-platform/3/</url></nextBuild><previousBuild><number>1</number><url>https://jenkins.younex.de/job/paas-platform/1/</url></previousBuild></build><build _class='org.jenkinsci.plugins.workflow.job.WorkflowRun'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.SCMTrigger$SCMTriggerCause'><shortDescription>Started by an SCM change</shortDescription></cause></action><action></action><action _class='org.jenkinsci.plugins.workflow.libs.LibrariesAction'></action><action></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>1</buildNumber><marked><SHA1>9db08e65eb864ef856e36523455db70a51eca560</SHA1><branch><SHA1>9db08e65eb864ef856e36523455db70a51eca560</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>9db08e65eb864ef856e36523455db70a51eca560</SHA1><branch><SHA1>9db08e65eb864ef856e36523455db70a51eca560</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>9db08e65eb864ef856e36523455db70a51eca560</SHA1><branch><SHA1>9db08e65eb864ef856e36523455db70a51eca560</SHA1><name>refs/remotes/origin/main</name></branch></lastBuiltRevision><remoteUrl>https://github.com/younex1/deploy-younex-web.git</remoteUrl><scmName></scmName></action><action></action><action _class='org.jenkinsci.plugins.workflow.cps.EnvActionImpl'></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><action _class='org.jenkinsci.plugins.pipeline.modeldefinition.actions.RestartDeclarativePipelineAction'></action><action></action><action _class='org.jenkinsci.plugins.workflow.job.views.FlowGraphAction'></action><action></action><action></action><action></action><building>false</building><description>9db08e6 ci: Jenkins job deploys the platform to production on push (paas-self-de</description><displayName>#1</displayName><duration>9741</duration><estimatedDuration>12371</estimatedDuration><fullDisplayName>paas-platform #1</fullDisplayName><id>1</id><keepLog>false</keepLog><number>1</number><queueId>5711</queueId><result>FAILURE</result><timestamp>1789561567021</timestamp><url>https://jenkins.younex.de/job/paas-platform/1/</url><inProgress>false</inProgress><nextBuild><number>2</number><url>https://jenkins.younex.de/job/paas-platform/2/</url></nextBuild></build><color>red</color><firstBuild _class='org.jenkinsci.plugins.workflow.job.WorkflowRun'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.SCMTrigger$SCMTriggerCause'><shortDescription>Started by an SCM change</shortDescription></cause></action><action></action><action _class='org.jenkinsci.plugins.workflow.libs.LibrariesAction'></action><action></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>1</buildNumber><marked><SHA1>9db08e65eb864ef856e36523455db70a51eca560</SHA1><branch><SHA1>9db08e65eb864ef856e36523455db70a51eca560</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>9db08e65eb864ef856e36523455db70a51eca560</SHA1><branch><SHA1>9db08e65eb864ef856e36523455db70a51eca560</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>9db08e65eb864ef856e36523455db70a51eca560</SHA1><branch><SHA1>9db08e65eb864ef856e36523455db70a51eca560</SHA1><name>refs/remotes/origin/main</name></branch></lastBuiltRevision><remoteUrl>https://github.com/younex1/deploy-younex-web.git</remoteUrl><scmName></scmName></action><action></action><action _class='org.jenkinsci.plugins.workflow.cps.EnvActionImpl'></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><action _class='org.jenkinsci.plugins.pipeline.modeldefinition.actions.RestartDeclarativePipelineAction'></action><action></action><action _class='org.jenkinsci.plugins.workflow.job.views.FlowGraphAction'></action><action></action><action></action><action></action><building>false</building><description>9db08e6 ci: Jenkins job deploys the platform to production on push (paas-self-de</description><displayName>#1</displayName><duration>9741</duration><estimatedDuration>12371</estimatedDuration><fullDisplayName>paas-platform #1</fullDisplayName><id>1</id><keepLog>false</keepLog><number>1</number><queueId>5711</queueId><result>FAILURE</result><timestamp>1789561567021</timestamp><url>https://jenkins.younex.de/job/paas-platform/1/</url><inProgress>false</inProgress><nextBuild><number>2</number><url>https://jenkins.younex.de/job/paas-platform/2/</url></nextBuild></firstBuild><healthReport><description>Build stability: 1 out of the last 5 builds failed.</description><iconClassName>icon-health-60to79</iconClassName><iconUrl>health-60to79.png</iconUrl><score>80</score></healthReport><keepDependencies>false</keepDependencies><lastBuild _class='org.jenkinsci.plugins.workflow.job.WorkflowRun'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.SCMTrigger$SCMTriggerCause'><shortDescription>Started by an SCM change</shortDescription></cause></action><action></action><action _class='org.jenkinsci.plugins.workflow.libs.LibrariesAction'></action><action></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>d0460cf8b806fe5466b38eb73b0b0a4907627e31</SHA1><branch><SHA1>d0460cf8b806fe5466b38eb73b0b0a4907627e31</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>d0460cf8b806fe5466b38eb73b0b0a4907627e31</SHA1><branch><SHA1>d0460cf8b806fe5466b38eb73b0b0a4907627e31</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>d0460cf8b806fe5466b38eb73b0b0a4907627e31</SHA1><branch><SHA1>d0460cf8b806fe5466b38eb73b0b0a4907627e31</SHA1><name>refs/remotes/origin/main</name></branch></lastBuiltRevision><remoteUrl>https://github.com/younex1/deploy-younex-web.git</remoteUrl><scmName></scmName></action><action></action><action _class='org.jenkinsci.plugins.workflow.cps.EnvActionImpl'></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><action _class='org.jenkinsci.plugins.pipeline.modeldefinition.actions.RestartDeclarativePipelineAction'></action><action></action><action _class='org.jenkinsci.plugins.workflow.job.views.FlowGraphAction'></action><action></action><action></action><action></action><building>false</building><description>d0460cf bootstrap: search.younex.de Caddy host for the Meilisearch site search (</description><displayName>#10</displayName><duration>6978</duration><estimatedDuration>12371</estimatedDuration><fullDisplayName>paas-platform #10</fullDisplayName><id>10</id><keepLog>false</keepLog><number>10</number><queueId>5825</queueId><result>FAILURE</result><timestamp>1791626349698</timestamp><url>https://jenkins.younex.de/job/paas-platform/10/</url><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>bootstrap.sh</affectedPath><commitId>d0460cf8b806fe5466b38eb73b0b0a4907627e31</commitId><timestamp>1791625695000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>bootstrap: search.younex.de Caddy host for the Meilisearch site search (VM 111)

Hand-written host next to panel.caddy so a golden-template refresh keeps it:
browsers reach only /multi-search, /indexes/*/search and /health; the admin
API is limited to the LAN and the cms.dotnews.media egress IP. Straight to
the VM, never through Varnish. Already live on VM 101 (2026-10-10).

Co-Authored-By: Claude Fable 5.1 &lt;noreply@anthropic.com&gt;
</comment><date>2026-10-10 11:48:15 +0200</date><id>d0460cf8b806fe5466b38eb73b0b0a4907627e31</id><msg>bootstrap: search.younex.de Caddy host for the Meilisearch site search (VM 111)</msg><path><editType>edit</editType><file>bootstrap.sh</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></culprit><inProgress>false</inProgress><previousBuild><number>9</number><url>https://jenkins.younex.de/job/paas-platform/9/</url></previousBuild></lastBuild><lastCompletedBuild _class='org.jenkinsci.plugins.workflow.job.WorkflowRun'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.SCMTrigger$SCMTriggerCause'><shortDescription>Started by an SCM change</shortDescription></cause></action><action></action><action _class='org.jenkinsci.plugins.workflow.libs.LibrariesAction'></action><action></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>d0460cf8b806fe5466b38eb73b0b0a4907627e31</SHA1><branch><SHA1>d0460cf8b806fe5466b38eb73b0b0a4907627e31</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>d0460cf8b806fe5466b38eb73b0b0a4907627e31</SHA1><branch><SHA1>d0460cf8b806fe5466b38eb73b0b0a4907627e31</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>d0460cf8b806fe5466b38eb73b0b0a4907627e31</SHA1><branch><SHA1>d0460cf8b806fe5466b38eb73b0b0a4907627e31</SHA1><name>refs/remotes/origin/main</name></branch></lastBuiltRevision><remoteUrl>https://github.com/younex1/deploy-younex-web.git</remoteUrl><scmName></scmName></action><action></action><action _class='org.jenkinsci.plugins.workflow.cps.EnvActionImpl'></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><action _class='org.jenkinsci.plugins.pipeline.modeldefinition.actions.RestartDeclarativePipelineAction'></action><action></action><action _class='org.jenkinsci.plugins.workflow.job.views.FlowGraphAction'></action><action></action><action></action><action></action><building>false</building><description>d0460cf bootstrap: search.younex.de Caddy host for the Meilisearch site search (</description><displayName>#10</displayName><duration>6978</duration><estimatedDuration>12371</estimatedDuration><fullDisplayName>paas-platform #10</fullDisplayName><id>10</id><keepLog>false</keepLog><number>10</number><queueId>5825</queueId><result>FAILURE</result><timestamp>1791626349698</timestamp><url>https://jenkins.younex.de/job/paas-platform/10/</url><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>bootstrap.sh</affectedPath><commitId>d0460cf8b806fe5466b38eb73b0b0a4907627e31</commitId><timestamp>1791625695000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>bootstrap: search.younex.de Caddy host for the Meilisearch site search (VM 111)

Hand-written host next to panel.caddy so a golden-template refresh keeps it:
browsers reach only /multi-search, /indexes/*/search and /health; the admin
API is limited to the LAN and the cms.dotnews.media egress IP. Straight to
the VM, never through Varnish. Already live on VM 101 (2026-10-10).

Co-Authored-By: Claude Fable 5.1 &lt;noreply@anthropic.com&gt;
</comment><date>2026-10-10 11:48:15 +0200</date><id>d0460cf8b806fe5466b38eb73b0b0a4907627e31</id><msg>bootstrap: search.younex.de Caddy host for the Meilisearch site search (VM 111)</msg><path><editType>edit</editType><file>bootstrap.sh</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></culprit><inProgress>false</inProgress><previousBuild><number>9</number><url>https://jenkins.younex.de/job/paas-platform/9/</url></previousBuild></lastCompletedBuild><lastFailedBuild _class='org.jenkinsci.plugins.workflow.job.WorkflowRun'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.SCMTrigger$SCMTriggerCause'><shortDescription>Started by an SCM change</shortDescription></cause></action><action></action><action _class='org.jenkinsci.plugins.workflow.libs.LibrariesAction'></action><action></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>d0460cf8b806fe5466b38eb73b0b0a4907627e31</SHA1><branch><SHA1>d0460cf8b806fe5466b38eb73b0b0a4907627e31</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>d0460cf8b806fe5466b38eb73b0b0a4907627e31</SHA1><branch><SHA1>d0460cf8b806fe5466b38eb73b0b0a4907627e31</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>d0460cf8b806fe5466b38eb73b0b0a4907627e31</SHA1><branch><SHA1>d0460cf8b806fe5466b38eb73b0b0a4907627e31</SHA1><name>refs/remotes/origin/main</name></branch></lastBuiltRevision><remoteUrl>https://github.com/younex1/deploy-younex-web.git</remoteUrl><scmName></scmName></action><action></action><action _class='org.jenkinsci.plugins.workflow.cps.EnvActionImpl'></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><action _class='org.jenkinsci.plugins.pipeline.modeldefinition.actions.RestartDeclarativePipelineAction'></action><action></action><action _class='org.jenkinsci.plugins.workflow.job.views.FlowGraphAction'></action><action></action><action></action><action></action><building>false</building><description>d0460cf bootstrap: search.younex.de Caddy host for the Meilisearch site search (</description><displayName>#10</displayName><duration>6978</duration><estimatedDuration>12371</estimatedDuration><fullDisplayName>paas-platform #10</fullDisplayName><id>10</id><keepLog>false</keepLog><number>10</number><queueId>5825</queueId><result>FAILURE</result><timestamp>1791626349698</timestamp><url>https://jenkins.younex.de/job/paas-platform/10/</url><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>bootstrap.sh</affectedPath><commitId>d0460cf8b806fe5466b38eb73b0b0a4907627e31</commitId><timestamp>1791625695000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>bootstrap: search.younex.de Caddy host for the Meilisearch site search (VM 111)

Hand-written host next to panel.caddy so a golden-template refresh keeps it:
browsers reach only /multi-search, /indexes/*/search and /health; the admin
API is limited to the LAN and the cms.dotnews.media egress IP. Straight to
the VM, never through Varnish. Already live on VM 101 (2026-10-10).

Co-Authored-By: Claude Fable 5.1 &lt;noreply@anthropic.com&gt;
</comment><date>2026-10-10 11:48:15 +0200</date><id>d0460cf8b806fe5466b38eb73b0b0a4907627e31</id><msg>bootstrap: search.younex.de Caddy host for the Meilisearch site search (VM 111)</msg><path><editType>edit</editType><file>bootstrap.sh</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></culprit><inProgress>false</inProgress><previousBuild><number>9</number><url>https://jenkins.younex.de/job/paas-platform/9/</url></previousBuild></lastFailedBuild><lastStableBuild _class='org.jenkinsci.plugins.workflow.job.WorkflowRun'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.SCMTrigger$SCMTriggerCause'><shortDescription>Started by an SCM change</shortDescription></cause></action><action></action><action _class='org.jenkinsci.plugins.workflow.libs.LibrariesAction'></action><action></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>870ef35315f9a5500dd2ce6fbb5b8e1002c3b116</SHA1><branch><SHA1>870ef35315f9a5500dd2ce6fbb5b8e1002c3b116</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>870ef35315f9a5500dd2ce6fbb5b8e1002c3b116</SHA1><branch><SHA1>870ef35315f9a5500dd2ce6fbb5b8e1002c3b116</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>870ef35315f9a5500dd2ce6fbb5b8e1002c3b116</SHA1><branch><SHA1>870ef35315f9a5500dd2ce6fbb5b8e1002c3b116</SHA1><name>refs/remotes/origin/main</name></branch></lastBuiltRevision><remoteUrl>https://github.com/younex1/deploy-younex-web.git</remoteUrl><scmName></scmName></action><action></action><action _class='org.jenkinsci.plugins.workflow.cps.EnvActionImpl'></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><action _class='org.jenkinsci.plugins.pipeline.modeldefinition.actions.RestartDeclarativePipelineAction'></action><action></action><action _class='org.jenkinsci.plugins.workflow.job.views.FlowGraphAction'></action><action></action><action></action><action></action><building>false</building><description>870ef35 golden template r27 (VMID 9031): port conflict detection baked in; r26 d</description><displayName>#9</displayName><duration>12848</duration><estimatedDuration>12371</estimatedDuration><fullDisplayName>paas-platform #9</fullDisplayName><id>9</id><keepLog>false</keepLog><number>9</number><queueId>5821</queueId><result>SUCCESS</result><timestamp>1791496387824</timestamp><url>https://jenkins.younex.de/job/paas-platform/9/</url><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>infra/golden-template.md</affectedPath><commitId>870ef35315f9a5500dd2ce6fbb5b8e1002c3b116</commitId><timestamp>1791496292000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@logyou.de</authorEmail><comment>golden template r27 (VMID 9031): port conflict detection baked in; r26 destroyed

Co-Authored-By: Claude Fable 5.1 &lt;noreply@anthropic.com&gt;
</comment><date>2026-10-08 23:51:32 +0200</date><id>870ef35315f9a5500dd2ce6fbb5b8e1002c3b116</id><msg>golden template r27 (VMID 9031): port conflict detection baked in; r26 destroyed</msg><path><editType>edit</editType><file>infra/golden-template.md</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></culprit><inProgress>false</inProgress><nextBuild><number>10</number><url>https://jenkins.younex.de/job/paas-platform/10/</url></nextBuild><previousBuild><number>8</number><url>https://jenkins.younex.de/job/paas-platform/8/</url></previousBuild></lastStableBuild><lastSuccessfulBuild _class='org.jenkinsci.plugins.workflow.job.WorkflowRun'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.SCMTrigger$SCMTriggerCause'><shortDescription>Started by an SCM change</shortDescription></cause></action><action></action><action _class='org.jenkinsci.plugins.workflow.libs.LibrariesAction'></action><action></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>9</buildNumber><marked><SHA1>870ef35315f9a5500dd2ce6fbb5b8e1002c3b116</SHA1><branch><SHA1>870ef35315f9a5500dd2ce6fbb5b8e1002c3b116</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>870ef35315f9a5500dd2ce6fbb5b8e1002c3b116</SHA1><branch><SHA1>870ef35315f9a5500dd2ce6fbb5b8e1002c3b116</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>870ef35315f9a5500dd2ce6fbb5b8e1002c3b116</SHA1><branch><SHA1>870ef35315f9a5500dd2ce6fbb5b8e1002c3b116</SHA1><name>refs/remotes/origin/main</name></branch></lastBuiltRevision><remoteUrl>https://github.com/younex1/deploy-younex-web.git</remoteUrl><scmName></scmName></action><action></action><action _class='org.jenkinsci.plugins.workflow.cps.EnvActionImpl'></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><action _class='org.jenkinsci.plugins.pipeline.modeldefinition.actions.RestartDeclarativePipelineAction'></action><action></action><action _class='org.jenkinsci.plugins.workflow.job.views.FlowGraphAction'></action><action></action><action></action><action></action><building>false</building><description>870ef35 golden template r27 (VMID 9031): port conflict detection baked in; r26 d</description><displayName>#9</displayName><duration>12848</duration><estimatedDuration>12371</estimatedDuration><fullDisplayName>paas-platform #9</fullDisplayName><id>9</id><keepLog>false</keepLog><number>9</number><queueId>5821</queueId><result>SUCCESS</result><timestamp>1791496387824</timestamp><url>https://jenkins.younex.de/job/paas-platform/9/</url><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>infra/golden-template.md</affectedPath><commitId>870ef35315f9a5500dd2ce6fbb5b8e1002c3b116</commitId><timestamp>1791496292000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@logyou.de</authorEmail><comment>golden template r27 (VMID 9031): port conflict detection baked in; r26 destroyed

Co-Authored-By: Claude Fable 5.1 &lt;noreply@anthropic.com&gt;
</comment><date>2026-10-08 23:51:32 +0200</date><id>870ef35315f9a5500dd2ce6fbb5b8e1002c3b116</id><msg>golden template r27 (VMID 9031): port conflict detection baked in; r26 destroyed</msg><path><editType>edit</editType><file>infra/golden-template.md</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></culprit><inProgress>false</inProgress><nextBuild><number>10</number><url>https://jenkins.younex.de/job/paas-platform/10/</url></nextBuild><previousBuild><number>8</number><url>https://jenkins.younex.de/job/paas-platform/8/</url></previousBuild></lastSuccessfulBuild><lastUnsuccessfulBuild _class='org.jenkinsci.plugins.workflow.job.WorkflowRun'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.SCMTrigger$SCMTriggerCause'><shortDescription>Started by an SCM change</shortDescription></cause></action><action></action><action _class='org.jenkinsci.plugins.workflow.libs.LibrariesAction'></action><action></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>d0460cf8b806fe5466b38eb73b0b0a4907627e31</SHA1><branch><SHA1>d0460cf8b806fe5466b38eb73b0b0a4907627e31</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>d0460cf8b806fe5466b38eb73b0b0a4907627e31</SHA1><branch><SHA1>d0460cf8b806fe5466b38eb73b0b0a4907627e31</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>d0460cf8b806fe5466b38eb73b0b0a4907627e31</SHA1><branch><SHA1>d0460cf8b806fe5466b38eb73b0b0a4907627e31</SHA1><name>refs/remotes/origin/main</name></branch></lastBuiltRevision><remoteUrl>https://github.com/younex1/deploy-younex-web.git</remoteUrl><scmName></scmName></action><action></action><action _class='org.jenkinsci.plugins.workflow.cps.EnvActionImpl'></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><action _class='org.jenkinsci.plugins.pipeline.modeldefinition.actions.RestartDeclarativePipelineAction'></action><action></action><action _class='org.jenkinsci.plugins.workflow.job.views.FlowGraphAction'></action><action></action><action></action><action></action><building>false</building><description>d0460cf bootstrap: search.younex.de Caddy host for the Meilisearch site search (</description><displayName>#10</displayName><duration>6978</duration><estimatedDuration>12371</estimatedDuration><fullDisplayName>paas-platform #10</fullDisplayName><id>10</id><keepLog>false</keepLog><number>10</number><queueId>5825</queueId><result>FAILURE</result><timestamp>1791626349698</timestamp><url>https://jenkins.younex.de/job/paas-platform/10/</url><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>bootstrap.sh</affectedPath><commitId>d0460cf8b806fe5466b38eb73b0b0a4907627e31</commitId><timestamp>1791625695000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@younex.de</authorEmail><comment>bootstrap: search.younex.de Caddy host for the Meilisearch site search (VM 111)

Hand-written host next to panel.caddy so a golden-template refresh keeps it:
browsers reach only /multi-search, /indexes/*/search and /health; the admin
API is limited to the LAN and the cms.dotnews.media egress IP. Straight to
the VM, never through Varnish. Already live on VM 101 (2026-10-10).

Co-Authored-By: Claude Fable 5.1 &lt;noreply@anthropic.com&gt;
</comment><date>2026-10-10 11:48:15 +0200</date><id>d0460cf8b806fe5466b38eb73b0b0a4907627e31</id><msg>bootstrap: search.younex.de Caddy host for the Meilisearch site search (VM 111)</msg><path><editType>edit</editType><file>bootstrap.sh</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></culprit><inProgress>false</inProgress><previousBuild><number>9</number><url>https://jenkins.younex.de/job/paas-platform/9/</url></previousBuild></lastUnsuccessfulBuild><nextBuildNumber>11</nextBuildNumber><property _class='org.jenkinsci.plugins.workflow.job.properties.DisableConcurrentBuildsJobProperty'></property><property _class='jenkins.model.BuildDiscarderProperty'></property><property _class='org.jenkinsci.plugins.workflow.job.properties.PipelineTriggersJobProperty'></property><concurrentBuild>false</concurrentBuild><inQueue>false</inQueue><resumeBlocked>false</resumeBlocked></workflowJob>