Commit Graph
219 Commits
Author SHA1 Message Date
kevinveenbirkenbachandClaude Sonnet 4.6 6ef2e05dde test: robustify Playwright auth controls and sync Keycloak state via hooks
- Refactor login/logout test to use reusable expectLoggedOutHeaderAuthState
  and expectLoggedInHeaderAuthState helpers
- Make dropdown detection and logout item discovery more resilient across
  Keycloak versions and timing variations
- Sync Keycloak auth state via onReady/onAuthSuccess/onAuthLogout hooks

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 22:41:07 +02:00
kevinveenbirkenbach d06c3baae4 Fix dashboard card hover flicker 2026-03-31 12:26:08 +02:00
kevinveenbirkenbach 0fa1ec0024 Extract dashboard simpleicons refresh tasks 2026-03-31 11:36:32 +02:00
kevinveenbirkenbach 9a55f8d551 Applied linting 2026-03-31 11:30:45 +02:00
kevinveenbirkenbach 3eecff192c Add dashboard Playwright integration 2026-03-31 11:23:22 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 ec2b513bde feat(config): enforce shared consistency for all enabled services
- Add shared: true to logout, oauth2, and greenlight services wherever
  enabled: true was set without a shared declaration
- Add # noqa: shared comment before role-local internal containers
  (redis, worker, web, opensearch, search) that are intentionally
  not shared
- Add missing enabled: false to ollama in svc-ai-ollama (shared was
  declared without enabled, violating the new consistency rule)
- Add integration test test_service_shared_consistency to enforce:
  Rule 1: enabled=true requires shared=true or a # noqa: shared comment
  Rule 2: shared key requires enabled key to be present

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 20:13:34 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 3bdbd1831e feat(asset): register web-svc-asset as frontend service and wire dependencies
Adds 'asset' service key in 20_services.yml pointing to web-svc-asset so
it is loaded via 01_services.yml when needed. Sets asset: enabled: false,
shared: true in web-svc-asset/config to avoid self-injection. Enables
asset: enabled+shared in dashboard, discourse, and listmonk — the three
roles that consume the asset server for logo/image URLs.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 18:25:31 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 563b0c3c8c feat(cdn): add css/javascript as frontend services pointing to web-svc-cdn
Ensures web-svc-cdn is loaded whenever any app has css or javascript
injection enabled, by registering css and javascript as service keys in
20_services.yml (both mapping to web-svc-cdn). Adds shared: true to all
css/javascript compose service entries across app and svc role configs.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 15:47:07 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 5cc4ce336d chore(dashboard): bump port-ui to 1.1.0
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 11:04:56 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 96649d8c9b refactor(services): centralize frontend service loading with generic lookup plugin
Introduces a SPOT for all frontend service loading in sys-front-inj-all/tasks/01_services.yml,
driven by a new generic `service` lookup plugin that resolves services by key or role name
and returns {id, role, enabled, shared, needed}. Needed = enabled AND shared (direct or
transitive). The canonical key→role mapping moves to group_vars/all/20_services.yml
(previously scattered hardcoded rules). Removes per-role service loads from bigbluebutton,
nextcloud, and dashboard. Renames 01_dependencies.yml→01_services.yml and
08_services.yml→08_daemons.yml. Adds flush_handlers after each service load.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 08:27:21 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 0a8a113bd6 fix: replace --color-XX-rgb-* with canonical --color-rgb-XX-* token format
The colorscheme-generator produces --color-rgb-XX-YY tokens. All role style
files were using the non-canonical --color-XX-rgb-YY alias format. Taiga had
a local alias block mapping the old format to the correct one; that block is
now removed as it is no longer needed.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-28 22:43:44 +01:00
kevinveenbirkenbach 189267496d Rename module_utils package to utils 2026-03-21 02:05:39 +01:00
kevinveenbirkenbach c6f5fdea15 refactor plugins layout and migrate uri calls to uri_retry 2026-03-19 01:41:07 +01:00
kevinveenbirkenbach 4efdef8208 Add min_storage entries for warned roles 2026-02-27 09:55:43 +01:00
kevinveenbirkenbach b95a231a37 refactor(webserver): remove explicit fs owner/group handling 2026-02-21 21:41:14 +01:00
kevinveenbirkenbach f7318feae5 feat(web-app-dashboard): switch dashboard deployment to ghcr.io/kevinveenbirkenbach/port-ui:1.0.0
- stop pulling/building from the port-ui repository
- run dashboard via fixed image tag
- mount generated config.yaml into /app/config.yaml (read-only)
2026-02-19 16:05:26 +01:00
kevinveenbirkenbach c1ec02912d fix(web-app-dashboard): validate dashboard domains against DOMAIN_PRIMARY 2026-02-13 08:16:59 +01:00
kevinveenbirkenbach 92946ee008 refactor(core): introduce SOFTWARE_DOMAIN and unify homepage, tls, service, and oidc defaults
* add SOFTWARE_DOMAIN derived from SOFTWARE_NAME lowercased
* introduce DOMAIN_HOMEPAGE defaulting to dashboard domain if present, otherwise SOFTWARE_DOMAIN
* add automatic primary → homepage redirect mapping in constructor
* migrate TLS and CA paths from SOFTWARE_NAME|lower to SOFTWARE_DOMAIN
* update systemd unit suffix and timer/service discovery globs to SOFTWARE_DOMAIN
* switch OIDC default realm and client id to SOFTWARE_DOMAIN
* adjust SuiteCRM well-known software name to SOFTWARE_DOMAIN
* update unit tests to use SOFTWARE_DOMAIN for strict Jinja expansion

https://chatgpt.com/share/698db094-22bc-800f-8454-10d97f817659
2026-02-12 11:50:55 +01:00
kevinveenbirkenbach 6efde55647 refactor(dashboard): rename web-app-desktop to web-app-dashboard and update service toggle
* replace compose.services.desktop with compose.services.dashboard across all roles
* rename role web-app-desktop to web-app-dashboard
* rename sys-front-inj-desktop to sys-front-inj-dashboard
* update resolver mapping to include web-app-dashboard when dashboard is enabled
* adjust CSP filters to reference dashboard for frame-ancestors handling
* update lookup plugins, filter plugins, templates, vars and run_once flags
* migrate all tests to dashboard naming and service key
* update role dependencies and port mappings
* remove legacy desktop role and variables

BREAKING CHANGE:
The service key compose.services.desktop has been renamed to compose.services.dashboard.
All custom configs, inventories, or overrides must be updated accordingly.

https://chatgpt.com/share/698da7ad-1978-800f-82b4-4755b17be026
2026-02-12 11:12:49 +01:00