Commit Graph
14682 Commits
Author SHA1 Message Date
kevinveenbirkenbach 49d38f1420 included sys-lock for hddd/ssd optimation 2026-01-28 21:54:04 +01:00
kevinveenbirkenbach 52ba09d165 fix(local-deploy): use TEST_DEPLOY_TYPE inventory file and fix shell expansion
https://chatgpt.com/share/697a73ea-1b34-800f-8318-be15afab2d08
2026-01-28 21:38:47 +01:00
kevinveenbirkenbach 88fcb9c5ff fix(xwiki): pin OIDC authenticator version to avoid install plan failure
https://chatgpt.com/share/697a648e-87d4-800f-9f5e-a526d45e346a
2026-01-28 20:33:30 +01:00
kevinveenbirkenbach 6558f696c7 fix(xwiki): correct assert fail_msg indentation in extension installer
https://chatgpt.com/share/697a5c80-9de8-800f-8025-805697cf7352
2026-01-28 19:58:54 +01:00
kevinveenbirkenbach 91accedf68 fix(listmonk): add resource limits and normalize service config
Add CPU, memory reservation/limit, and PID limits for listmonk to ensure
stable operation, and align boolean formatting across service entries.

https://chatgpt.com/share/697a55ef-9620-800f-b56e-6a5c2b1b2151
2026-01-28 19:39:44 +01:00
kevinveenbirkenbach d7395253a8 fix(openwebui): add resource limits to prevent OOM restarts
Set CPU, memory reservation/limit and PID limit for Open WebUI to avoid
exit code 137 (OOM kills) during startup and migrations.

https://chatgpt.com/share/697a55ef-9620-800f-b56e-6a5c2b1b2151
2026-01-28 19:30:43 +01:00
kevinveenbirkenbach 79d50ae9b8 fix(pixelfed): ensure writable .env for www-data and use managed env path
- set ownership and permissions on Pixelfed .env for www-data (uid/gid 33)
- mount managed env file path instead of local ./env
- remove forced APP_KEY generation flag and quote MAIL_FROM_NAME
- prevent premature handler flush during stack load

https://chatgpt.com/share/697a4a0e-8ebc-800f-85f8-e8e21c23fe9c
2026-01-28 18:40:19 +01:00
kevinveenbirkenbach 0d95b6a9e8 Removed unnecessarty True 2026-01-28 18:39:43 +01:00
kevinveenbirkenbach 5ec5b64dae - Add ruby_dq filter to correctly escape values for Ruby double-quoted strings
- Apply dotenv_quote to GITLAB_OMNIBUS_CONFIG to prevent .env parsing errors
- Fix docker compose failures with passwords containing ', $, € or newlines

https://chatgpt.com/share/697a48af-ba40-800f-8de6-930adda782b0
2026-01-28 18:34:35 +01:00
kevinveenbirkenbach 5ceaa4bba7 Downgraded minio to pre-alpha 2026-01-28 17:14:52 +01:00
kevinveenbirkenbach e1d572c37d fix(bigbluebutton/greenlight): create admin via rails runner with required fields
https://chatgpt.com/share/697a3457-92a8-800f-8df7-810a2e177c90
https://chatgpt.com/share/697a3470-764c-800f-aa26-5a4bc8298905
2026-01-28 17:07:41 +01:00
kevinveenbirkenbach 2ea72854b9 refactor(docker-compose): replace git branch with explicit git version/ref
Rename docker_git_repository_branch to docker_git_repository_version
to correctly reflect git refs (branch, tag, commit) and pin
universal-logout to v1.1.0 for reproducible deployments.

https://chatgpt.com/share/697a2741-bc3c-800f-9713-1b43d353e962
2026-01-28 16:11:45 +01:00
kevinveenbirkenbach 171693a2fa Added more documentation 2026-01-28 14:11:26 +01:00
kevinveenbirkenbach ee54c41c45 fix(web-app-bigbluebutton): ensure postgres password is reconciled with env secret
Ensure the postgres user password is updated after docker-compose startup
to avoid authentication failures when secrets change and volumes persist.

https://chatgpt.com/share/697a058b-6978-800f-8c42-c2915f9e5f69
2026-01-28 13:47:55 +01:00
kevinveenbirkenbach 2755e0ce3d feat(keycloak): optionally mark user emails as verified via kcadm script
https://chatgpt.com/share/6978e108-6d80-800f-91ba-c2b5101e3dbf
2026-01-27 16:59:57 +01:00
kevinveenbirkenbach ddb210b294 feat(users): add firstname/lastname to generated users and LDAP entries
- Generate firstname and lastname fields in CLI user setup
- Add meaningful default description including primary domain
- Pass firstname/lastname explicitly to OpenLDAP givenName/sn
- Remove LDAP-side fallbacks to item.key to ensure consistent user data

https://chatgpt.com/share/6978d573-a8c4-800f-8670-c9344f594a3a
2026-01-27 16:10:26 +01:00
kevinveenbirkenbach 791097655d refactor(keycloak): move realm import config under service and make TOTP optional
- move realm import toggle from actions.import_realm to docker.services.keycloak.realm.import_enabled
- add docker.services.keycloak.realm.totp_enabled flag
- conditionally include CONFIGURE_TOTP for users and realm required actions
- prepare realm import for optional OTP enforcement

https://chatgpt.com/share/6978cf00-196c-800f-abd6-5d0a11f7fcf8
2026-01-27 15:42:59 +01:00
kevinveenbirkenbach 5a5c14bb65 refactor(identity): split full_name into firstname/lastname and unify LDAP password handling
- Replace users.*.full_name with firstname/lastname across inventory and roles
- Update desk-git configuration to use firstname + lastname for author identity
- Refactor OpenLDAP user provisioning:
  - Stop setting userPassword via ldap_entry
  - Always set passwords via ldap_passwd (server-side SSHA hashing)
  - Add givenName support and align attributes with inetOrgPerson
- Improve administrator user metadata and descriptions

https://chatgpt.com/share/6978cebb-3c9c-800f-ac1b-d67920a9cb23
2026-01-27 15:41:58 +01:00
kevinveenbirkenbach 52e05c38f6 fix(snipe-it/ldap): normalize firstname attribute to lowercase to match LDAP result keys
Snipe-IT expects LDAP attribute keys in lowercase when mapping user fields.
Previously, the FIRSTNAME attribute was passed through unchanged (e.g. givenName),
causing LDAP sync to fail with "The first name field is required" despite the
attribute being present in LDAP.

This change introduces a dedicated variable and normalizes the firstname
attribute to lowercase, aligning Ansible configuration with Snipe-IT's LDAP
import behavior without modifying filters or LDAP data.

https://chatgpt.com/share/6978caca-9170-800f-b227-037c2f4bbf1d
2026-01-27 15:25:10 +01:00
kevinveenbirkenbach 8b94174d07 fix(cors): remove trailing slash from Access-Control-Allow-Origin for logout proxy
https://chatgpt.com/share/6978b236-3924-800f-b76c-450702240996
2026-01-27 13:39:31 +01:00
kevinveenbirkenbach 914a09882f Set openldap service name to entity_name 2026-01-27 13:28:36 +01:00
kevinveenbirkenbach f4681f4f95 fix(snipe-it): make LDAP auth filter configurable and persist UI-compatible settings
- Make ldap_auth_filter_query explicitly configurable instead of hardcoded
- Pass LDAP auth filter via Ansible to Snipe-IT settings model
- Use minimal LDAP filter fragment for correct Snipe-IT query composition
- Fail fast if LDAP_AUTH_FILTER_QUERY is missing
- Align LDAP configuration with actual UI persistence behavior

https://chatgpt.com/share/6978a387-bd50-800f-b804-e1115a9434cb
2026-01-27 12:37:30 +01:00
kevinveenbirkenbach bd0888e564 Revert "fix(ldap): normalize user filter and adapt Snipe-IT compatibility"
This reverts commit 5f527724cb.
2026-01-27 11:32:52 +01:00
kevinveenbirkenbach 4627c1a589 removed redundant B64 decryption 2026-01-27 11:31:13 +01:00
kevinveenbirkenbach c78d37c6fe feat(web-app-snipe-it): add idempotent bootstrap administrator creation
- add task to detect existing Snipe-IT admin users
- create initial administrator via artisan CLI if none exists
- reuse global `users.administrator` credentials
- ensure safe re-runs and mask credentials in logs

https://chatgpt.com/share/6977be40-3d98-800f-8d26-ae3b4babcf89
2026-01-26 20:19:12 +01:00
kevinveenbirkenbach 5f527724cb fix(ldap): normalize user filter and adapt Snipe-IT compatibility
- Normalize LDAP user filter to a canonical, valid LDAP form
- Keep LOGIN filter composition consistent across consumers
- Strip outer parentheses for Snipe-IT to avoid UI validation errors
- Align Nextcloud user directory condition handling
- Improve variable formatting and clarity in Snipe-IT role

https://chatgpt.com/share/6977bc80-cd10-800f-b51f-00768d8c8e3e
2026-01-26 20:11:51 +01:00
kevinveenbirkenbach 9b0a8f4797 fix(snipe-it): store LDAP bind password UI-compatible (serialize + Crypt::encrypt)
- Switch LDAP bind password handling to Base64 input
- Decode, serialize, and encrypt password exactly like Snipe-IT UI
- Replace DB updates with Settings model to follow UI code path
- Remove artisan tinker usage for deterministic execution
- Use optimize:clear for proper cache reset
- Align LDAP filter variable naming in Ansible task

https://chatgpt.com/share/6977bbd5-8eb4-800f-9e32-5b17898d79a7
2026-01-26 20:08:58 +01:00
kevinveenbirkenbach adf17fd146 feat(admin): purge DB even if stack directory is missing
- Always attempt DB purge by stack name
- Try both PostgreSQL and MariaDB backends
- Support DROP or TRUNCATE via --wipe-data-only
- Keep compose/volume cleanup best-effort and safe
- Improve robustness for orphaned databases

https://chatgpt.com/share/6977a100-0e00-800f-8bb0-320b00e94c7e
2026-01-26 18:14:30 +01:00
kevinveenbirkenbach c703a5d7a2 fix(snipe-it): mount persistent .env to prevent APP_KEY regeneration
Persist the .env file inside the container to avoid automatic APP_KEY
regeneration by the Snipe-IT image, which caused LDAP password
decryption failures after container restarts.

https://chatgpt.com/share/69779c2d-9c4c-800f-92d8-d2ae4aaa9769
2026-01-26 17:53:53 +01:00
kevinveenbirkenbach bf6732d36a Introduced correct TLS enabled variable for Snipe-IT 2026-01-26 17:12:05 +01:00
kevinveenbirkenbach 045c4ba7b7 fix(snipe-it): make secure cookies and HSTS depend on TLS_ENABLED
https://chatgpt.com/share/69779204-c798-800f-bc39-dbf9e47f959d
2026-01-26 17:10:29 +01:00
kevinveenbirkenbach 67b122a14c Fixed line breaks 2026-01-26 16:43:37 +01:00
kevinveenbirkenbach 5ca6ecd3d7 fix(dotenv): escape $ for docker compose env interpolation
Ensure dotenv_quote escapes `$` as `$$` so secrets are not
expanded by docker compose when rendered into .env files.

Add unit tests covering $, quotes, backslashes, unicode and
edge cases to prevent regressions.

https://chatgpt.com/share/6977825f-d8f8-800f-bafb-aae3b3704945
2026-01-26 16:03:36 +01:00
kevinveenbirkenbach 08ca36d43e Removed unused variables 2026-01-26 13:14:27 +01:00
kevinveenbirkenbach b06b613c39 Removed falsy when coditionm 2026-01-26 12:45:40 +01:00
kevinveenbirkenbach 3d3d5480d7 fix(admin): make purge_entity.sh TTY-safe and support multi-entity cleanup
- Isolate each stack purge in a subshell to prevent early termination
- Detach all docker/docker-compose calls from STDIN to avoid TTY issues inside containers
- Harden MariaDB drop/truncate logic against nested docker exec behavior
- Allow cleanup.sh to accept multiple APP values (whitespace or comma-separated)
- Deduplicate derived entities before purging and iterate deterministically

https://chatgpt.com/share/69774b3d-611c-800f-8cf0-422d11d50c1c
2026-01-26 12:08:36 +01:00
kevinveenbirkenbach af9d3e00fe feat(snipe-it): refactor LDAP setup into dedicated script and modernize docker compose usage
- Extract LDAP configuration logic into reusable ldap.sh script
- Pass all LDAP and auth parameters via environment for clarity and safety
- Ensure idempotent wait for settings table before applying LDAP config
- Encrypt and persist LDAP bind password via Laravel Crypt API
- Clear Laravel config and application cache after LDAP changes
- Replace deprecated docker-compose calls with docker compose
- Simplify Ansible LDAP task to a single script invocation

https://chatgpt.com/share/6977420f-d514-800f-b408-a91ed4b47f83
2026-01-26 11:29:29 +01:00
kevinveenbirkenbach 0afaabc494 feat(openldap): make env vars mandatory and enable configurable slapd logging
- Enforce required LDAP_* environment variables (fail fast on startup)
- Add configurable LDAP_LOG_LEVEL for slapd runtime logging
- Enable detailed stats logging in debug mode, stats in normal mode
- Route slapd logs to stdout for docker logs visibility

https://chatgpt.com/share/69773341-01ac-800f-8d0e-429398b6dcc5
2026-01-26 10:26:07 +01:00
kevinveenbirkenbach e79f7311d6 Corrected command 2026-01-25 20:41:56 +01:00
kevinveenbirkenbach c5945d9212 - Increase container resource limits for Snipe-IT (CPU, memory, pids)
- Fix PHP CLI OOM during db:seed by explicitly setting memory_limit
- Remove forced www-data execution for artisan commands to avoid permission issues
- Simplify service availability check (root URL instead of /login)
- Align LDAP and cache-related artisan commands with container defaults
- Normalize inventory sample credentials quoting

https://chatgpt.com/share/69767129-4240-800f-a69c-b2647a1e5083
2026-01-25 20:38:08 +01:00
kevinveenbirkenbach 4bbdbeb54b feat(admin): add --wipe-data-only to purge_entity.sh
- Add --wipe-data-only flag to truncate DB tables instead of dropping databases
- Implement best-effort Postgres TRUNCATE for all public tables (CASCADE)
- Implement best-effort MariaDB TRUNCATE with FOREIGN_KEY_CHECKS handling
- Keep compose down -v and stack/volumes cleanup behavior unchanged
- Improve env parsing/readability and harden DB backend detection

https://chatgpt.com/share/6976642a-d6f8-800f-976d-7e27a5b45276
2026-01-25 19:42:32 +01:00
kevinveenbirkenbach 2a18cedc71 Changed snipe-it to official image 2026-01-25 19:35:31 +01:00
kevinveenbirkenbach f912cbbc7a Proper deactivation of OIDC in test inventory 2026-01-25 16:08:52 +01:00
kevinveenbirkenbach 5084b17279 refactor(iam): centralize OIDC enablement via role variables
Replace inline get_app_conf(...) checks with dedicated *_OIDC_ENABLED variables
across roles (Discourse, Gitea, Listmonk, Matrix, Mobilizon, Moodle, Pixelfed).
Remove implicit defaults to rely on explicit config and consistent | bool usage.

https://chatgpt.com/share/69763133-1778-800f-959b-e14685fdc6b4
2026-01-25 16:04:57 +01:00
kevinveenbirkenbach 9a092e6284 set web-app-oauth2-proxy to pre-alpha 2026-01-25 15:05:03 +01:00
kevinveenbirkenbach dd783e4a9e Set keyboard color to pre-alpha 2026-01-25 15:03:16 +01:00
kevinveenbirkenbach c038964d44 Set redis to pre-alpha 2026-01-25 15:02:01 +01:00
kevinveenbirkenbach c3aa5bf726 Set memcached to pre-alpha 2026-01-25 15:00:59 +01:00
kevinveenbirkenbach 7a590a3ae5 set hunspell to pre-alpha 2026-01-25 14:51:27 +01:00
kevinveenbirkenbach b4f73539ba Merge pull request #55 from kevinveenbirkenbach/alert-autofix-173
Potential fix for code scanning alert no. 173: Code injection
2026-01-25 14:43:22 +01:00