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 — runs custom optimization scripts against Azure subscriptions using Azure metrics
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 toggled on or off in
strawly-deployment.ymlwithout 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 |
|---|---|
optimizations-azure |
Azure cost optimization scripts |
Deployment model¶
Strawly is distributed as Docker images. To run it, you only need the deployment repository, which contains:
- A
strawly-deployment.ymlconfig file you edit to choose your modules - Scripts that generate a
docker-compose.generated.ymlfrom your config - Health check and secret generation utilities
All images are pulled from the container registry at deploy time.