Infinito.Nexus InventoriesΒΆ
This directory contains all deployable bundles for Infinito.Nexus.
An inventory in Infinito.Nexus is not just a host definition. It represents a complete, declarative infrastructure bundle.
Each inventory defines:
Which roles are activated
Which host(s) are targeted
Metadata required by the Infinito Deployer (title, description, logo, etc.)
Deploy target is derived from the folder structure.
Directory StructureΒΆ
Inventories are grouped by deploy target:
inventories/ server/ workstation/
Each bundle must live inside one of those directories:
inventories/server/
The folder name represents the bundle identifier.
Required FilesΒΆ
Each bundle directory must contain:
inventory.yml
Optional but recommended:
README.md (bundle-specific documentation)
No additional bundle manifest files are required.
Inventory Structure (Bundle-Conform)ΒΆ
Each inventory must follow this structure:
all.vars.infinito.bundle metadata
one default host
role groups under children
Example:
all:
vars:
infinito:
bundle:
title: "School Basic"
description: >
Basic bundle for a small school setup.
logo:
class: "fa-solid fa-graduation-cap"
tags:
- education
- collaboration
categories:
- Community
- Collaboration
hosts:
server:
children:
web-app-nextcloud:
hosts:
server:
svc-prx-openresty:
hosts:
server:
RulesΒΆ
1. Deploy TargetΒΆ
Deploy target is derived from the parent folder:
inventories/server β server bundle
inventories/workstation β workstation bundle
Do not define deploy_target inside the inventory file.
2. Host DefinitionΒΆ
Each bundle must define exactly one default host:
server
No additional configuration is required.
Connection settings may be added later if needed.
3. Role ActivationΒΆ
Role names must be defined as group names under children.
Group name must match the role directory name exactly.
Each role group must contain the default host.
4. Bundle MetadataΒΆ
Metadata must be defined under:
all.vars.infinito.bundle
Required fields:
title
description
logo.class
tags
categories
The logo must use a valid Font Awesome class string, e.g.:
fa-solid fa-graduation-cap
5. No Role-Specific ConfigurationΒΆ
Bundles act as skeleton definitions.
They must not contain application-specific configuration values.
Role configuration belongs inside roles or runtime overlays.
PhilosophyΒΆ
An inventory in Infinito.Nexus is:
a bundle definition
a role activation map
a deployable unit
No additional bundle file format is required.
The inventory itself is the bundle.
Deploying a BundleΒΆ
The single make compose-deploy target resolves one or more bundles into the role groups declared under all.children and feeds them into the standard local deploy flow when bundles=<csv> is set. The resolver is utils.inventory.bundle_apps; it deduplicates across bundles and preserves declaration order.
Command |
Path |
Behavior |
|---|---|---|
|
reinstall |
Brings the stack down/up, purges entities, then deploys every role group from the listed bundles. Set |
|
update |
No down/up, no entity purge. Requires a prior initialize/reinstall run that materialized the inventory. |
Example:
make compose-deploy bundles="education-suite,startup-essentials" full_cycle=true
See docs/contributing/tools/make.md and docs/contributing/actions/testing.md for the full deploy-target reference.