External integrations in Gladys Assistant

@Terdious I wrote an entire spec with Fable 5 for managing sub-containers.

The general idea is that an external integration can declare in JSON the « sub-containers » it needs. In our case, this would allow us, for example, to declare Frigate + Mosquitto directly from the integration.

The spec is available here:

(see the Sub-containers section)

Then, it’s Gladys that handles the entire lifecycle of these containers: creation, startup, shutdown, deletion… And if the integration is deleted, everything is automatically cleaned up (containers + volumes).

For the specific case of Mosquitto, there is an interesting constraint: it needs files present on the disk before it can start (especially for passwords). So, the declared containers can be created but stopped by default, then explicitly started by the integration when it has finished its configuration. An API /start is provided for this.

What do you think?