[Feature][UX] Auto-discover links via Docker Labels #169

Open
opened 2025-10-31 15:03:50 -05:00 by GiteaMirror · 3 comments
Owner

Originally created by @em411 on GitHub (Jan 1, 2025).

Current Behavior

Users can manually configure multiple quick-access links for each stack in the Komodo UI. While this feature enhances navigation, it requires manual setup and maintenance.

Suggested Solution

Implement automatic service link discovery using Docker labels. Specifically, Komodo should detect and parse komodo.link labels from container definitions in Docker stacks.

Use Cases

  1. Configure service links dynamically using environment variables in compose files
  2. Automatically update links when services are deployed or updated
  3. Maintain consistent link configurations across different environments

Example Implementation

services:
  app:
    labels:
      komodo.link: "https://${HOST}:${PORT}"

Benefits

  • Reduces manual configuration effort
  • Keeps service links synchronized with deployment configuration
  • Enables dynamic link generation based on environment variables
  • Simplifies stack management in multi-environment setups
Originally created by @em411 on GitHub (Jan 1, 2025). ## Current Behavior Users can manually configure multiple quick-access links for each stack in the Komodo UI. While this feature enhances navigation, it requires manual setup and maintenance. # Suggested Solution Implement automatic service link discovery using Docker labels. Specifically, Komodo should detect and parse `komodo.link` labels from container definitions in Docker stacks. ## Use Cases 1. Configure service links dynamically using environment variables in compose files 2. Automatically update links when services are deployed or updated 3. Maintain consistent link configurations across different environments ## Example Implementation ```yaml services: app: labels: komodo.link: "https://${HOST}:${PORT}" ``` ## Benefits - Reduces manual configuration effort - Keeps service links synchronized with deployment configuration - Enables dynamic link generation based on environment variables - Simplifies stack management in multi-environment setups
GiteaMirror added the seen 👀 label 2025-10-31 15:03:50 -05:00
Author
Owner

@mbecker20 commented on GitHub (Jan 2, 2025):

Thanks for the write up! I personally feel that adding the link directly yourself to each Stack is quite dynamic / foolproof, there won't be any bugs there, while only at the cost of a small amount of verbosity. Links are also implemented the same way for other Resource types, not only Stacks -- Also Deployments, Builds, etc all can have links. But these other Resource types don't have a compose file to put links into. Links coming from compose file and not resource config would be a special exception for Stack resource compared to others, which also hurts the consistency of usage.

One argument that could be made is putting links in compose file could make link portable with other deployment solution outside of Komodo, however with a Komodo specific label this is not the case anyways.

It does make me think, is there an existing docker standard to put links in compose file? I would be more inclined to follow a spec here, so users would be assured their work in compose files stays agnostic / compatible with other solutions.

@mbecker20 commented on GitHub (Jan 2, 2025): Thanks for the write up! I personally feel that adding the link directly yourself to each Stack is quite dynamic / foolproof, there won't be any bugs there, while only at the cost of a small amount of verbosity. Links are also implemented the same way for other Resource types, not only Stacks -- Also Deployments, Builds, etc all can have links. But these other Resource types don't have a compose file to put links into. Links coming from compose file and not resource config would be a special exception for Stack resource compared to others, which also hurts the consistency of usage. One argument that could be made is putting links in compose file could make link portable with other deployment solution outside of Komodo, however with a Komodo specific label this is not the case anyways. It does make me think, is there an existing docker standard to put links in compose file? I would be more inclined to follow a spec here, so users would be assured their work in compose files stays agnostic / compatible with other solutions.
Author
Owner

@em411 commented on GitHub (Jan 7, 2025):

Unfortunately there isn't a any kind of universal standard for labels, but the proposed komodo.link format aligns with common Docker label naming conventions used by other tools e.g. homepage.href, flame.url, prometheus.path

From a UX perspective, for users managing many stacks across multiple hosts (like myself migrating dozens stacks from Dockge to Komodo), the ability to leverage existing labels (from reverse proxy and/or dashboard) significiently reduces amount of additional configuration.


This and my other UX suggestions are really just feedback based on my personal experience migrating to and using Komodo. They're very low priority QoL improvements that I've encountered, not something that need immediate attention.

I'm sharing these thoughts mainly to contribute to discussions about potential future enhancements, without any expectation of future implementation. I really appreciate Komodo's current functionality and stability - these suggestions are just optional ideas to consider when and if they align with the project's broader development priorities.

@em411 commented on GitHub (Jan 7, 2025): Unfortunately there isn't a any kind of universal standard for labels, but the proposed ``komodo.link`` format aligns with common Docker label naming conventions used by other tools e.g. [homepage.href](https://github.com/search?q=homepage.href+language%3AYAML&type=code), [flame.url](https://github.com/search?q=flame.url+language%3AYAML&type=code), [prometheus.path](https://github.com/search?q=prometheus.path+language%3AYAML&type=code) From a UX perspective, for users managing many stacks across multiple hosts (like myself migrating dozens stacks from Dockge to Komodo), the ability to leverage existing labels (from reverse proxy and/or dashboard) significiently reduces amount of additional configuration. --- This and my other UX suggestions are really just feedback based on my personal experience migrating to and using Komodo. They're very low priority QoL improvements that I've encountered, not something that need immediate attention. I'm sharing these thoughts mainly to contribute to discussions about potential future enhancements, without any expectation of future implementation. I really appreciate Komodo's current functionality and stability - these suggestions are just optional ideas to consider when and if they align with the project's broader development priorities.
Author
Owner

@FoxxMD commented on GitHub (Feb 12, 2025):

I like the idea of configuring komodo to look for specific labels by name to get a link. So instead of komodo.link we provide (at the server or core level) a field in config that komodo should look for as a label key:

Link Label Name: 'homepage.href'

Or potentially array of keys to look for, use the first one found.

@FoxxMD commented on GitHub (Feb 12, 2025): I like the idea of configuring komodo to look for specific labels by name to get a link. So instead of `komodo.link` we provide (at the server or core level) a field in config that komodo should look for as a label key: ``` Link Label Name: 'homepage.href' ``` Or potentially array of keys to look for, use the first one found.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/komodo#169