Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[Plugin] Docker Compose Manager

Featured Replies

I have an feature request but i am not sure this is for Unraid or needs to be done in the plugin.

On the docker page, i can see under the "Version" Tab that it is handled by compose.

Would it be possible to show in the docker tab in which compose file the container is running?

  • Replies 872
  • Views 326.4k
  • Created
  • Last Reply

Top Posters In This Topic

Most Popular Posts

  • I've been playing with the code behind this plugin and have made a couple of tweaks.  I'd be interested on peoples thoughts and suggestions.   The first allows you to specify any .env file. 

  • I've recently started using Compose Manger to orchestrate my containers in Unraid. I've used docker-compose for a long time on old servers, but moved away from it when I started using Unraid, as I pre

  • In the recent update, orphaned image is now automatically removed. Thank you.   Is it possible to also update the local sha256 hash in this file /var/lib/docker/unraid-update-status.json? Si

Posted Images

17 hours ago, unr41dus3r said:

Would it be possible to show in the docker tab in which compose file the container is running?

It would be even better if we can choose a set of docker labels to show in docker tab.

I currently run a wud (what's up docker) container to keep track of my containers. It allows me to view and filter, and I can group by labels, so doing so my compose project label gives me the split out view. I mainly started using it to keep an eye on updates across dockerman and compose

18 hours ago, unr41dus3r said:

Another question, i want to migrate the compose files to a different folder.

What would be the correct way? I can move the files and also in the Compose settings set a new default path, but how i can import the files into the gui again?

I could create each project new and replace the files then in the new created folders, but for example, an import/export feature only for the .env and .yml files would be nice

Edited by unr41dus3r

  • Author
On 9/9/2025 at 3:19 AM, unr41dus3r said:

I have an feature request but i am not sure this is for Unraid or needs to be done in the plugin.

On the docker page, i can see under the "Version" Tab that it is handled by compose.

Would it be possible to show in the docker tab in which compose file the container is running?

That is a feature request for unRAID/Dockerman. The compose plugin only controls the display of compose stacks, not individual containers.

  • Author
3 hours ago, unr41dus3r said:

Another question, i want to migrate the compose files to a different folder.

What would be the correct way? I can move the files and also in the Compose settings set a new default path, but how i can import the files into the gui again?

I could create each project new and replace the files then in the new created folders, but for an example and import/export feature only for the .env and .yml files would be nice

Its not clear to me exactly what you want to do.

You can move the "projects" folder which is the location where the compose plugin creates and stores compose stacks. There is a setting for that path on the compose settings page, it will change the location but not move files you will have to manually copy the old projects folder to the new location.

If you want to move individual stacks and you originally created your stacks using the "indirect" options such that the compose file is not stored in the projects folder than you can just move the folder containing a specific compose stack. To re-associate the stack with the compose plugin you would need to manually edit the path contained in the 'INDIRECT' file within the stack folder in the compose projects folder. An alternative to manually editing the INDIRECT file is to create a new indirect stack in the interface and copying your settings over from the old stack.

I removed now a big part of my comment, as the confusion with moving the projects to another folder is fixed

Thanks for your fast response. Sorry if i dont make my question more clear.

I still experience 2 problems, i dont have a indirect file in my project folders (if necessary) and the autostart is not working.

I can see 4 files in the compose project folder, but no indirect file "autostart , docker-compose.override.yml , docker-compose.yml , name"

I tried now many things, the only way to start my compose-containers at Unraid boot (docker enable) is when i set it to "restart: always" but i think this is not because of compose, it is a default docker behavior.

I tested now different settings (recreate containers at boot) different restart options, nothing helped.

When i checked the logs while i enable docker, i don't see any log entry with

"<host> root: Starting compose stack: test"

When i check the project folders, i see a autostart file with value true in it. No idea what i could still debug.

Ok, forget everything, found out now if i reboot the server the compose start will be triggered... thought it is the same as containers that they will start if i disable/enable the service. Edit: Still not working

Additional feature request incoming 😅,

Could we have an setting to enable auto start when enabling docker container?

A Button to "Compose Up All", "Compose Down All", "Update Stack All" would be interesting

Edited by unr41dus3r

Another finding, a maybe a little bug fix worth.

If Docker is disabled and the array starts, as i can see in the logs docker compose still trys to start the compose stacks, but docker host is not running. Could be checked before.

Still have the problem that my compose files are not starting all containers and still searching what is causing this.
Is it a problem if the compose folder is on the array instead of the USB drive?

thanks for the work and the great plugin!

Edited by unr41dus3r

On 9/9/2025 at 3:19 PM, unr41dus3r said:

Would it be possible to show in the docker tab in which compose file the container is running?

I believe this is already shown. example screenshot, see first column, right below container name and status

Screenshot 2025-09-21 at 6.40.19 PM.png

On 9/21/2025 at 12:42 PM, apandey said:

I believe this is already shown. example screenshot, see first column, right below container name and status

Screenshot 2025-09-21 at 6.40.19 PM.png

I am so blind, yes you are right, thanks!

I had some more problems with the migration to docker-compose on unraid. I will leave some more information here, because this problem cost me hours of debug and searching for the solution in the wrong place.

After moving all my containers to compose, i still had some containers who did an autostart while everything was disabled.
I disabled before moving to compose all autostart flags in the webgui. After moving to compose, i moved all templates-user files (unraid docker xml files) to a new place, to be sure that they are not the problem.

Then i searched hours, in the compose as i thought i removed all old settings.

I was wrong, in unraid the container autostart are saved in a different file, after removing them from this place, the autostart stopped.

/var/lib/docker/unraid-autostart

Another problem, some containers never stopped automatically while disabling the docker service or array stop.

I could find the following line in the logs:

Sep 25 08:43:17 server root: Stopping compose stack:

I have much more compose files and normally it looks like this:

Sep 25 08:43:17 server root: Stopping compose stack: compose1234

So something was not correct running with the compose stack and the plugin.

My simple solution at the end was, backup the compose, delete the compose stack in gui and reconfigure it.

My last and still existing problem
Not a single of my Docker-Compose Stacks is auto starting, so this is not related to one container or one stack, same for all. After reboot all stopped.

The only idea i have is that my config files are not in the default folder, but who knows. I will probably fix this with an userscript and have one benefit i can also control the order when a compose start.

Edited by unr41dus3r

  • Author
6 hours ago, unr41dus3r said:

After moving all my containers to compose, i still had some containers who did an autostart while everything was disabled.
I disabled before moving to compose all autostart flags in the webgui. After moving to compose, i moved all templates-user files (unraid docker xml files) to a new place, to be sure that they are not the problem.

Then i searched hours, in the compose as i thought i removed all old settings.

I was wrong, in unraid the container autostart are saved in a different file, after removing them from this place, the autostart stopped.

/var/lib/docker/unraid-autostart

I am not entirely sure what you were trying to do here. The correct way to "migrating" container would be to remove them using the webui, and then create new ones with compose. You shouldnt have to muck with any of dockermans files as the dockerman should handle all that.

6 hours ago, unr41dus3r said:

My last and still existing problem
Not a single of my Docker-Compose Stacks is auto starting, so this is not related to one container or one stack, same for all. After reboot all stopped.

The only idea i have is that my config files are not in the default folder, but who knows. I will probably fix this with an userscript and have one benefit i can also control the order when a compose start.

In the settings page for the compose plugin there should be an option to enable debug logging. If you turn that on and reboot does your system log contain any lines indicating that the compose plugin is trying and failing to autostart?

44 minutes ago, primeval_god said:

I am not entirely sure what you were trying to do here. The correct way to "migrating" container would be to remove them using the webui,

and then create new ones with compose. You shouldnt have to muck with any of dockermans files as the dockerman should handle all that.

Thanks for your response, but this is exactly what i did.

You can reproduce it yourself if you want, create an new container (does not matter which one or from app store)
Set the container to autostart (check mark in the Docker GUI) and remove the container with the webgui.

If you check now the "/var/lib/docker/unraid-autostart" file, the autostart config for this container name is still there.

Now, you add the same container in your Compose File and if you use the same container name, this setting is still persistent.

So after an reboot (if the container exist while array starting) the container will still be started, as the container was set to autostart in the autostart file.

The problem, Unraid is not updating this file if you remove an container from the web gui.

I disabled the autostart for all containers in the GUI before removing, but for some it did not stick and was not edited into the file, but this is a different problem with unraid.

44 minutes ago, primeval_god said:

In the settings page for the compose plugin there should be an option to enable debug logging. If you turn that on and reboot does your system log contain any lines indicating that the compose plugin is trying and failing to autostart?

As i remember i tried this already and i can see in the syslog it writes in the Log "docker compose starting stack 12345" (not exactly the log) but the containers does not start and i see not more output. I will try it again, and report back if i see more.

Edit:

this is my log with debug enabled, i only obscured the names of compose names.

All stacks are only have compose files and only one uses and ENV. The /config/ folder is on my cache drive

If i use a userscript to start the containers while array start it works without any problem.

...

Sep 25 09:16:48 tower emhttpd: nothing to sync

Sep 25 09:16:48 tower root: Starting compose stack: stack0

Sep 25 09:16:48 tower root: docker compose -f '/mnt/user/config/docker/stack0/docker-compose.yml' -f '/mnt/user/config/docker/stack0/docker-compose.override.yml' -p stack0 up -d

Sep 25 09:16:48 tower root: Starting compose stack: stack1

Sep 25 09:16:48 tower root: docker compose -f '/mnt/user/config/docker/stack1/docker-compose.yml' -f '/mnt/user/config/docker/stack1/docker-compose.override.yml' -p stack1 up -d

Sep 25 09:16:48 tower root: Starting compose stack: stack12

Sep 25 09:16:48 tower root: docker compose -f '/mnt/user/config/docker/stack12/docker-compose.yml' -f '/mnt/user/config/docker/stack12/docker-compose.override.yml' -p stack12 up -d

Sep 25 09:16:48 tower root: Starting compose stack: stack123

Sep 25 09:16:48 tower root: docker compose -f '/mnt/user/config/docker/stack123/docker-compose.yml' -f '/mnt/user/config/docker/stack123/docker-compose.override.yml' -p stack123 up -d

Sep 25 09:16:48 tower root: Starting compose stack: stack1234

Sep 25 09:16:48 tower root: docker compose -f '/mnt/user/config/docker/stack1234/docker-compose.yml' -f '/mnt/user/config/docker/stack1234/docker-compose.override.yml' -p stack1234 up -d

Sep 25 09:16:48 tower root: Starting compose stack: stack12345

Sep 25 09:16:48 tower root: docker compose -f '/mnt/user/config/docker/stack12345/docker-compose.yml' -f '/mnt/user/config/docker/stack12345/docker-compose.override.yml' -p stack12345 up -d

Sep 25 09:16:48 tower root: Starting compose stack: stack123456

Sep 25 09:16:48 tower root: docker compose -f '/mnt/user/config/docker/stack123456/docker-compose.yml' -f '/mnt/user/config/docker/stack123456/docker-compose.override.yml' -p stack123456 up -d

Sep 25 09:16:48 tower usb_manager: Info: virsh called VM12345 005 002 Device attached successfully

...

My Userscript i set at "Array Start" which works without any problem

echo "START CONTAINERS START"

sleep 15

#stack0

cd /mnt/user/config/docker/stack0

docker compose start

Edited by unr41dus3r

  • Author
35 minutes ago, unr41dus3r said:

The problem, Unraid is not updating this file if you remove an container from the web gui.

I disabled the autostart for all containers in the GUI before removing, but for some it did not stick and was not edited into the file, but this is a different problem with unraid.

If you havent already this should be reported as an unraid issue in the Bug Reports subforum.

  • 3 weeks later...

On 1/16/2024 at 1:33 AM, mtongnz said:

To use it, create a file called envToUse in the project folder (i.e. where the compose.yaml file is) and put the full path to the env file.  I use vscode-server to manage my files so it's pretty easy.  But if there's a bit of interest, I might look at building a UI integration of some sort.

@mtongnz, how do you use code-server to edit/manage your docker compose files from the plugin? Since its all owned by root, when I pass /boot/config/plugins/compose.manager/projects to the container, it does not have permissions to see it. When I change PUID/PGID to 0, it works, but I'd like to find a better way.

I've run into an issue where Docker Compose is working from Command Line for a specific service but won't launch correctly through the GUI.


I’m setting up Taiga on my server, it needs multiple containers to run so I’m using Docker Compose. If I run Docker Compose from the Command line, (literally just docker compose up -d) it works fine, but if I run it from the Docker Compose GUI Plugin I get some errors. The 'compose.yml' & '.env' file are pointing to correct location in the GUI so I’m wondering what other differences there are that I might be missing.


All the container spin up from the GUI then the back-end crashes with this error: (the error isn't relevant to docker compose, but I'll post it just in case)

File "/opt/venv/lib/python3.11/site-packages/django/db/backends/utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
psycopg2.errors.DuplicateColumn: column "issues_csv_uuid" of relation "projects_project" already exists

Once again this only happens when I launch it from the GUI not if I launch it via command line, so I don't think it's an issue with the project. Just that I'm missing some difference between how the plugin runs Docker-Compose.


I initially thought it might be some relative path issue, and that the command-line works since I'm running from the folder that has the config.yml in, but if I run docker compose in CL from the root directory and pass in the path of the compose file it also works fine.

I've attached the docker compose file in case that helps
docker-compose.yml

Any help would be appreciated, I've stuck on this problem for a while now



  • Author

If you enable the debug option on the compose manager settings page, then you should be able to see in the system log the exact compose command the plugin is using.

P.S. While likely unrelated and not an issue it is no longer recommended to put the version line in your compose file.

Edited by primeval_god

  • 2 weeks later...

Just a heads up the wrong year (2024) is referenced in the change log for the most recent update. Caused me a small bit of confusion.

Thanks for publishing this CA, it's very useful.

image.png

Edited by Virtech
specified 2024 and added that the mismatch year caused me confusion

  • 1 month later...

There are "update stack" buttons, but how do you guys schedule images to automatically be updated, and old images/containers to be removed?

  • 3 weeks later...

Does this install the latest version (v5.x)?

  • 1 month later...
On 1/5/2026 at 8:42 AM, bokkoman said:

Does this install the latest version (v5.x)?

no, there is a support post area where someone uses a user scirpt and grabs the latters salkc package to install v5 not part of the stable plugin...

root@BMM-Tower:~# docker-compose -v

Docker Compose version v2.40.3

root@BMM-Tower:~#


that saicc primeeval_god has kept this uptdate.

example as unraid runs lsack ware linux:
http://www.slackware.com/~alien/slackbuilds/docker-compose/build/docker-compose.SlackBuild
and per the change, the last long version I know was v2.35

There is a difference between Compose v5 and the command docker compose and what Slackware Linux builds with docker for dcoker-compose...

Docker Compose does not have a "v5" release; the current major version is v2, used with the docker compose command. It can be installed on Slackware Linux using the manual binary installation method or the SlackBuilds repository.

So Do so at your own risk...https://docs.docker.com/compose/install/linux/#:~:text=To%20download%20and%20install%20the,$%20docker%20compose%20version

Edited by bmartino1

On 12/15/2025 at 7:46 AM, tuxbass said:

There are "update stack" buttons, but how do you guys schedule images to automatically be updated, and old images/containers to be removed?

image.png

Most dockers in compose are not taged lattest adn are instaed taged to that docker.

I have found when set to lattest taht squids CA auto update can targe and update the docker.

This downlaods the image the compse stack needs rebooted...

Login once a month and hit update stack button or pull the script thte button does and add to a a user script...

for instance:
image.png
If I want to update the ars dockers since this is my latest tags..

reveres enginer the code page..

<input type="button" value="Update Stack" class="update-button" id="update-ARS-Stack" onclick="UpdateStack(&quot;/boot/config/plugins/compose.manager/projects/ARS-Stack&quot;);">

root@BMM-Tower:/boot/config/plugins/compose.manager/projects
and target xyc and there comand..

Or do what I do...

as I set the copose file at a specal location.
image.png


each docker gets a pul poloicy line:
image.png

The command-line options are:

  • --pull always

  • --pull missing

  • --pull never

Using the command line option will override any pull_policy specified in the Compose file for that particular command execution.

per docs:

https://docs.docker.com/reference/cli/docker/compose/up/
https://docs.docker.com/reference/cli/docker/image/pull/

https://stackoverflow.com/questions/64493477/docker-pull-image-policy-settings#:~:text=As%20far%20as%20I%20know,run%20act%20like%20imagePullPolicy:%20Always%20

And runa a user scipt to call docker-comse down /pathto the copse file
and compse up the compose file and let at startup update teh docker images.

On 12/15/2025 at 9:46 PM, tuxbass said:

There are "update stack" buttons, but how do you guys schedule images to automatically be updated, and old images/containers to be removed?

I run a wud (Whats Up Docker) container, which allows me to list all updates. It has view to group my project label, which is how compose organizes stacks, so I just go in once in a while and update stacks that are showing updates

wud has a lot of configurable features. I use notifications and rate limiting for checks. I think it also has means to auto update, but I dont use that, as I prefer to click update stacks button after being notified. That way, I know if something breaks and can be correlated back to this update. Wud also allows version pinning or regex matches to calculate updates by applying a docker label, this allows me to not be nagged about images that I want to stay at a specific version or range even if new updates are available

Details: https://getwud.github.io/wud

  • 2 weeks later...

Having used QNAP for years, I’m still getting familiar with Unraid and docker compose manager, I’ve successfully created one (open-web ui) but I’m really struggling with my next one (scriptserver). Everything seems to be up and running, at least to some degree (it’s all Green), but I can’t access the containers webui and there is nothing obvious in the logs. The compose I started with was one I’ve had on my QNAP many times no issue.

Here is the compose file, if anyone has time, please can you help me find what’s wrong ?

````

services:

scriptserver:

container_name: scriptserver

network_mode: bridge

deploy:

resources:

limits:

pids: 2048

environment:

- TZ=Europe/London

- HOST_OS=Unraid

- HOST_HOSTNAME=Tower

- HOST_CONTAINERNAME=scriptserver

labels:

- net.unraid.docker.managed=dockerman

- net.unraid.docker.webui=http://[IP]:[PORT:5012]/

- net.unraid.docker.icon=

volumes:

- /mnt/user/appdata/scriptserver/conf/conf.json:/app/conf/conf.json

- /mnt/user/appdata/scriptserver/runners/:/app/runners/:rw

- /mnt/user/appdata/scriptserver/scripts/:/app/scripts/:rw

- /mnt/user/appdata/scriptserver/media/:/app/media/:rw

- /var/run/docker.sock:/var/run/docker.sock:ro

ports:

- 5012:5000/tcp

image: bugy/script-server:latest

````

The required conf.json is something like this .

````

{

"port": 5012,

"title": "Node Central Scripts",

"address": "0.0.0.0",

"access": {

"admin_users": [ "*" ]

}

}

````

Edited by NodeZero

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.