Files
computer-playbook/scripts/tests/deploy/local/deploy
kevinveenbirkenbachandClaude Opus 5 f2fedfc677 Merge branch 'main' into feature/store-i18n
Fourteen real conflicts plus the 66 generated READMEs.

utils/cache/files.py and its test: both sides added a skip-dir rule, resolved
as a union so the root `build/` prune and the per-root walk key coexist.

plugins/lookup/database.py and postgres_libraries.py: main's added lookups kept,
with get_entity_name renamed to entity_name as this branch renamed it.

roles/web-app-{mailu,matrix}/meta/services.yml: main's `covers: [email]` and its
MAIL_PROVIDER-gated email entry, plus this branch's gitlab/jira/n8n/jitsi
consumers, which the merge base carried on neither side.

group_vars/all/17_resource.yml: this branch's lookup('resource', ...) refactor;
main's single added literal is already covered by _POSTGRES_MAX_LOCKS_PER_TRANSACTION.

docs/requirements/035-mcp-proxy-expansion.md: this branch moved the design into
ADR 0003, so the requirement keeps only the user story and the criteria. Main's
delta inside the moved block was two new roles, carried into the ADR audit:
web-app-stalwart as adapter_candidate, svc-net-tor-smtp as privileged_control_plane.
The no_surface total said 99 while its own subcategories summed to 112.

inventories/development/default.yml: biber keeps no explicit email. Both sides fixed
the same CI failure; this branch fixed it in _apply_account_defaults, which renders
biber@{{ DOMAIN_PRIMARY }} (utils/cache/users/__init__.py:68) — byte-identical to
the address main hardcoded, so the inventory line is a second copy of one fact.

roles/web-app-{gitlab,keycloak}/files/playwright/playwright.spec.js and
roles/web-app-gitlab/templates/playwright.env.j2: union of both import sets, with
requireDotenvValue kept over decodeDotenvQuotedValue for CANONICAL_DOMAIN because
an empty value must fail rather than match every substring.

The 66 role READMEs take this side: aceb5295ef moved Cosmos, Quick Setup and
Credits to the documentation build, and test_readme.py now rejects them in a
committed README. Main's prose edits inside them are carried over by hand (the
Mailu deprecation banner, Mailu -> Stalwart in erpnext and zammad), and the two
READMEs main added fresh are stripped of the three generated sections.
roles/web-app-sphinx/README.md stays deleted; 6eb9a59d14 merged that role into
web-app-docs. The root README's generated role table was regenerated from the
merged metadata.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-10-04 01:57:17 +02:00
..

Local Deploy Scripts

This directory holds the executable local deploy flows under scripts/tests/deploy/local/deploy/.

For other local helpers, use ../README.md. For the canonical Make target index that invokes these helpers, see make.md.

Prerequisites

  • Run commands from the repository root.
  • Docker and Docker Compose are available locally.
  • jq is installed for the app-discovery step in apps/initialize/all.sh.
  • If you run scripts directly, load the defaults with source scripts/meta/env/all.sh.

Naming

The apps/ subtree is split by verb (the user intent) and scope:

  • initialize/ creates or refreshes the inventory; existing entity state is kept.
  • reinstall/ recreates the inventory and purges existing entities first.
  • update/ reuses the already-initialized inventory.
  • all.sh covers every discovered application; selection.sh covers one or more apps passed via apps (or a positional argument).

The bundles/ subtree mirrors the same axes for inventory bundles (fresh.sh ≈ initialize, update.sh ≈ update).

The container/ subtree holds the in-container halves invoked by the host wrappers and follows the same verb/scope layout; see container/.

Entry Points

Entry point What it does Key inputs Notes
apps/initialize/all.sh Discovers apps, creates devices.yml, and deploys all discovered apps. INFINITO_DISTRO, INFINITO_INVENTORY_DIR Fresh all-app inventory path.
apps/initialize/selection.sh <app-id> Creates devices.yml for one or more apps and deploys them. apps=<app-id> Init and deploy path for a specific app set.
apps/reinstall/selection.sh Recreates devices.yml and deploys one or more apps twice with ASYNC_ENABLED=false and ASYNC_ENABLED=true. INFINITO_DISTRO, INFINITO_INVENTORY_DIR, apps Baseline and recovery path; purges entities first.
apps/update/all.sh Deploys every app from an existing inventory. INFINITO_DISTRO, INFINITO_INVENTORY_DIR Requires ${INFINITO_INVENTORY_DIR}/devices.yml and .password.
apps/update/selection.sh Runs a targeted infinito administration deploy dedicated for one or more apps. apps, INFINITO_CONTAINER, INFINITO_DEBUG, INFINITO_INVENTORY_DIR Reuses devices.yml.