Commit Graph
14682 Commits
Author SHA1 Message Date
kevinveenbirkenbach afc6edc364 Merge branch 'main' into update/docker-image-versions-web-app-pixelfed-20261007-4c32b02 2026-10-08 01:36:44 +02:00
kevinveenbirkenbach e122826b4d Merge remote-tracking branch 'origin/main' into fix/dependabot-alerts/847 2026-10-08 01:36:29 +02:00
infinito-nexus-updater[bot] e613f523bb update(images): update Docker image versions (web-app-opentalk) 2026-10-07 23:31:56 +00:00
infinito-nexus-updater[bot] fa7bcdf0e4 update(images): update Docker image versions (web-app-bigbluebutton) 2026-10-07 23:31:49 +00:00
infinito-nexus-updater[bot] bf490eadd3 update(images): update Docker image versions (svc-runner) 2026-10-07 23:31:44 +00:00
kevinveenbirkenbachandClaude Opus 5.5 3f91dd600e fix(web-app-moodle): point the Moodle 5 AI provider instance at the gateway
Moodle 5 keeps AI provider settings in provider instances, not in the
plugin configuration. The deploy kept writing aiprovider_openai/* through
cfg.php and read the same value back, so its own check stayed green while
no provider existed. The gateway spec then found no settings page and
web-app-moodle#2 failed in run 37646050826.

The deploy now pipes files/php/provision_ai_gateway.php into the
container. It finds the instance by class and name or creates it through
core_ai\manager, points the three text actions at the chat endpoint,
switches image generation off, stores the virtual key and prints what
Moodle stored. The task asserts on that output. An instance an
administrator added is left alone.

The spec finds the instance by MOODLE_AI_PROVIDER_NAME on the providers
page and reads the endpoint from its generate_text action page.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-08 01:27:03 +02:00
kevinveenbirkenbach c41b80542f Merge branch 'main' of github.com:infinito-nexus/core 2026-10-08 00:53:54 +02:00
kevinveenbirkenbach cbbbdd869e Merge pull request #862 from infinito-nexus/fix/sys-svc-compose/swarm-fallback-build-retry/620
fix(sys-svc-compose): retry the cache-less rebuild fallback
2026-10-08 00:52:59 +02:00
kevinveenbirkenbachandClaude Opus 5.5 c76eef2cae docs(requirements): add 037, World Monitor behind the oauth2-proxy gate
Requirement for a web-app-worldmonitor role: the upstream four-service
stack (dashboard, AIS relay, Redis, REST proxy) behind the platform's
Keycloak login through oauth2-proxy, in compose and in swarm.

It records what the upstream self-hosted mode offers and lacks, eleven
proposed decisions the operator has to confirm before implementation,
the target role layout and the acceptance criteria.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-08 00:39:49 +02:00
kevinveenbirkenbach 9545bb6a0a Merge pull request #861 from infinito-nexus/fix/web-app-suitecrm/log-dir-ownership/854
fix(web-app-suitecrm): hand the log directory to the web user
2026-10-08 00:37:02 +02:00
kevinveenbirkenbach 4622d03b61 Merge remote-tracking branch 'origin/main' into fix/sys-svc-compose/swarm-fallback-build-retry/620 2026-10-08 00:35:53 +02:00
kevinveenbirkenbachandClaude Opus 5.5 40d80cea2c fix(sys-svc-compose): retry the cache-less rebuild fallback
The cache-less rebuild is the fallback for a build whose spaced retries
are exhausted. It ran once, so one more registry timeout turned a
transient network failure into a failed deploy. Both the compose and the
swarm handler now retry it three times, 30 seconds apart, like the build
they back up.

Closes #620

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-08 00:35:53 +02:00
kevinveenbirkenbach 9265a1f650 Merge remote-tracking branch 'origin/main' into fix/web-app-suitecrm/log-dir-ownership/854 2026-10-08 00:16:14 +02:00
kevinveenbirkenbachandClaude Opus 5.5 52bfc2a476 fix(web-app-suitecrm): hand the log directory to the web user
The entrypoint runs the installer and the cache commands as root. They
create logs/prod, and the entrypoint handed cache and public/legacy back
to the web user but not logs. Apache could not write there, so SuiteCRM
wrote neither its auth.log nor its main log.

The entrypoint now hands logs to the web user after the root-run console
commands, on every boot that holds the boot lock, so volumes of earlier
deploys are repaired too. The deploy fails if a path under logs is not
writable for the web user.

Closes #854

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-08 00:16:14 +02:00
kevinveenbirkenbach 62fd7f6b55 Merge pull request #831 from infinito-nexus/update/docker-image-versions-web-app-chess-20261006-a4a4f62
update(images): update Docker image versions (web-app-chess)
2026-10-07 17:41:54 +02:00
kevinveenbirkenbach 7b240fd4eb Merge remote-tracking branch 'origin/main' into fix/dependabot-alerts/847 2026-10-07 17:41:05 +02:00
kevinveenbirkenbach 47e1aace5c Merge pull request #842 from infinito-nexus/update/docker-image-versions-web-app-pixelfed-20261006-a258621
update(images): update Docker image versions (web-app-pixelfed)
2026-10-07 17:40:12 +02:00
kevinveenbirkenbach 67dee34d2f Merge pull request #856 from infinito-nexus/update/docker-image-versions-web-app-prometheus-20261007-57b72f6
update(images): update Docker image versions (web-app-prometheus)
2026-10-07 17:39:15 +02:00
kevinveenbirkenbach c9710b6cbb Merge pull request #857 from infinito-nexus/update/docker-image-versions-web-app-semaphore-20261007-7804449
update(images): update Docker image versions (web-app-semaphore)
2026-10-07 17:38:55 +02:00
kevinveenbirkenbach fcbcba0439 Merge remote-tracking branch 'origin/main' into fix/dependabot-alerts/847 2026-10-07 17:08:21 +02:00
infinito-nexus-updater[bot] e6d65a088b update(images): update Docker image versions (web-app-socialhome) 2026-10-07 14:47:54 +00:00
infinito-nexus-updater[bot] c49e15182f update(images): update Docker image versions (web-app-semaphore) 2026-10-07 14:47:49 +00:00
infinito-nexus-updater[bot] 0db6c848a3 update(images): update Docker image versions (web-app-prometheus) 2026-10-07 14:47:44 +00:00
infinito-nexus-updater[bot] 78f15aa42b update(images): update Docker image versions (web-app-pixelfed) 2026-10-07 14:47:37 +00:00
kevinveenbirkenbach db5601a243 Merge pull request #813 from infinito-nexus/update/version-sources-web-app-prometheus-20261005-fc0bcb7
update(versions): update pins with a declared source (web-app-prometheus)
2026-10-07 16:40:39 +02:00
kevinveenbirkenbach 752c4e30f0 Merge pull request #808 from infinito-nexus/update/version-sources-web-app-flowise-20261005-3730e0c
update(versions): update pins with a declared source (web-app-flowise)
2026-10-07 15:31:36 +02:00
Prageeth Panicker 4818f37d29 style(bcrypt_hash): wrap the salt_seed error message as the formatter requires 2026-10-07 13:15:44 +00:00
Prageeth Panicker 30c94f233f refactor(web-app-wazuh): size the indexer heap with the service_memory_mb lookup 2026-10-07 13:05:07 +00:00
Prageeth Panicker 94aa75720a Merge remote-tracking branch 'origin/main' into feature/web-app-wazuh/add-role
# Conflicts:
#	README.md
2026-10-07 12:55:54 +00:00
Prageeth Panicker 76492cca7c refactor(web-app-wazuh): move manager and dashboard environment into per-service env files 2026-10-07 12:33:09 +00:00
kevinveenbirkenbach e78056db08 Merge pull request #816 from infinito-nexus/update/version-sources-web-app-wordpress-20261005-950916f
update(versions): update pins with a declared source (web-app-wordpress)
2026-10-07 13:35:57 +02:00
kevinveenbirkenbach 1e890123df Merge pull request #812 from infinito-nexus/update/version-sources-web-app-n8n-20261005-dde2ead
update(versions): update pins with a declared source (web-app-n8n)
2026-10-07 13:34:34 +02:00
kevinveenbirkenbach 56497a1cf1 Merge pull request #811 from infinito-nexus/update/version-sources-web-app-moodle-20261005-4f455e2
update(versions): update pins with a declared source (web-app-moodle)
2026-10-07 13:33:43 +02:00
kevinveenbirkenbachandClaude Opus 5.5 1b7378d66b fix(deps): move two lint dependencies past their advisories
Dependabot alerts 12 and 13 name postcss-selector-parser and
source-map-js in the root lock file. Both reach the project through
stylelint. The lock now holds postcss-selector-parser 7.1.6 and
source-map-js 1.2.2, the first releases outside the advisories.

Alert 11 on braces stays open, no fixed release exists.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-07 13:24:55 +02:00
kevinveenbirkenbach 11b4939299 Merge remote-tracking branch 'origin/main' into update/version-sources-web-app-n8n-20261005-dde2ead 2026-10-07 13:24:44 +02:00
kevinveenbirkenbachandClaude Opus 5.5 1d5e7f76e1 fix(web-app-n8n): resolve the SSO hook's modules and roles as n8n 2 does
n8n 2 installs its dependencies as a strict pnpm tree, so the hook's
require('router/lib/layer') and require('bcryptjs') no longer resolve
from the hook file. The n8n.ready hook failed with "Cannot find module
'router/lib/layer'", n8n exited, and the deploy ran into the timeout of
the readiness check. The hook now resolves both through n8n's own
module, the router by way of express.

A user's role is a relation in n8n 2. The hook loads it together with
the user, since the role check refuses an account without it, and
creates a new account with the role as an object, the shape n8n's own
SSO code passes.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-07 13:24:44 +02:00
kevinveenbirkenbach 9fc68a5477 Merge remote-tracking branch 'origin/main' into update/version-sources-web-app-moodle-20261005-4f455e2 2026-10-07 13:21:56 +02:00
kevinveenbirkenbach 9260f20477 Merge pull request #827 from infinito-nexus/fix/code-scanning-alerts/807
fix(code-scanning): resolve the alerts that describe real code
2026-10-07 13:11:20 +02:00
kevinveenbirkenbachandClaude Opus 5.5 0c748f74ed fix(web-app-moodle): swap the code tree only after a complete copy
The entrypoint removed the old tree before it copied the new one. A
copy that failed left the volume without a working Moodle, and every
restart removed again instead of recovering. It now copies into a
staging directory inside the volume and swaps the trees once the copy
is complete, so a failed copy leaves the old tree in place.

An image that ships an older release than the volume records no longer
replaces it and exits with a message instead. Two instances on
different releases would otherwise overwrite each other's tree.

upgrade.php reports "No upgrade needed" on stderr, so the task counted
every run on a current site as a change. It reads stderr now.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-07 10:45:29 +02:00
Prageeth Panicker 5864cd4750 refactor(web-app-wazuh): replace the vendored GPLv2 entrypoints with own code
The indexer entrypoint is now only our CA-import block followed by exec of the image's own /entrypoint.sh, mounted at /infinito-entrypoint.sh with an explicit command. The certs entrypoint is our own script: it downloads the cert tool only from packages.wazuh.com and fails if that download fails, so there is no silent fallback to the dev bucket. The manager node name is passed in as WAZUH_MANAGER_NODE for both compose and swarm.
2026-10-07 08:31:29 +00:00
Prageeth Panicker eeaa0e55ff refactor(web-app-wazuh): derive the certs tool version from services.yml
WAZUH_CERTS_TOOL_VERSION was a literal in vars/main.yml. It now reads the manager image version from meta/services.yml and keeps major.minor (4.14.6 gives 4.14), so it follows the Docker updater and needs no separate pin.
2026-10-07 08:30:33 +00:00
Prageeth Panicker d92de14192 fix(web-app-wazuh): use a stable salt for the Wazuh password hashes
bcrypt_hash takes an optional salt_seed. Without a seed it keeps the random salt. With a seed the salt is derived from the seed and the secret, so the same password always gives the same hash. Wazuh passes a fixed seed for the indexer admin and the dashboard service hashes, so internal_users.yml no longer changes on every run and no longer triggers a restart.
2026-10-07 08:28:15 +00:00
Prageeth Panicker 6cd614428a fix(web-app-wazuh): drop the unlimited memlock ulimit
The manager and the indexer do not set bootstrap.memory_lock, so memlock -1 is not needed and would let a leaking process pin all host RAM. nofile stays: it is a per-process limit and OpenSearch needs a high file-descriptor limit.
2026-10-07 08:26:36 +00:00
Prageeth Panicker bc8d303f37 test(web-app-wazuh): assert the roles API status instead of page text
Wait for the security-dashboards-plugin roles API response and assert 200 for the admin tier and 403 for the other tiers, with the role list and create-role button checked on the page. Navigate with gotoOnion so the test works over Tor.
2026-10-07 08:23:53 +00:00
Prageeth Panicker aa1ae9a31a fix(web-app-wazuh): focus the DevTools console editor instead of clicking it
The Ace editor overlays its hidden textarea and intercepts pointer events, so the click never reached the input. Focus the editor and let a failure show up instead of swallowing it.
2026-10-07 08:23:37 +00:00
Prageeth Panicker 9b1d702546 fix(web-app-wazuh): verify the LDAP server hostname
Set verify_hostnames to true on the LDAP authz domain so ldaps and starttls connections check the server certificate hostname (CWE-297).
2026-10-07 08:22:51 +00:00
evangelostsak 458d8956e2 fix(env): sort the underlay key and shorten its comment
529c5ace4 placed INFINITO_SWARM_SSH_UNDERLAY after
INFINITO_SWARM_STEP_TIMEOUT_MINUTES and gave it a 178-character comment. The
env-file schema caps a comment at 140 and the sort gate wants ASC order; both
only surfaced once the suite ran against the merged tree.
2026-10-07 10:04:31 +02:00
evangelostsak e9929d07c3 Merge remote-tracking branch 'origin/main' into feature/svc-net-wireguard
One conflict, in the generated role overview table of README.md.

Both sides had edited the same block. Upstream dropped Redis from the pihole
row; this branch still listed it. Upstream also listed svc-net-wireguard-core,
-plain and -firewalled, which this branch removed in e706170a0b as superseded
by the unified svc-net-wireguard role.

Resolved by taking upstream's block and then running `make readme-index`, so
the table is generated from the roles that actually exist rather than
hand-merged: Redis is gone from pihole, the three legacy WireGuard roles stay
gone, and svc-net-wireguard is listed once. `make readme-index check=true`
reports the table up to date.

Git kept the role deletions silently and correctly - upstream has not touched
those three directories since the merge base, so there was no modify/delete
conflict to resolve.
2026-10-07 10:04:31 +02:00
evangelostsak c20dd0e5f3 docs(ci): document the underlay variable
An unset variable resolves to the empty string, so the table has to say
what the run does while it is unset.
2026-10-07 09:54:32 +02:00
evangelostsak dd3d10a9a7 feat(ci): read the underlay flag from a repository variable
A repository variable rather than a workflow input: the arm is a
measurement, not an axis, and it should be set for one sweep and cleared.
2026-10-07 09:54:32 +02:00