heyer.systems

Use

Modules

Building blocks for every app – choose them when you create a guest or add them any time, in containers and VMs alike.

Modules add building blocks to an app that many apps can use. Every module can be chosen for every app, as long as it supports the platform. Active modules run with every update and stay up to date.

All modules

Each module has its own page with the commands to add and remove it and notes on its use:

A module listed under Requires on an app’s page is needed by the app itself (e.g. NetBox needs its database). It is always active there and cannot be removed.

Choose when creating

WhereHow
Dialogchoose “advanced”, then tick the modules – the app’s preselection is already set
Generator on the app pagetick the modules, the command then contains var_modules
Without a dialogvar_modules=node-exporter,unattended-upgrades (var_modules='' = none)

var_modules replaces the preselection – auto-update then has to be in the list as well.

Add later

In the guest as root – the same in containers and VMs:

update -lm                       # available for this guest, numbered, [x] = active
update -am node-exporter         # add
update -am 1,3                   # add modules 1 and 3 from the list

The list looks like this:

1. [x] auto-update
      Automatic update (nightly) – …
2. [ ] backup
      Backup (restic) – …
3. [ ] fail2ban
      …

You can give modules by name or by their number from update -lm everywhere, also mixed (update -am 2,fail2ban). The long forms --list-modules, --add-modules and --remove-modules work as well.

update -am runs a normal update and installs the new modules on the way. A module that does not exist on this platform (e.g. desktop in a container) is rejected before anything changes.

Without logging in, straight from the Proxmox host:

pct exec 105 -- update --add-modules node-exporter              # container 105
ssh [email protected] update --add-modules node-exporter       # VM

Remove

update -rm desktop                  # remove single modules (also by number: update -rm 2)
update --modules ''                 # remove all optional modules
update --modules node-exporter      # set the selection completely

A removed module takes its packages, services, firewall rules and configuration with it. Data stays – a PostgreSQL database, for example, is only stopped, not deleted.

Your own modules

A module is an Ansible role in iac-core plus an entry in the catalog modules.json. How that works is described in the app reference.