Use this when turning the template into a real app repo.
- Rename
template-aio.xmlto your final repo slug, for examplemyapp-aio.xml. - Replace the placeholder upstream image in
Dockerfile. - Replace
assets/app-icon.png. - Update
README.md,SECURITY.md, and.github/FUNDING.yml. - Replace the starter service command in
rootfs/etc/services.d/app/run. - Replace the starter pytest integration assertions in
tests/integration/test_container_runtime.pywith the real app lifecycle expectations. - Configure the repo in
aio-fleet/fleet.yml, export.aio-fleet.yml, and pin the upstream version in the Dockerfile. - Keep the XML
<Changes>block in the date-first fleet format generated byaio-fleetrelease preparation.
Dockerfiletemplate-aio.xmlREADME.mdpyproject.tomltests/integration/test_container_runtime.py- central template validation in
aio-fleet - central XML
<Changes>sync inaio-fleet rootfs/etc/cont-init.d/01-bootstrap.shrootfs/etc/services.d/app/run.aio-fleet.yml
The template includes an optional PostgreSQL example because some AIO repos genuinely need an embedded database.
If the derived app does not need internal PostgreSQL, remove:
If the derived app does need internal PostgreSQL:
- install the required PostgreSQL packages in
Dockerfile - replace the example init script with real cluster/bootstrap logic
- update the integration tests to validate persistence or first-boot expectations when relevant
The central aio-fleet control plane publishes from main once the required registry and GitHub App secrets are configured.
Before enabling it:
- run
python3 -m venv .venv && . .venv/bin/activate && pip install -e "../aio-fleet[app-tests]" - from
aio-fleet, runpython -m aio_fleet validate-repo --repo <repo> --repo-path ../<repo> - run
pytest tests/integration -m integration - set all required repository variables and secrets
- confirm the XML, icon, and package names match the intended public repo
- confirm the upstream monitor matches the real upstream source and stable channel
- confirm
CHANGELOG.mdand the XML<Changes>block describe the same latest release
- one screenshot or meaningful demo visual if the app has a UI
- a real first-run section in the README
- an honest limitations or caveats section if the app has rough edges
- a clear
SupportandProjectURL in the XML