Commit Graph
14682 Commits
Author SHA1 Message Date
kevinveenbirkenbach 415a9cb91a Merge remote-tracking branch 'origin/main' into fix/web-app-prometheus/blackbox-targets/792 2026-10-06 16:40:34 +02:00
kevinveenbirkenbachandClaude Opus 5.5 2a1c5e13ce fix(web-app-prometheus): judge each probe by its own target
Since the targets take their scheme from the domain they probe, two
switches of the http_ready module no longer fit. Both still followed the
TLS state of the Prometheus vhost.

fail_if_not_ssl refused an http target, an onion vhost for example, as
soon as Prometheus itself was served over TLS. It is false now. The
module does not follow redirects, so the scheme of the target URL already
decides the transport.

insecure_skip_verify switched certificate checks off whenever Prometheus
itself had no TLS, also for an https target. Checks now stay on, except in
a self-signed deployment whose CA is not mounted into the Prometheus
containers, where the exporter has nothing to verify against.

The per-role test of the spec parsed every answer of the query API as
JSON. An answer that is not OK now counts as "no probe yet", so the poll
keeps waiting instead of ending on a parse error.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-06 16:40:34 +02:00
kevinveenbirkenbach 0e9354f1a0 Merge remote-tracking branch 'origin/main' into fix/svc-net-tor/chutney-node-workers/824 2026-10-06 16:40:29 +02:00
kevinveenbirkenbachandClaude Opus 5.5 4f8c1f00f1 fix(svc-net-tor): fail the worker check when no torrc can be read
The check listed the torrcs without the limit through "grep -L ...; true".
With no torrc under /opt/chutney/net/nodes, or with one that cannot be
read, grep printed nothing, the trailing true turned its error into
success, and the test reported that every node runs one worker.

The check now counts the limit per file with "grep -cH" and reads the exit
status. A status above 1 or an empty answer fails the test, and a file
with a count of 0 is named as before.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-06 16:40:28 +02:00
infinito-nexus-updater[bot] baaa5e61a1 update(images): update Docker image versions (web-app-opentalk) 2026-10-06 12:23:13 +00:00
kevinveenbirkenbach 6e699bb63f Merge remote-tracking branch 'origin/main' into update/docker-image-versions-web-app-nextcloud-20261002-798c076 2026-10-06 13:43:39 +02:00
kevinveenbirkenbach 5d854cc005 Merge remote-tracking branch 'origin/main' into fix/code-scanning-alerts/807 2026-10-06 13:43:32 +02:00
kevinveenbirkenbach 2eaa6b6b58 Merge remote-tracking branch 'origin/main' into update/version-sources-web-app-moodle-20261005-4f455e2 2026-10-06 13:43:24 +02:00
kevinveenbirkenbach 8e0463d5a3 Merge remote-tracking branch 'origin/main' into update/version-sources-web-app-zammad-20261006-009cc7a 2026-10-06 13:42:58 +02:00
kevinveenbirkenbach 44e5d8b972 Merge remote-tracking branch 'origin/main' into update/version-sources-web-app-prometheus-20261005-fc0bcb7 2026-10-06 13:42:58 +02:00
kevinveenbirkenbach 16445e0b5d Merge remote-tracking branch 'origin/main' into update/version-sources-web-app-flowise-20261005-3730e0c 2026-10-06 13:42:58 +02:00
kevinveenbirkenbach 48db1e9eb5 Merge remote-tracking branch 'origin/main' into update/version-sources-web-app-n8n-20261005-dde2ead 2026-10-06 13:42:58 +02:00
kevinveenbirkenbach 1189854a26 Merge remote-tracking branch 'origin/main' into update/docker-image-versions-web-app-chess-20261006-a4a4f62 2026-10-06 13:42:58 +02:00
kevinveenbirkenbach 0a7e803387 Merge remote-tracking branch 'origin/main' into update/version-sources-web-app-stalwart-20261005-966a4cc 2026-10-06 13:42:58 +02:00
kevinveenbirkenbach 25b21f5906 Merge remote-tracking branch 'origin/main' into update/docker-image-versions-svc-db-qdrant-20261005-0d33343 2026-10-06 13:42:58 +02:00
kevinveenbirkenbach 5b2490fed3 Merge remote-tracking branch 'origin/main' into update/version-sources-web-app-wordpress-20261005-950916f 2026-10-06 13:42:58 +02:00
kevinveenbirkenbach 7fadc5e0a4 Merge remote-tracking branch 'origin/main' into update/version-sources-web-app-gitea-20261005-709f14e 2026-10-06 13:42:58 +02:00
kevinveenbirkenbach 21df895af4 Merge remote-tracking branch 'origin/main' into update/galaxy-pins-20261005-e2ea21d 2026-10-06 13:42:58 +02:00
kevinveenbirkenbach 0f651bb6cc Merge remote-tracking branch 'origin/main' into update/docker-image-versions-web-app-jira-20261005-2c12c7a 2026-10-06 13:42:58 +02:00
kevinveenbirkenbachandClaude Opus 5.5 ddb565dd2d docs(web-app-pihole): regenerate the READMEs without the redis dependency
1560824ed5 dropped the unused shared redis dependency of web-app-pihole without a make docs run. This is the generator output for the current tree: the pihole cosmos loses the redis node and edge, and the root role table no longer lists Redis for Pi-hole.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-06 13:22:48 +02:00
kevinveenbirkenbach 8b7671f524 Merge pull request #828 from infinito-nexus/fix/web-svc-collabora/wopi-allowlist/802
fix(web-svc-collabora): name the WOPI host and follow the vhost's TLS state
2026-10-06 13:08:52 +02:00
kevinveenbirkenbach 40c033fc22 Merge pull request #826 from infinito-nexus/fix/web-app-keycloak/kcadm-config-lock/805
fix(web-app-keycloak): keep concurrent kcadm jobs from losing the config lock
2026-10-06 13:07:26 +02:00
kevinveenbirkenbach c4bcb9a31c Merge pull request #818 from infinito-nexus/update/version-sources-web-app-xwiki-20261005-dc2425a
update(versions): update pins with a declared source (web-app-xwiki)
2026-10-06 13:05:11 +02:00
kevinveenbirkenbach c8169575fa Merge pull request #823 from infinito-nexus/dependabot/npm_and_yarn/eslint-10.12.0
chore(deps-dev): bump eslint from 10.10.0 to 10.12.0
2026-10-06 13:01:58 +02:00
infinito-nexus-updater[bot] a7ca03d86d update(versions): update pins with a declared source (web-app-zammad) 2026-10-06 10:54:32 +00:00
kevinveenbirkenbach d0ef1f81a1 Merge pull request #825 from infinito-nexus/fix/web-app-penpot/frontend-start-guard/806
fix(web-app-penpot): make the frontend wait for its backend by absolute name
2026-10-06 12:22:36 +02:00
kevinveenbirkenbach b0282263f9 Merge pull request #833 from infinito-nexus/fix/web-app-odoo/oauth-addon-version/822
fix(web-app-odoo): make the OAuth addon work on Odoo 20
2026-10-06 11:55:07 +02:00
kevinveenbirkenbachandClaude Opus 5.5 7968b47cf0 fix(svc-net-tor): give every chutney node one worker thread
Tor starts its worker threads by the number of CPU cores it detects, and
the cpus limit of the container does not change that number. On a host
with 20 cores every node of the private chutney network ran 21 threads and
grew to about 0.6 GB. The seven relays and authorities filled the 2g
limit and its swap within ten minutes, the kernel killed them one by one,
and no circuit could be built any more.

The entrypoint now writes NumCPUs 1 into the torrc of every chutney node
before it starts the network. Measured on that host over ten minutes: the
nodes run 3 threads and stay at 65 to 86 MB, the container at 0.47 GB
without swap, where it had filled 2 GB plus 2 GB of swap before.

The CLI test of the role fails when a chutney node runs without the limit.

Closes #824

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-06 11:37:54 +02:00
kevinveenbirkenbachandClaude Opus 5.5 c35f2409a4 fix(web-app-odoo): make the OAuth addon work on Odoo 20
Nobody could sign in to Odoo through Keycloak. Odoo sent an http redirect
URI, and Keycloak refused it as "Invalid parameter: redirect_uri".

The addon auth_oauth_https builds that URI from web.base.url. Two things
kept it from doing so after the image moved to Odoo 20.

Its manifest declared version 19.0.1.8.0, and Odoo marks a module whose
version names another series as not installable. It only warns about that,
so the install task stayed green and the addon was missing. The manifest
now declares 1.8.0, which Odoo prefixes with its own series.

Once installed, the addon read the parameter with get_param, which Odoo 20
replaced by typed getters. The call raised AttributeError, a broad except
logged it and fell back to the URL of the request, which is http behind
the proxy. The addon reads the parameter with get_str now and no longer
catches the error.

A deploy now fails when the addon is not installed afterwards. The check
reads ir_module_module, because the output of "odoo -i" does not tell an
installed module from a skipped one.

The spec logged out by navigating to /web/session/logout. Odoo 20 accepts
POST only on that route and answered 405, so both SSO tests failed after
a successful login. The spec logs out through the user menu now.

A host that runs the suite with several workers still failed it. Odoo
computes the session token of an account from its OAuth access token, so
every new sign-in ends the other sessions of that account, and the spec
files share the administrator. The role caps its suite at one worker
with PLAYWRIGHT_MAX_WORKERS, which the central config now honours, and
the spec asserts the cap.

Closes #822

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-06 11:37:41 +02:00
kevinveenbirkenbachandClaude Opus 5.5 883b9c4f46 fix(web-app-prometheus): probe apps where their vhosts answer
Every blackbox probe of a Tor deployment answered 404, so AppDown fired for
all deployed apps although they were up. The job built its targets from
canonical_domains_map(DOMAIN_PRIMARY), which knows no onion domain. In a Tor
deployment the vhosts answer under <sub>.<onion> only, and the front proxy
served the clearnet names from its default server.

The targets now come from lookup('domains'), the map the vhosts are built
from, and each target takes its scheme from the domain it probes instead of
from the Prometheus vhost.

Which roles are probed follows lookup('roles_with_service', 'prometheus'),
the list the role's own spec expects metrics for. It leaves out the database
roles, which have a domain in the map and no vhost, and the roles that
declare scrape: false because their vhost carries no Prometheus block.

Two roles declared more than their vhost delivers. web-svc-mirror renders a
vhost of its own with no backend behind it, and on a live stack its probe
answered 404 under the onion name as well, so it declares scrape: false now.
web-app-peertube has a backend, but its vhost template never included the
Prometheus locations. It includes them now.

The spec could not see any of this in a compose deployment. dotenv_quote
wraps PROMETHEUS_TARGET_ROLES_JSON in quotes there, JSON.parse returned a
string, the role list came out empty and the per-role test was skipped. The
value is decoded now, and the test also requires probe_success == 1 for
every role in the list.

Closes #792

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-06 11:37:28 +02:00
infinito-nexus-updater[bot] d2dd6b3e7c update(images): update Docker image versions (web-app-chess) 2026-10-06 09:33:54 +00:00
kevinveenbirkenbach 43ce12f877 Merge remote-tracking branch 'origin/main' into fix/web-app-penpot/frontend-start-guard/806 2026-10-06 11:33:25 +02:00
kevinveenbirkenbach 37744c2552 Merge remote-tracking branch 'origin/main' into fix/web-app-keycloak/kcadm-config-lock/805 2026-10-06 11:33:19 +02:00
kevinveenbirkenbach abd22a544f Merge remote-tracking branch 'origin/main' into fix/code-scanning-alerts/807 2026-10-06 11:33:12 +02:00
kevinveenbirkenbach 878cfb71c4 Merge remote-tracking branch 'origin/main' into fix/web-svc-collabora/wopi-allowlist/802 2026-10-06 11:33:06 +02:00
kevinveenbirkenbach 4df34e161f Merge remote-tracking branch 'origin/main' into update/docker-image-versions-web-app-nextcloud-20261002-798c076 2026-10-06 11:33:00 +02:00
kevinveenbirkenbach c9ed6a975a Merge remote-tracking branch 'origin/main' into update/version-sources-web-app-xwiki-20261005-dc2425a 2026-10-06 11:32:54 +02:00
kevinveenbirkenbach 7a72008ec2 Merge remote-tracking branch 'origin/main' into update/version-sources-web-app-moodle-20261005-4f455e2 2026-10-06 11:32:47 +02:00
kevinveenbirkenbach a57d5affec Merge remote-tracking branch 'origin/main' into update/version-sources-web-app-hugo-20261005-bc4c8f8 2026-10-06 11:29:51 +02:00
kevinveenbirkenbach 71808a824f Merge remote-tracking branch 'origin/main' into update/version-sources-web-app-flowise-20261005-3730e0c 2026-10-06 11:29:47 +02:00
kevinveenbirkenbach d565a0592f Merge remote-tracking branch 'origin/main' into update/version-sources-web-app-n8n-20261005-dde2ead 2026-10-06 11:29:47 +02:00
kevinveenbirkenbach b428ed74d5 Merge remote-tracking branch 'origin/main' into update/version-sources-web-app-gitea-20261005-709f14e 2026-10-06 11:29:47 +02:00
kevinveenbirkenbach fa0d11b1f9 Merge remote-tracking branch 'origin/main' into update/version-sources-web-app-prometheus-20261005-fc0bcb7 2026-10-06 11:29:46 +02:00
kevinveenbirkenbach 9e535cf644 Merge remote-tracking branch 'origin/main' into update/version-sources-web-app-stalwart-20261005-966a4cc 2026-10-06 11:29:46 +02:00
kevinveenbirkenbach e0ad052ae6 Merge remote-tracking branch 'origin/main' into update/docker-image-versions-svc-db-qdrant-20261005-0d33343 2026-10-06 11:29:46 +02:00
kevinveenbirkenbach f6ee0481ee Merge remote-tracking branch 'origin/main' into update/version-sources-web-app-wordpress-20261005-950916f 2026-10-06 11:29:46 +02:00
kevinveenbirkenbach bd63e42205 Merge remote-tracking branch 'origin/main' into update/galaxy-pins-20261005-e2ea21d 2026-10-06 11:29:46 +02:00
kevinveenbirkenbach 4700be774c Merge remote-tracking branch 'origin/main' into update/docker-image-versions-web-app-jira-20261005-2c12c7a 2026-10-06 11:29:46 +02:00
kevinveenbirkenbach 1cf3c1086a Merge remote-tracking branch 'origin/main' into dependabot/npm_and_yarn/eslint-10.12.0 2026-10-06 11:29:46 +02:00
kevinveenbirkenbach 4ed542c5f7 Merge pull request #830 from evangelostsak/fix/web-app-pihole/redis-dependency
fix(web-app-pihole): drop the unused shared redis dependency
2026-10-06 11:25:28 +02:00