Commit Graph

2954 Commits

Author SHA1 Message Date
e72e5d3e37 Introduced CSP wildcards for MiniQR 2025-11-27 22:23:00 +01:00
21a1c99fda Added Newsletter button to following 2025-11-27 22:02:20 +01:00
9f4bbd4066 Added test for littlejs filter 2025-11-27 21:51:08 +01:00
7eac9374bc Implemented loading of javascript.js und javascript.js.j2 files 2025-11-27 21:50:39 +01:00
6fda85788a feat(web-app-littlejs): add JS submenu support, left-expand menus, improve headline & cleanup examples
This update introduces full JavaScript-based nested submenu handling for the
Apps menu, enabling reliable click-based toggling without interference from
Bootstrap’s native dropdown logic. Submenus now expand to the left via custom
CSS and no longer require dropstart or data-bs-toggle attributes.

Changes include:
- Add javascript feature flag and enable inline eval in CSP
- Add javascript.js implementing custom submenu toggle logic
- Add CSS rules for left-expanding nested dropdown menus
- Replace hardcoded headline with LITTLEJS_HEADLINE variable
- Modernize “Play” → “Start” labels in cards
- Remove unused/legacy examples from examples.yml (commented out, not deleted)
- Cleanup nav_top.html.j2 to remove conflicting Bootstrap attributes

Conversation reference:
https://chatgpt.com/share/6928b4c7-19ec-800f-a087-9af304ef4ed9
2025-11-27 21:30:15 +01:00
6abd4b0373 Implemented LittleJS run logic https://chatgpt.com/share/692894bc-5a58-800f-b803-eb906c3cec65 2025-11-27 20:05:56 +01:00
63ad5e807b Implemented functioning full game link https://chatgpt.com/share/692894bc-5a58-800f-b803-eb906c3cec65 2025-11-27 19:13:42 +01:00
9ce21b7242 Solved Roulette wheel feature bug 2025-11-27 19:02:44 +01:00
ba26e5a53b Added LittleJS draft https://chatgpt.com/share/69288dea-0870-800f-9939-aad7ed2f54b3 2025-11-27 18:44:33 +01:00
05ff3d3d61 Added matomo to roles and optimized features configuration 2025-11-27 14:46:04 +01:00
873607246c Reactivated roulette wheel to harmonize desktop dashboard view 2025-11-27 14:45:13 +01:00
ac5fdeafd2 Activated oauth2 for suitecrm 2025-11-27 13:48:45 +01:00
cc817f3967 Acitivated handler flushing for mini qr 2025-11-27 13:47:48 +01:00
4f48cf633b Add dynamic PHP error handling config for SuiteCRM:
- Introduce env-aware php.ini.j2 template
- Mount PHP config into container via docker-compose
- Add SUITECRM_PHP_CONFIG_HOST and SUITECRM_WELL_SOFTWARE_NAME variables
- Refactor LDAP extension path using normalized software name

https://chatgpt.com/share/69284194-cf6c-800f-b138-eb6ddf25592c
2025-11-27 13:18:50 +01:00
bbebf7964d SuiteCRM: Add Legacy Theme SCSS→CSS build step (pscss via PHP) to fix missing legacy UI styles.
See related ChatGPT conversation:
https://chatgpt.com/share/69283b1f-20b0-800f-9f91-3da963470558x
2025-11-27 12:51:16 +01:00
c5afae42cf Remove unused SuiteCRM SMTP environment variables and cleanup user definitions
Reference: https://chatgpt.com/share/6928391d-7474-800f-bfcd-256b265a4fc8
2025-11-27 12:42:37 +01:00
d7e0123af2 SuiteCRM LDAP integration fixes:
- Correct LDAP attribute FIRSTNAME changed to givenName
- Add automated ldap.yaml rendering and bind mount
- Create LDAP extension directory inside container
- Adjust docker-compose.yml for proper LDAP config mount
- Add strict formatting template for ldap.yaml
- Update paths for SUITECRM_LDAP_CONFIG_HOST and SUITECRM_LDAP_EXTENSION_DIR

Details: https://chatgpt.com/share/6928375d-1458-800f-bcc3-b3364ea69078
2025-11-27 12:35:07 +01:00
3fe83f26d5 SuiteCRM: Implement and activate full LDAP authentication support
- Removed legacy SugarCRM LDAP config generation
- Implemented Symfony/SuiteCRM 8 native LDAP ENV configuration
- Added auto-creation provider settings
- Added trusted proxy + host configuration for correct HTTPS handling
- Added automatic domain-based TRUSTED_HOSTS generation
- Ensured cache is cleared/warmed up on container start
- Verified LDAP authentication now works as expected

Conversation reference: https://chatgpt.com/share/69281db4-4ff4-800f-8577-77e20120e09a
2025-11-27 10:46:32 +01:00
bee833feb4 Introduce deterministic CSS gradient angle and shared color palette facts
This ensures CSS output remains stable between runs, preventing unnecessary OpenResty restarts for every service caused by randomized gradients or regenerated CSS files.

Ref: https://chatgpt.com/share/69281d4b-2488-800f-8c0c-c0db44810d1d
2025-11-27 10:44:01 +01:00
b80cfbdc9d Finished CLI Installer for SuiteCRM Implementation (LDAP still missing) - https://chatgpt.com/share/69274924-9dec-800f-8653-345aa2c25664 2025-11-27 04:02:04 +01:00
6d6b0fdea6 Implemented CLI installer draft and replaced OIDC by OAuth2 Proxy for SuiteCRM - See https://chatgpt.com/share/69274924-9dec-800f-8653-345aa2c25664 2025-11-27 01:10:11 +01:00
d97d34a822 Refactored OAuth2 Proxy and PhpLDAPAdmin 2025-11-27 00:21:22 +01:00
4b2c7eef88 Finished SuiteCRM install mask - See https://chatgpt.com/share/69274924-9dec-800f-8653-345aa2c25664 2025-11-26 22:21:20 +01:00
e6cb0cbed9 Added suitecrm draft - See https://chatgpt.com/share/69274924-9dec-800f-8653-345aa2c25664 2025-11-26 19:38:37 +01:00
254a685b05 Add cleanup task for MIG roles directory and restructure build_data tasks
Conversation: https://chatgpt.com/share/6926bece-332c-800f-a5f6-b76fe8cb42fa
2025-11-26 19:13:40 +01:00
9cbb74b7c8 Added the correct http status code for mini-qr 2025-11-26 17:00:46 +01:00
62d20fbb71 Joomla: Add upload-size support, introduce php-upload.ini, refactor task numbering, update Docker Compose and override logout client_max_body_size
This commit adds dynamic upload size configuration (upload_max_filesize + post_max_size), introduces a dedicated php-upload.ini template, mounts it through Docker Compose, renumbers all task files consistently, updates main.yml flow, and overrides client_max_body_size inside the logout role.

Improves clarity, consistency, and brings Joomla in line with other IN roles.

See: https://chatgpt.com/share/6927075c-4de0-800f-bcee-b1f5193e4a99
2025-11-26 14:59:51 +01:00
da8dc3b53a CSP: Add logout-specific 'unsafe-inline' injection for script-src-attr/elem and extend unit test coverage
Implements automatic addition of 'unsafe-inline' when logout feature is enabled, ensuring inline handlers work for iframe logout bridge. Preserves strict base script-src when explicitly disabled. Includes full test suite for logout behaviour, propagation rules, and base override interactions.

Context: https://chatgpt.com/share/6927075c-4de0-800f-bcee-b1f5193e4a99
2025-11-26 14:58:17 +01:00
287cccf6cb Made /etc/msmtprc volume for wordpress read only 2025-11-26 14:36:40 +01:00
61ee993ff1 Fix Listmonk bounce mailbox: switch from SMTP port to POP3 port 995 for correct bounce processing.
Reference: https://chatgpt.com/share/69270222-b8dc-800f-9527-3088a85ed71c (conversation about Listmonk POP3 bounce error)
2025-11-26 14:35:52 +01:00
2e490ed238 Optimized CSS 2025-11-26 14:27:42 +01:00
c11ea9b699 Further CSS improvements for Discourse 2025-11-26 12:39:13 +01:00
2f5ead2212 Optimized discourse css 2025-11-26 11:44:26 +01:00
13e74a86a6 Removed whitespace 2025-11-26 11:17:42 +01:00
962c68fdab Optimized Mobilizon CSS 2025-11-26 11:16:42 +01:00
f8899e9493 Refactor Shopware role: separate Shopware app version and PHP runtime, update Dockerfile to use dynamic images, consolidate pull_policy, and improve image configuration. See conversation: https://chatgpt.com/share/6926d2f2-083c-800f-916a-7c260d1eada8 2025-11-26 11:14:29 +01:00
9c65bd4839 Refine role dependency graph/tree builders and tests
- Refactor cli/build/graph.py to use cached metadata and dependency indices
  for faster graph generation and cleaner separation of concerns
- Refactor cli/build/tree.py to delegate per-role processing to process_role()
  and support parallel execution via ProcessPoolExecutor
- Add unit tests for graph helper functions and build_mappings()
  under tests/unit/cli/build/test_graph.py
- Add unit tests for find_roles() and process_role() behaviour
  under tests/unit/cli/build/test_tree.py
- Remove the old include_role dependency integration test which relied on the
  previous tree.json dependencies bucket

For details see ChatGPT conversation: https://chatgpt.com/share/6926b805-28a0-800f-a075-e5250aab5c4a
2025-11-26 09:20:45 +01:00
aca2da885d Solved multiple MIG bugs 2025-11-26 01:16:22 +01:00
d6422a7881 Updated Mobilizon docker repository 2025-11-25 21:52:46 +01:00
8cf3dbd5bf Add system_service_suppress_flush to complement force_flush logic for backup to local 2025-11-25 19:17:53 +01:00
dfa5e26582 Fix Mastodon role: run DB migrations before health checks, restructure setup/wait tasks, introduce service name variables, and update docker-compose templates.
Reference: https://chatgpt.com/share/6925e87d-3e0c-800f-bfff-902d1faa122e
2025-11-25 18:34:11 +01:00
a312f353fb Refactor JVM memory filters, add Redis sizing and Docker cleanup service
- Replace jvm_filters with unified memory_filters (JVM + Redis helpers)
- Add redis_maxmemory_mb filter and unit tests
- Introduce sys-ctl-cln-docker role (systemd-based Docker prune + anon volumes)
- Refactor disk space health check to Python script and wire SIZE_PERCENT_CLEANUP_DISC_SPACE
- Adjust schedules and services for Docker cleanup and disk space health

See discussion: https://chatgpt.com/share/6925c1c5-ee38-800f-84b6-da29ccfa7537
2025-11-25 15:50:27 +01:00
e333c9d85b Fix Nextcloud Talk Recording volumes and fully enable external DB/Redis integration for ONLYOFFICE.
Includes:
- Talk recording tmp volume wiring for Nextcloud
- ONLYOFFICE external PostgreSQL/Redis env integration
- Added explicit volumes for pgdata/redis/rabbitmq
- Switched ONLYOFFICE role to sys-stk-full-stateful
- Updated docker-compose mounts and vars
- CSP and feature flag improvements

Conversation reference: https://chatgpt.com/share/6922f50e-cc44-800f-89fc-e1251c5bbe45
2025-11-23 12:51:03 +01:00
854e6902d3 (Draft) Add automated Nextcloud Talk recording backend deployment and configuration
Includes:
- Talk recording Docker service
- Schema credential for recording secret
- Compose integration
- Automatic Talk 'recording_servers' app config

Details: https://chatgpt.com/share/6920d8fc-81b4-800f-8d83-af22eeed94b5
2025-11-21 22:26:55 +01:00
cc1ed2b125 Optimized CSP for OnlyOffice 2025-11-21 21:50:12 +01:00
28caa495e7 Add full ONLYOFFICE integration:
- New web-svc-onlyoffice role (Docker, env, CSP, proxy hooks)
- Nextcloud plugin integration with JWT and CSP updates
- Custom Nextcloud image with updated CA certificates
- Networking and port assignments
- Disabled Collabora by default
- Enabled ONLYOFFICE by default
- Link to conversation for reference: https://chatgpt.com/share/691f49ac-54d8-800f-83c3-60cf8c100183
2025-11-21 21:36:27 +01:00
19de04c475 Added CSP to load external websites in whiteboard 2025-11-21 18:09:14 +01:00
002f8de3ec feat(proxy): add configurable client_max_body_size for HTML and upload locations
This commit introduces a unified mechanism to configure client_max_body_size
for both HTML and upload locations in the sys-svc-proxy role. The directive
is now injected early in html.conf.j2 and moved to a dedicated block in
upload.conf.j2 to ensure consistent behavior for large file uploads such as
OpenProject attachments.

Additionally:
- Added client_max_body_size variable override from web-app-openproject (set to 30m).
- Reordered header includes to avoid duplicate injection.
- Improved comments and structure for better clarity.

Reference: https://chatgpt.com/share/691d873e-9b50-800f-ae70-baf8bf1e5454
2025-11-19 10:02:33 +01:00
68a8128d38 Increase WordPress container resources (cpus=1, mem_reservation=0.5g, mem_limit=1.5g, pids_limit=512)
Ref: Updated based on performance guidance from ChatGPT conversation:
https://chatgpt.com/share/691c8f1f-306c-800f-92b0-1bbe8e2ba5c4
2025-11-18 16:22:33 +01:00
36f9573fdf feat(filters): enforce safe Node.js heap sizing via reusable filter
- Add node_autosize filter (node_max_old_space_size) using get_app_conf
- Raise error when mem_limit < min_mb to prevent OOM-kill misconfigurations
- Wire Whiteboard NODE_OPTIONS and increase mem_limit to 1g; set cpus=1
- Refactor PeerTube to use the same filter; simplify vars
- Add unit tests; keep integration filters usage green

Context: https://chatgpt.com/share/690e0499-6a94-800f-b8ed-2c5124690103
2025-11-07 15:39:54 +01:00