From 14a9d7db022c32383b4133f69a05df1fa5fda65c Mon Sep 17 00:00:00 2001 From: Codex Date: Wed, 17 Jun 2026 05:22:31 +0200 Subject: [PATCH] Add DockerMan labels to Unraid compose --- CHANGELOG.md | 1 + backend/tests/test_sprint31_unraid_template.py | 3 +++ deploy/unraid/README.md | 10 ++++++++++ docker-compose.unraid.yml | 4 ++++ docs/CODEX_EXECUTION_LOG.md | 1 + 5 files changed, 19 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d793cf8c..1af010f5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ - Added `deploy/unraid/all-in-one-start.sh` to start embedded PostGIS, apply Alembic migrations, start the backend and serve nginx. - Added `deploy/unraid/nginx-all-in-one.conf` with localhost backend proxying inside the same container. - Added a PNG DockerMan icon and made the Unraid template name match the running `geointel` container. +- Added DockerMan labels to the all-in-one Compose service so Unraid can associate the running container with web UI and icon metadata. - Updated Tower deploy scripts to install `/boot/config/plugins/dockerMan/templates-user/my-geointel.xml` and `/boot/config/plugins/dockerMan/images/geointel-icon.png`. - Updated Tower deploy scripts to stop the old multi-container stack without removing volumes and start the all-in-one stack. - Updated the Unraid template so the Docker can be edited from Unraid with one web port, storage path, PostGIS data path and app icon. diff --git a/backend/tests/test_sprint31_unraid_template.py b/backend/tests/test_sprint31_unraid_template.py index e85b2050..84d2a53b 100644 --- a/backend/tests/test_sprint31_unraid_template.py +++ b/backend/tests/test_sprint31_unraid_template.py @@ -44,6 +44,9 @@ def test_unraid_env_template_matches_single_container_compose_variables() -> Non assert "${GEOINTEL_POSTGIS_DATA_PATH:-geointel_postgis}:/var/lib/postgresql/data" in compose assert "geointel_postgis:" in compose assert "geointel:" in compose + assert "net.unraid.docker.managed: dockerman" in compose + assert 'net.unraid.docker.webui: "http://[IP]:[PORT:80]/"' in compose + assert 'net.unraid.docker.icon: "/boot/config/plugins/dockerMan/images/geointel-icon.png"' in compose assert "db:" not in compose assert "backend:" not in compose assert "frontend:" not in compose diff --git a/deploy/unraid/README.md b/deploy/unraid/README.md index 64bf58a3..1e36e52b 100644 --- a/deploy/unraid/README.md +++ b/deploy/unraid/README.md @@ -50,6 +50,16 @@ and copy the PNG icon to: The template name is `geointel` so it matches the running all-in-one container name. If the Unraid Docker page was already open, refresh it after deploy so DockerMan reloads the template/icon metadata. +`docker-compose.unraid.yml` also applies DockerMan labels to the running container: + +```text +net.unraid.docker.managed=dockerman +net.unraid.docker.webui=http://[IP]:[PORT:80]/ +net.unraid.docker.icon=/boot/config/plugins/dockerMan/images/geointel-icon.png +``` + +These labels are required because a plain Compose container can run correctly while still missing the normal Unraid edit/icon controls. + ## First setup with Compose Manager From the Unraid shell: diff --git a/docker-compose.unraid.yml b/docker-compose.unraid.yml index 49746c7b..5ea5f4bb 100644 --- a/docker-compose.unraid.yml +++ b/docker-compose.unraid.yml @@ -5,6 +5,10 @@ services: dockerfile: deploy/unraid/Dockerfile.all-in-one image: geointel-all-in-one:latest container_name: geointel + labels: + net.unraid.docker.managed: dockerman + net.unraid.docker.webui: "http://[IP]:[PORT:80]/" + net.unraid.docker.icon: "/boot/config/plugins/dockerMan/images/geointel-icon.png" environment: GEOINTEL_POSTGRES_DB: ${GEOINTEL_POSTGRES_DB:-geointel} GEOINTEL_POSTGRES_USER: ${GEOINTEL_POSTGRES_USER:-geointel} diff --git a/docs/CODEX_EXECUTION_LOG.md b/docs/CODEX_EXECUTION_LOG.md index 3dd97632..3be74e2b 100644 --- a/docs/CODEX_EXECUTION_LOG.md +++ b/docs/CODEX_EXECUTION_LOG.md @@ -1511,6 +1511,7 @@ Changed: - Added a PNG icon for Unraid/DockerMan because DockerMan may not reliably render app-served SVG icons. - Changed the Unraid template `` to `geointel` so it matches the running all-in-one container name. - Changed the template icon URL to the absolute PNG URL `http://192.168.10.150:1202/geointel-icon.png`. +- Added DockerMan labels to `docker-compose.unraid.yml` so the running Compose container exposes Unraid managed/webui/icon metadata. - Updated Tower deploy scripts to copy the editable template to `/boot/config/plugins/dockerMan/templates-user/my-geointel.xml`. - Updated Tower deploy scripts to copy the PNG icon to `/boot/config/plugins/dockerMan/images/geointel-icon.png`.