Introduction¶
Strawly is a modular FinOps platform for managing cloud costs. It gives engineering and finance teams a self-hosted, source-first alternative to SaaS cost management tools, with full control over their data.
What Strawly does¶
Strawly surfaces cost optimization opportunities across your cloud accounts, tracks savings over time, and helps teams act on recommendations without leaving a single interface.
Work in progress capabilities:
- Azure Optimizations: finds rightsizing, termination and modernization opportunities in Azure, using Azure Monitor metrics and retail prices
Architecture¶
Strawly uses a core + modules model. You always deploy the core services, then enable optional modules for the features you need.
Core services¶
These are always deployed:
| Service | Description |
|---|---|
| Backend | Express.js REST API |
| Frontend | Next.js web UI |
| PostgreSQL | Shared database |
Optional modules¶
Modules are independent microservices that extend Strawly's functionality. Each module:
- Has its own Docker image published to a container registry
- Can be turned on or off per instance without touching the core
- Connects to the same PostgreSQL database as the backend, scoped by a
providerfield - Runs scheduled scans and exposes a REST API
| Module | Description |
|---|---|
Azure Optimizations (optimizations-azure) |
Finds rightsizing, termination and modernization opportunities in Azure |
Deployment model¶
Strawly is distributed as Docker images. The deployment repository holds everything needed to run them:
- An installer that sets up Docker, HTTPS and every secret, and starts Strawly
- The
strawlycommand for status, backups, upgrades, ports, modules and uninstalling - A Docker Compose file and
.envtemplate for running Strawly without the installer - A ready-made app file for TrueNAS
versions.json, the list of releases and which module versions work with which core version
The images are downloaded from the Strawly container registry. See Quick Start to choose an install path.