Skip to content

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-module and strawly 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:

strawly enable-module optimizations-azure
strawly disable-module optimizations-azure

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.

Check a module

strawly status                     # versions and health of every service
strawly logs optimizations-azure   # follow the module's logs