Modules Overview¶
Strawly's core handles sign-in, users, permissions, settings and the shared database. Modules add cloud providers: each one collects a provider's inventory, metrics and prices, and turns them into recommendations.
What is a module?¶
A module is a separate service that:
- Runs as its own Docker containers next to the core, from its own image with its own version
- Is turned on or off per instance with
strawly enable-moduleandstrawly disable-module - Writes to its own prefixed tables in the shared PostgreSQL database (
az_*for Azure) - Registers itself with the backend when it starts, which creates its settings on a new instance and checks that its version fits the running core
- Runs scans on schedules you set in Settings > Modules, and accepts manual runs from the same page
Available modules¶
| Module | Cloud provider | What it does |
|---|---|---|
| Azure Optimizations | Microsoft Azure | Finds rightsizing, termination and modernization opportunities using Azure Monitor metrics and retail prices |
How module data works¶
Each module writes to its own prefixed tables, and the backend combines them into one view of resources and recommendations. So:
- Several modules share one database without conflicting
- Turning a module off does not delete its data
- The core serves data from every module through one API
Turn a module on or off¶
The installer asks which modules to enable. To change it later:
disable-module stops and removes the module's containers. Its data stays in the database, and turning the module on again continues from where it stopped. On a manual install, set COMPOSE_PROFILES in .env instead (azure to run it, none to run without modules) and run docker compose up -d --remove-orphans.
Two levels of on and off¶
| Level | What it controls | Where |
|---|---|---|
| Module on the server | Whether the module's containers run at all | strawly enable-module / disable-module |
| Resource types in Strawly | Which resource types the module collects and analyses | Settings > Modules |
A module that is not running uses no memory and pulls no image. A running module collects only the resource types turned on in Settings > Modules. On a new instance every resource type starts turned off, so an administrator adds the cloud credentials first and then turns on the types they want.
Versions¶
Each module states which Strawly core versions it supports. strawly upgrade picks module versions that fit the core, and Settings > About shows each module's version and whether it is compatible. See Updating.