Devolutions / Devolutions/UniGetUI
[FEATURE REQUEST] Docker Compose stack updates
- Dominant language
- C#
- Stars
- 26.1k
- Forks
- 924
- Avg merge
- 15h 52m
- Merged PRs (30d)
- 52
Description
### Please confirm these before moving forward.
- [x] I have searched for my feature proposal and have not found a work-in-progress/duplicate/resolved/discarded issue.
- [x] This proposal is a completely new feature. If you want to suggest an improvement or an enhancement, please use [this template](https://github.com/Devolutions/UniGetUI/issues/new?labels=enhancement&projects=&template=enhancement-improvement.yml&title=%5BENHANCEMENT%5D+%28Enter+your+description+here%29).
### Describe the new feature
It would be useful if UniGetUI could manage updates for local Docker Compose stacks.
The basic idea would be to treat each Compose project as one package. UniGetUI could scan one or more configured directories for:
```text
compose.yaml
compose.yml
docker-compose.yml
```
For example:
```text
C:\docker\n8n
C:\docker\speakr
```
Each stack could then appear under Software Updates, for example:
```text
n8n Update available - 1 image
Speakr Update available - 2 images
```
Updating a stack could essentially run:
```bash
docker compose pull
docker compose up -d
```
from that project's directory.
One important detail is update detection. Many Docker images use tags such as `latest`, so comparing version/tag strings is not enough. Ideally, UniGetUI would compare the local image digest with the current remote digest.
A minimal initial implementation could support:
* Configurable Compose stack directories
* Automatic stack discovery
* Detection of updated images
* Updating the whole stack
* Showing Docker Compose output/errors
* Ignoring or marking services that only use `build:`
I would avoid stack deletion, volume deletion, or similar destructive operations initially.
If it fits UniGetUI's package-manager architecture, Docker Compose could potentially be implemented as another manager, with each Compose project representing one installed package.
Using the existing Docker CLI would also mean Docker Desktop credentials and private registry authentication should continue working normally.
The goal would be to let UniGetUI act as a single update dashboard for both normal Windows applications and locally hosted Docker services.
### Describe how this new feature could help users
Unified updates as the project suggests :)
Contributor guide
Research direction
No source files, tests, or entry points are named. Start by reviewing UniGetUI's package-manager architecture and how it could invoke the existing Docker CLI; the issue's completion criteria are configurable stack directories, automatic discovery, image-update detection, whole-stack updates, output and error display, and handling services that only use build:.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, docker-compose
- Domain
- devops
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 28/100