Commit Graph
14682 Commits
Author SHA1 Message Date
kevinveenbirkenbach 5f67b0df06 Made infinito dependent on CoreDNS 2025-12-31 12:47:41 +01:00
kevinveenbirkenbach 5598da06d2 tests: run code tests via docker compose and drop unused deploy keys
https://chatgpt.com/share/69550786-4bfc-800f-b34f-27af9b7adc04
2025-12-31 12:22:41 +01:00
kevinveenbirkenbach e4c41add54 test(integration): allow run-once flag anywhere inside run-once blocks
Relax run-once inclusion validation to accept utils/once/flag.yml
at any position within a run-once block instead of enforcing it
as the final task.

https://chatgpt.com/share/6954eba2-05c0-800f-baad-a7546d434627
2025-12-31 10:23:42 +01:00
kevinveenbirkenbach 2d691ff933 fix(backup): ensure backup user and root directory are initialized before services
- Move run-once flag execution before dependency includes
- Add user-backup as explicit dependency for backup and cleanup roles
- Ensure backup root directory exists before cleanup services run
- Fix dependency ordering to prevent cleanback failures on missing paths

https://chatgpt.com/share/6954df53-b9d8-800f-b9e7-a1508cf00279
2025-12-31 09:31:12 +01:00
kevinveenbirkenbach d6edf70539 feat(sys): keep recent backups when cleaning failed docker backups
- Add configurable force keep option with default value 3
- Extend systemd cleanup service to skip newest backups
- Update role documentation to explain safe cleanup behavior and configuration

https://chatgpt.com/share/6954d89e-bf08-800f-be4a-5d237d190ddd
2025-12-31 09:09:08 +01:00
kevinveenbirkenbach fa6245b252 feat(cleanup): pass configurable backups root to cleanback service
Use PATH_INFINITO_BACKUP_DIR as --backups-root for the cleanback systemd service and simplify role README to match the actual behavior.

https://chatgpt.com/share/6954d540-199c-800f-9ab3-9512cc686f21
2025-12-31 08:48:10 +01:00
kevinveenbirkenbach 4263bddbb9 refactor(funkwhale): unify volume layout and env vars, add celerybeat mounts
- replace legacy funkwhale_* vars with FUNKWHALE_* naming
- split data into dedicated media, static and music volumes
- mount media/static/music consistently across api, worker and beat
- update env configuration to match new directory layout
- remove outdated Administration.md

https://chatgpt.com/share/6954cf94-7920-800f-a582-68373a04e836
2025-12-31 08:24:00 +01:00
kevinveenbirkenbach 46de1e0cce Release version 0.5.0 v0.5.0 2025-12-30 20:02:58 +01:00
kevinveenbirkenbach 02a9c06f53 Merge pull request #45 from kevinveenbirkenbach/feature/mailu-e2e
Feature/mailu e2e
2025-12-30 19:57:10 +01:00
kevinveenbirkenbach 244e56fed9 Optimized ruff 2025-12-30 19:33:00 +01:00
kevinveenbirkenbach 4a3923e405 Removed legacy. Now systemd is available and this exiptions aren't required to behandled anymore 2025-12-30 19:28:36 +01:00
kevinveenbirkenbach 1a81ac69f3 Ignored diff ansible_service_mgr in tests -> Official ansible variable 2025-12-30 19:17:59 +01:00
kevinveenbirkenbach d3beb3c05b Bugfixes 2025-12-30 19:04:14 +01:00
kevinveenbirkenbach 2de4c7d314 fix(mail): disable SMTP auth in no-TLS mode and align ports for CI/DinD
- Switch SMTP port dynamically: 465 with TLS, 25 without TLS
- Disable SMTP AUTH automatically when TLS/STARTTLS is not enabled
- Bind Mailu SMTP ports to 0.0.0.0 in Docker-in-Docker environments
- Fix boolean handling in msmtp and Mobilizon SMTP templates
- Ensure plain SMTP (no TLS, no AUTH) works reliably in CI/test setups

https://chatgpt.com/share/69540941-279c-800f-a2b1-79a189c2bdcc
2025-12-30 18:17:46 +01:00
kevinveenbirkenbach 64c3d6cf73 - Remove explicit override of system_service_force_linear_sync in cleanup role
- Rely on SYS_SERVICE_GROUP_MANIPULATION to enforce linear execution order
- Adjust flush logic to disable instant flush when final flush is requested
- Prevent cleanup service from triggering premature service flushes that caused backup failures

https://chatgpt.com/share/695408bb-23f4-800f-9234-0e77c62d9add
2025-12-30 18:15:34 +01:00
kevinveenbirkenbach 6f9e887f35 fix(docker,systemd): disable systemd-firstboot in container + harden docker restart diagnostics
- mask systemd-firstboot and first-boot-complete in Dockerfile to prevent systemd boot hang in CI/compose
- ensure machine-id is initialized during image build
- add early assertions for systemd availability and PID 1 correctness in docker role
- replace blocking docker restart with non-blocking restart + 60s wait and detailed debug dump on failure
- normalize task numbering (fuse-overlayfs, reset) for clarity

https://chatgpt.com/share/6953fbef-c508-800f-ac06-39f64f92f008
2025-12-30 17:20:59 +01:00
kevinveenbirkenbach 164dd4001b fix(ci,compose): use compose-only runner with host cgroups and clean stack reset
- switch deploy tests to docker compose exec (-T) instead of docker exec
- remove hard dependency on INFINITO_CONTAINER
- ensure clean CI state via compose down -v before deploy tests
- start coredns + infinito exclusively via compose
- enable host cgroup namespace for systemd containers (cgroup: host)

https://chatgpt.com/share/6953e367-b674-800f-bc55-97e8625314cf
2025-12-30 15:36:16 +01:00
kevinveenbirkenbach 4bd4c11e68 fix(ci): reuse existing deploy test container to avoid name conflicts
* Prevent docker run name conflicts when a previous CI run left the container behind
* Reuse and start the existing deploy test container instead of creating a new one

https://chatgpt.com/share/6953d93c-a24c-800f-9334-40c34f768f9f
2025-12-30 14:51:26 +01:00
kevinveenbirkenbach 582192c941 Optimized DOCKER_IS_IN_CONTAINER 2025-12-30 14:42:27 +01:00
kevinveenbirkenbach c825dffbf7 ci(deploy): unify test-deploy entrypoint via Makefile and INFINITO_DISTRO
- switch workflow to `make test-deploy` with matrix-driven INFINITO_DISTRO
- centralize container naming via INFINITO_CONTAINER
- add clean-container helper for reliable CI reruns
- remove --distro CLI flag and rely on env-based distro selection
- pass NIX_CONFIG as docker build arg for rate-limit-safe builds

https://chatgpt.com/share/6953d266-aa80-800f-88b8-0413926a81f0
2025-12-30 14:23:44 +01:00
kevinveenbirkenbach 26fa760847 Added system email enabled switch 2025-12-30 12:39:28 +01:00
kevinveenbirkenbach 7141692673 Activated TLS by default 2025-12-30 10:37:50 +01:00
kevinveenbirkenbach 6bc097f96f refactor(email,domain): unify primary domain and TLS handling
- replace localhost special-casing with valid FQDN (infinito.localhost)
- derive system email DOMAIN and HOST directly from DOMAIN_PRIMARY
- align Mailu TLS_FLAVOR with SYSTEM_EMAIL.TLS (mail vs notls)
- tie OIDC_VERIFY_SSL to TLS_ENABLED for consistent test/CI behavior
- update CI deploy script to use new primary domain

https://chatgpt.com/share/695311c0-fbe8-800f-8058-9d40a06b189a
2025-12-30 00:41:46 +01:00
kevinveenbirkenbach 42eb562b31 fix(desk-copyq): use scope=user for systemd user services
Replace unsupported `user: true` parameter with `scope: user` to ensure
compatibility with Ansible 2.9 systemd module when managing user-level
CopyQ services.

https://chatgpt.com/share/69530810-bc74-800f-bb34-d8b717284df5
2025-12-30 00:00:28 +01:00
kevinveenbirkenbach ea04035e12 feat(config): rename SSL_ENABLED to TLS_ENABLED across stack
* Replace global `SSL_ENABLED` flag with `TLS_ENABLED`
* Update web protocol/ports (http/https, ws/wss) to use `TLS_ENABLED`
* Switch cert-related roles and nginx TLS header gating to `TLS_ENABLED`
* Update app env templates (BookWyrm, Confluence, Jira, Magento, OpenProject, WordPress, etc.) to use `TLS_ENABLED`
* Adjust inventory generator to write `TLS_ENABLED` and update CLI help text accordingly
* Update unit tests for inventory vars overrides to expect `TLS_ENABLED`

https://chatgpt.com/share/695306ef-a798-800f-b118-e07b525e1811
2025-12-29 23:55:20 +01:00
kevinveenbirkenbach 2f41b400d9 Added --diff to e2e deploy tests to see what gets deployed 2025-12-29 23:24:35 +01:00
kevinveenbirkenbach f65eb7e320 refactor(gnome): centralize GNOME base setup and decouple desktop roles
- introduce desk-gnome base role to install GNOME shell and GSettings schemas cross-distro
- decouple caffeine, extensions, and terminal roles from hard dependencies
- ensure GNOME-dependent roles run only after base GNOME setup
- add run-once guards to GNOME desktop roles to avoid duplicate execution
- reorganize role tasks into explicit 01_core.yml entrypoints

https://chatgpt.com/share/6952fc52-92dc-800f-aaa0-a3b822fa6d34
2025-12-29 23:10:18 +01:00
kevinveenbirkenbach 75b9386b52 Solved database execute bug 2025-12-29 22:51:33 +01:00
kevinveenbirkenbach 5175aefaf8 Renamed desktop to workstation 2025-12-29 22:44:20 +01:00
kevinveenbirkenbach 9e7d974f54 Removed test-deploy-workstation 2025-12-29 22:27:51 +01:00
kevinveenbirkenbach 7befda8f93 fix(mailu): wait for database schema before creating users
- add explicit wait task for Mailu DB initialization (domain table)
- fail fast with last 300 lines of admin container logs if schema is missing
- prevent race condition between container startup and user creation
- rename manage_user task to keep execution order explicit

https://chatgpt.com/share/6952f1e3-3690-800f-950d-3ce55e90b6b4
2025-12-29 22:25:46 +01:00
kevinveenbirkenbach 38a0f4fd5b Removed universal worklow 2025-12-29 22:00:19 +01:00
kevinveenbirkenbach 41d81ee18d Optimized subdomain name 2025-12-29 21:59:22 +01:00
kevinveenbirkenbach e3c459845d Optimized mail domain 2025-12-29 21:54:10 +01:00
kevinveenbirkenbach ffea6535b1 cleanup(mailu): remove unused DKIM schema entry and hard restart todo
- drop unused credentials.dkim_public_key from schema (runtime-generated only)
- switch Mailu API token to alphanumeric with stronger validation
- remove obsolete hard-restart todo entry

https://chatgpt.com/share/6952e8dd-fee8-800f-989d-5268b33caf02
2025-12-29 21:47:20 +01:00
kevinveenbirkenbach 6166740c25 Included missing import 2025-12-29 21:36:36 +01:00
kevinveenbirkenbach 1e5ebbb05f feat(inventory): add --vars-file support for YAML-based host_vars overrides
- add --vars-file CLI option to load host_vars overrides from YAML
- merge vars-file overrides before JSON --vars (JSON takes precedence)
- implement deep-merge logic for YAML vars files
- update CI deploy script to use vars file instead of inline JSON
- add unit test for apply_vars_overrides_from_file
- remove obsolete MASK_CREDENTIALS_IN_LOGS TODO entry

https://chatgpt.com/share/6952e51d-6c50-800f-8764-31dc8c609cdb
2025-12-29 21:31:05 +01:00
kevinveenbirkenbach bf4af7c823 Renamed domain variables 2025-12-29 20:37:47 +01:00
kevinveenbirkenbach 064a5f1a76 Release version 0.4.0 v0.4.0 2025-12-29 20:30:54 +01:00
kevinveenbirkenbach 8a23797afe Merge pull request #44 from kevinveenbirkenbach/feature/matomo-autosetup
Feature/matomo autosetup
2025-12-29 19:59:43 +01:00
kevinveenbirkenbach d734a15ad6 feat(ci,webserver): add localhost DNS + default vhost 404 assertion
- switch CI DNS to CoreDNS-based *.localhost resolution (A/AAAA → loopback)
- set PRIMARY_DOMAIN to localhost for CI deploys
- add explicit DNS resolution assert for test.localhost
- deploy explicit default_server vhost returning 404 text/plain
- assert default vhost behavior via HTTP before app domains exist

https://chatgpt.com/share/6952cf2a-bbd4-800f-b2b8-c4baba66e301
2025-12-29 19:57:41 +01:00
kevinveenbirkenbach a9e1a84b71 feat(ci): run Docker-in-Docker in deploy container via fuse-overlayfs
* Remove host Docker socket (/var/run/docker.sock) and DOCKER_HOST wiring for CI container
* Drop /tmp/gh-action bind usage in CI container + compose runner
* Switch OpenResty volume sources to container-local absolute paths (/var/www, /etc/nginx)
* Ensure docker engine installation also runs when DOCKER_IN_CONTAINER is true
* Add container-only fuse-overlayfs setup and write /etc/docker/daemon.json storage-driver config

https://chatgpt.com/share/69528062-ff74-800f-ae11-a658b5917307
2025-12-29 17:47:03 +01:00
kevinveenbirkenbach 567c34877b changed assert order 2025-12-29 15:52:06 +01:00
kevinveenbirkenbach 0a8ed3faca fix(openresty): assert nginx bind-mount sources before compose up
https://chatgpt.com/share/69528062-ff74-800f-ae11-a658b5917307
2025-12-29 15:38:04 +01:00
kevinveenbirkenbach d61f11f521 fix(ci): mount /tmp/gh-action into infinito container for compose bind mounts
- ensure files created by Ansible under /tmp/gh-action are visible to Docker host
- prevent file-vs-directory bind mount errors in GitHub CI
- align container filesystem with docker compose host paths

https://chatgpt.com/share/69528062-ff74-800f-ae11-a658b5917307
2025-12-29 14:49:33 +01:00
kevinveenbirkenbach a8f461ef11 debug(docker-compose): dump full compose config and env in debug mode
- print full `docker compose config` before up when MODE_DEBUG is enabled
- include resolved config with --env-file if present
- dump .env contents only when credentials masking is disabled
- keep compose up behavior unchanged

https://chatgpt.com/share/69528062-ff74-800f-ae11-a658b5917307
2025-12-29 14:21:30 +01:00
kevinveenbirkenbach 7445e83715 Implemented new * multi-database marker to seeder 2025-12-29 12:19:31 +01:00
kevinveenbirkenbach 396940af7c Removed deprecates logs folder 2025-12-29 12:00:57 +01:00
kevinveenbirkenbach 45ce64ed43 Solved systemctl runner bug 2025-12-29 11:05:34 +01:00
kevinveenbirkenbach b5a7f277b8 chore(schedule): reduce letsencrypt renew frequency to every two days
- Run certbot renewal only on even days to avoid rate limits
- Align schedule with Let's Encrypt best practices

https://chatgpt.com/share/6951b1f3-f0f0-800f-9d14-682db104cc53
2025-12-28 23:40:27 +01:00