Komodo Core¶
LXC: management lxc (CT 100) - container and stack manager for the entire homelab. See komodo for the architecture, Periphery setup pattern, and stack conventions.
Instance¶
| Setting | Value |
|---|---|
| Compose | /opt/komodo/compose.yaml |
| Env file | /opt/komodo/compose.env |
| Data | /data/config/management/komodo/ |
| UI | http://192.168.50.100:9120 |
| API | https://komodo.home.example.com:<admin-port> |
Components¶
| Container | Role |
|---|---|
| Komodo Core | Manager UI + API |
| MongoDB | State store |
| Komodo Periphery | Local agent (Docker container, not binary) |
CT 100's Periphery runs as a Docker container inside the Komodo compose - it is the "Local" server in Komodo. All other LXCs run the binary Periphery agent.
Start / Restart¶
Stack File Location (CT 100)¶
Stacks managed by the local (CT 100) Periphery live at:
All other LXCs use binary Periphery with root at /data/komodo/stacks/<name>/compose.yaml.
Stack Creation Workflow¶
New stacks created via API start as "UI defined" (compose stored in DB). Switch to files on host after first deploy:
CreateStackwithfile_contents→ Komodo stores compose in DBDeployStack→ Komodo writes compose to disk at the stack pathUpdateStackwithfiles_on_host: true, file_contents: ""→ future deploys read from disk
Never skip step 3 - UI defined stacks overwrite the on-disk compose on every deploy.
Key Takeaways¶
- Secrets (
MONGO_PASSWORD,KOMODO_PASSKEY,KOMODO_JWT_SECRET) must be in a password manager - not stored in the repo - CT 100 is the "Local" server; its Periphery is a Docker container, not a binary install
- API token credentials are in the project
.envfile (not committed)