// Modules
Modules 11
Building blocks for every app – choose them when you create a guest or add them later, in containers and VMs alike.
Choose when you create
Tick modules in the dialog (“advanced”) or in the generator on every app page.
Add any time
update --add-modules <name> in the guest – containers and VMs alike.
Kept up to date
Active modules run with every update. Removing one keeps its data.
Automatic security updates
unattended-upgradesInstalls Debian security updates automatically every day (without a reboot)
Automatic update (nightly)
auto-updateRuns the full update every night at 02:00 – Debian packages, app, modules and iac, without a reboot. Log: journalctl -u iac-auto-update
Backup (restic)
backupDaily backup with restic to SFTP, S3, a REST server or a local path – /etc, /root, /var/lib, the app's data and database dumps. Target: backup_repository in /etc/iac/settings.env
CrowdSec
crowdsecCrowdSec from Debian: detects attacks in the logs (SSH from the journal, nginx, Apache) and blocks the addresses with nftables (own tables). Shares signals with the CrowdSec community and uses its blocklist; private networks are never blocked. Manage with cscli
Desktop (XFCE, RDP)
desktopXFCE desktop with Firefox via RDP (port 3389, private networks only). Log in as root, password: grep root_password /etc/iac/settings.env
Elasticsearch
elasticsearchElasticsearch 9 from Elastic's APT repository (key pinned in iac-core), on localhost:9200 only, without login, 1 GiB heap
fail2ban
fail2banBlocks IP addresses after repeated failed SSH logins (nftables); own jails for app logins possible
MariaDB
mariadbMariaDB server from Debian, reachable on localhost only
PostgreSQL
postgresqlPostgreSQL server from Debian, reachable on localhost only
Prometheus node exporter
node-exporterSystem metrics on port 9100 (private networks only)
Valkey (Redis)
valkeyValkey server from Debian (Redis protocol), on localhost:6379 only
No modules found.
How modules work in detail: Docs → Modules · Build your own: App reference

