Commit Graph
20 Commits
Author SHA1 Message Date
kevinveenbirkenbach a715970506 Refactor lint tooling and shell scripts 2026-03-18 12:37:31 +01:00
kevinveenbirkenbach 9ed864e1e2 ci(images): rename mirror workflows and add scheduled CI image cleanup
- rename mirror-images-* workflows to images-mirror-*
- update ci-orchestrator job ids and dependencies accordingly
- add weekly + manual GHCR cleanup workflow (images-cleanup-ci)
- extract cleanup logic into scripts/administration/ghcr/cleanup_ci_images.sh
- support org and user GHCR owners via automatic API scope detection
- delete only ci-* tagged image versions older than N days (default: 7)

https://chatgpt.com/share/e/69906083-93d4-8013-bd0b-e441615e72bf
2026-02-14 12:46:04 +01:00
kevinveenbirkenbach 53e817fa22 refactor(compose): migrate from docker-compose.yml to compose.yml everywhere
- Rename all docker-compose.yml templates to compose.yml
- Update override and CA override filenames accordingly
- Adjust compose wrapper, lookup plugins, filters and path helpers
- Update roles, tasks, handlers and scripts to use compose CLI
- Rewrite documentation and admin guides to reference compose
- Update unit and integration tests to expect compose.yml
- Keep internal variable keys for backward compatibility where needed

https://chatgpt.com/share/69870272-b168-800f-84c3-6417398e441f
2026-02-07 10:14:21 +01:00
kevinveenbirkenbach ba35d7c5e0 refactor(container): replace docker ps usages with container wrapper and move binaries to /usr/bin
https://chatgpt.com/share/698660b7-4c78-800f-b25f-af5408cff034
2026-02-06 22:44:14 +01:00
kevinveenbirkenbach 51239968fd refactor: rename docker-compose roles to sys-svc-compose and update paths
Renamed docker-compose and docker-compose-ca roles to sys-svc-compose and sys-svc-compose-ca, updated template includes, handlers, lookups, tests, and variables, and moved compose instances to /opt/compose.

https://chatgpt.com/share/6985ab2c-8344-800f-9e9a-768f562d138d
2026-02-06 09:49:42 +01:00
kevinveenbirkenbach 067669783a refactor(purge): split entity purge into db/compose/dir scripts
- Add purge/entity/all.sh orchestrator with --wipe-data-only and --db-only
- Extract DB purge logic into purge/entity/db.sh (best-effort Postgres + MariaDB)
- Add purge/entity/compose.sh to bring stacks down with volumes removed
- Add purge/entity/dir.sh to remove stack directory and volumes folder
- Rename purge_web.sh to purge/web.sh for consistent layout

https://chatgpt.com/share/69826b33-1470-800f-9def-6b4289713e2f
2026-02-03 22:39:39 +01:00
kevinveenbirkenbach 3215bc7d53 dev(apparmor): add teardown/restore hooks for local docker workflows
Introduce explicit AppArmor teardown before docker-up and restore after docker-down.
Replace complain-mode helper with full profile unload/reload scripts to ensure
deterministic local dev behavior while keeping CI unaffected.

https://chatgpt.com/share/697f4782-8304-800f-8b07-cb6484a4148f
2026-02-01 13:30:49 +01:00
kevinveenbirkenbach 4f10f82372 Made executable 2026-01-31 23:15:49 +01:00
kevinveenbirkenbach 0910029e3d admin: add trust-ca make target and host CA trust script
- add make target `trust-ca` as thin wrapper
- introduce scripts/administration/trust_ca.sh
- extract Infinito root CA from running container
- install CA into host trust store via with-ca-trust.sh
- keep Makefile free of logic, delegate to script

https://chatgpt.com/share/697e31e7-e548-800f-9edd-9b030ee12c5b
2026-01-31 17:46:24 +01:00
kevinveenbirkenbach 340e3696b6 dev: disarm AppArmor via host script and Makefile wrapper
Move AppArmor handling out of docker-compose files and into a
dedicated dev-only administration script. The new `disarmapp`
Make target acts as a thin wrapper to set relevant AppArmor
profiles (php-fpm, dovecot) to complain mode on the development host,
keeping compose templates clean and prod-like.

https://chatgpt.com/share/697cfbdf-e2a8-800f-bf06-b75e8c9d926e
2026-01-30 21:48:43 +01:00
kevinveenbirkenbach 2678090934 feat(ca-trust): unify trust injection + strict templating
Move `with-ca-trust.sh` to `sys-ca-selfsigned` as the single source of truth, add `CA_TRUST_NAME`/`trust_name`, and pass it through `compose_ca_inject.py` + `compose_ca_inject_cmd`. Introduce `module_utils/templating.py` for strict multi-pass rendering with fallback env lookup, update TLS self-signed regen logic, purge script, and extend unit tests accordingly.

https://chatgpt.com/share/697c876d-7140-800f-9981-762dfeeafdfe
2026-01-30 11:26:46 +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 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 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 a9f8eb2d8f Added adminstration helper 2026-01-25 14:32:04 +01:00
kevinveenbirkenbach bbea43f669 refactor(ci,tests): migrate discovery and local deploy to development compose stack
- Replace legacy ci scripts with meta build-test-matrix and resolve-invokable-roles
- Switch log tailing to scripts/meta/log-tail.sh
- Rename local DNS helpers to scripts/dns/*
- Run ci-deploy-discover via development docker-up
- Replace deploy-local-full with development compose orchestrator
- Ensure INFINITO_DISTRO is passed explicitly for local full deploy

https://chatgpt.com/share/696f9ccd-e4d8-800f-9c67-9c071188ecd0
https://chatgpt.com/share/696facf5-b2fc-800f-8a33-3352dd193c54
2026-01-20 17:27:09 +01:00
kevinveenbirkenbach a367fae1c1 ci(docker): ensure deterministic CI by wiping Docker data-root on /mnt
- Stop docker and clean /mnt/docker before restart
- Avoid volume/password drift and flaky Postgres init on GitHub runners
- Move purge_entity.sh into CI administration scope

https://chatgpt.com/share/696f4386-fbbc-800f-bdde-f1e6c4145c84
2026-01-20 11:52:22 +01:00
kevinveenbirkenbach 0fa4454599 fix(admin): purge_entity.sh also removes docker volumes
Use `docker compose down -v` to ensure named and anonymous volumes
belonging to the stack are removed during purge.

https://chatgpt.com/share/696e2523-77d8-800f-bc3d-b81d628e1e2a
2026-01-19 13:35:40 +01:00
kevinveenbirkenbach 63bf2f7c62 administration: make DB drop best-effort and allow purging postgres/mariadb stacks safely
- Add best-effort helpers for Postgres and MariaDB database drops
- Avoid connecting to the target DB when dropping Postgres (use template1 for 'postgres')
- Ignore DB drop errors and continue with purge (compose down + rm -rf)
- Protect MariaDB system databases from being dropped
- Update script header to reflect best-effort behavior
2026-01-18 17:46:46 +01:00
kevinveenbirkenbach 0d8bf44c01 scripts/administration: add purge_entity helper to remove stacks + optional DB drop
- Support purging multiple stacks in one run
- Best-effort detect postgres/mariadb from .env and drop DB if found
- Always run compose down and delete /opt/docker/<stack>/volumes + stack dir
- Skip DB drop with warning when no backend is detected

https://chatgpt.com/share/696cfcd5-2b84-800f-a386-b7d1d38d68b7
2026-01-18 16:31:25 +01:00