Ctrl K
ComunidadGuías…

docs/adr/0014-one-editable-compose-file.md

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# One editable Compose file per Project

Each Project uses one root Compose file containing all of its Apps and required
resources. self-host and ordinary Docker Compose operate on that same file;
people can alternate between them or stop using self-host. This replaces the
per-App include-file layout in [ADR 0001](0001-compiled-apps-compose-is-truth.md)
so Compose remains understandable and directly usable without a separate export
or transfer of management.

self-host preserves unrelated services, manual edits and comments when changing
an App. Comments may group Apps and explain settings; service identity comes
from YAML structure and explicit ownership information rather than comment
markers. API Setup and Links remain capabilities of self-host.

A private `.env` alongside the Compose file supplies ordinary Compose
interpolation. Public settings are allowlisted before serialization. Legacy
`secrets.env` remains readable and is synchronized when already present.

The first approved mutation consolidates supported legacy includes, rebasing
relative paths and retaining `compose.legacy.yml` as a recovery snapshot.
Per-App files remain recovery snapshots; subsequent operations read the root
file. Ambiguous includes or resource ownership stop consolidation before writes.
Existing App configuration, media paths and storage identities are preserved.
Fresh media Projects use a shared parent mount; changing existing media paths or
file ownership requires an explicit migration.

Accepted and implemented, 2026-11-01. Migration and recovery are covered by
Project and service regression tests; this records implementation, not runtime
acceptance of every App or storage backend.