Home Lab Infrastructure
Self-hosted infrastructure on a Synology DS923+ NAS, fully declarative, git-driven, and recoverable from a single TOML file.
Architecture
All services run on a single Synology DS923+ NAS. Komodo manages Docker via a core/periphery architecture, with Synology's reverse proxy handling HTTPS termination and domain routing.
komodo-configs + env filesStack Explorer
Four Docker Compose stacks defined declaratively in a single resources.toml file. Select a stack to explore its containers, volumes, and networking.
CI/CD & Infrastructure as Code
Two webhook-driven pipelines: application builds triggered by code pushes, and infrastructure updates triggered by config changes.
Application CI/CD Pipeline
Git push triggers a Komodo Procedure that builds backend and frontend images in parallel, then redeploys the Finance stack.
Infrastructure-as-Code Loop
Pushing to komodo-configs triggers ResourceSync, which applies resources.toml and fans out to update Stacks, Builds, Procedures, and Alerters.
Automation
Decisions
Key architectural and operational decisions with rationale.
Komodo over Portainer
Replaced Portainer with Komodo for git-native infrastructure-as-code, webhook-triggered deployments, and declarative TOML resource definitions.
Portainer is a solid GUI for Docker management but lacks native git integration. Every change was manual and not version-controlled. Komodo treats infrastructure definitions as code: a single resources.toml in a git repo defines all stacks, builds, procedures, and alerters. Push to main triggers ResourceSync, making the entire environment reproducible.