From 5e2281fbcec2bba6b1c0181ae5c80fb795ea9e1e Mon Sep 17 00:00:00 2001 From: Sonny Piers Date: Mon, 16 Jun 2025 11:42:13 +0200 Subject: [PATCH 1/5] Disable segmenter --- .../apps/ps/backend/proc-segmenter.deploy.yml | 2 +- .../processing/segmenter/deploy.compose.yml | 16 ----- .../segmenter/deployment.compose.yml | 9 --- .../processing/segmenter/dev-data.compose.yml | 12 ---- .../processing/segmenter/dev-logs.compose.yml | 12 ---- .../segmenter/dev-machinename.compose.yml | 4 -- .../processing/segmenter/dev-src.compose.yml | 4 -- .../processing/segmenter/forklift-package.yml | 70 ------------------- ...ine-subtract-consecutive-masks.compose.yml | 4 -- .../node-red-dashboard/forklift-package.yml | 25 +++---- 10 files changed, 11 insertions(+), 147 deletions(-) delete mode 100644 packages/core/apps/planktoscope/device-backend/processing/segmenter/deploy.compose.yml delete mode 100644 packages/core/apps/planktoscope/device-backend/processing/segmenter/deployment.compose.yml delete mode 100644 packages/core/apps/planktoscope/device-backend/processing/segmenter/dev-data.compose.yml delete mode 100644 packages/core/apps/planktoscope/device-backend/processing/segmenter/dev-logs.compose.yml delete mode 100644 packages/core/apps/planktoscope/device-backend/processing/segmenter/dev-machinename.compose.yml delete mode 100644 packages/core/apps/planktoscope/device-backend/processing/segmenter/dev-src.compose.yml delete mode 100644 packages/core/apps/planktoscope/device-backend/processing/segmenter/pipeline-subtract-consecutive-masks.compose.yml diff --git a/deployments/apps/ps/backend/proc-segmenter.deploy.yml b/deployments/apps/ps/backend/proc-segmenter.deploy.yml index fb44223c..de396dd6 100644 --- a/deployments/apps/ps/backend/proc-segmenter.deploy.yml +++ b/deployments/apps/ps/backend/proc-segmenter.deploy.yml @@ -1,7 +1,7 @@ package: /packages/core/apps/planktoscope/device-backend/processing/segmenter features: - object-stream-mjpeg - - deploy + # - deploy # - dev-machinename # - dev-data # - dev-logs diff --git a/packages/core/apps/planktoscope/device-backend/processing/segmenter/deploy.compose.yml b/packages/core/apps/planktoscope/device-backend/processing/segmenter/deploy.compose.yml deleted file mode 100644 index c67552f7..00000000 --- a/packages/core/apps/planktoscope/device-backend/processing/segmenter/deploy.compose.yml +++ /dev/null @@ -1,16 +0,0 @@ -services: - server: - volumes: - - /run/machine-name:/run/machine-name - - /home/pi/data:/home/pi/data - - /home/pi/device-backend-logs:/home/pi/device-backend-logs - depends_on: - bind-mount-setup: - condition: service_completed_successfully - bind-mount-setup: - # This is a workaround for non-rootless Docker creating bind mounts with root ownership: - image: docker.io/library/alpine:3.22.0@sha256:8a1f59ffb675680d47db6337b49d22281a139e9d709335b492be023728e11715 - volumes: - - /home/pi/data:/home/pi/data - - /home/pi/device-backend-logs:/home/pi/device-backend-logs - command: 'sh -c "chown -R 1000:1000 /home/pi/data /home/pi/device-backend-logs; sleep 60"' diff --git a/packages/core/apps/planktoscope/device-backend/processing/segmenter/deployment.compose.yml b/packages/core/apps/planktoscope/device-backend/processing/segmenter/deployment.compose.yml deleted file mode 100644 index 78e4a0f9..00000000 --- a/packages/core/apps/planktoscope/device-backend/processing/segmenter/deployment.compose.yml +++ /dev/null @@ -1,9 +0,0 @@ -services: - server: - image: ghcr.io/planktoscope/device-backend-processing-segmenter:2025.0.0-alpha.0@sha256:bf9ad0b9e55436d6da7923a0828e584082aa383bb09b9c5330afee3f1f14a7d3 - extra_hosts: - - host.docker.internal:host-gateway -networks: - default: - name: none - external: true diff --git a/packages/core/apps/planktoscope/device-backend/processing/segmenter/dev-data.compose.yml b/packages/core/apps/planktoscope/device-backend/processing/segmenter/dev-data.compose.yml deleted file mode 100644 index 01c2210f..00000000 --- a/packages/core/apps/planktoscope/device-backend/processing/segmenter/dev-data.compose.yml +++ /dev/null @@ -1,12 +0,0 @@ -services: - server: - volumes: - - ~/.local/share/planktoscope/data:/home/pi/data - depends_on: - data-bind-mount-setup: - condition: service_completed_successfully - data-bind-mount-setup: - image: docker.io/library/alpine:3.22.0@sha256:8a1f59ffb675680d47db6337b49d22281a139e9d709335b492be023728e11715 - volumes: - - ~/.local/share/planktoscope/data:/home/pi/data - command: 'sh -c "chown -R 1000:1000 /home/pi/data; sleep 60"' diff --git a/packages/core/apps/planktoscope/device-backend/processing/segmenter/dev-logs.compose.yml b/packages/core/apps/planktoscope/device-backend/processing/segmenter/dev-logs.compose.yml deleted file mode 100644 index 066673f1..00000000 --- a/packages/core/apps/planktoscope/device-backend/processing/segmenter/dev-logs.compose.yml +++ /dev/null @@ -1,12 +0,0 @@ -services: - server: - volumes: - - ~/.local/share/planktoscope/device-backend-logs:/home/pi/device-backend-logs - depends_on: - logs-bind-mount-setup: - condition: service_completed_successfully - logs-bind-mount-setup: - image: docker.io/library/alpine:3.22.0@sha256:8a1f59ffb675680d47db6337b49d22281a139e9d709335b492be023728e11715 - volumes: - - ~/.local/share/planktoscope/device-backend-logs:/home/pi/device-backend-logs - command: 'sh -c "chown -R 1000:1000 /home/pi/device-backend-logs; sleep 60"' diff --git a/packages/core/apps/planktoscope/device-backend/processing/segmenter/dev-machinename.compose.yml b/packages/core/apps/planktoscope/device-backend/processing/segmenter/dev-machinename.compose.yml deleted file mode 100644 index 48e9d9ce..00000000 --- a/packages/core/apps/planktoscope/device-backend/processing/segmenter/dev-machinename.compose.yml +++ /dev/null @@ -1,4 +0,0 @@ -services: - server: - volumes: - - ~/.local/share/planktoscope/machine-name:/var/lib/planktoscope/machine-name diff --git a/packages/core/apps/planktoscope/device-backend/processing/segmenter/dev-src.compose.yml b/packages/core/apps/planktoscope/device-backend/processing/segmenter/dev-src.compose.yml deleted file mode 100644 index 7a1596d1..00000000 --- a/packages/core/apps/planktoscope/device-backend/processing/segmenter/dev-src.compose.yml +++ /dev/null @@ -1,4 +0,0 @@ -services: - server: - volumes: - - ~/.local/share/planktoscope/src/device-backend/processing/segmenter:/home/pi/device-backend/processing/segmenter diff --git a/packages/core/apps/planktoscope/device-backend/processing/segmenter/forklift-package.yml b/packages/core/apps/planktoscope/device-backend/processing/segmenter/forklift-package.yml index e1d45286..75a052eb 100644 --- a/packages/core/apps/planktoscope/device-backend/processing/segmenter/forklift-package.yml +++ b/packages/core/apps/planktoscope/device-backend/processing/segmenter/forklift-package.yml @@ -7,45 +7,6 @@ package: sources: - https://github.com/PlanktoScope/device-backend -deployment: - compose-files: - - deployment.compose.yml - tags: - - device-portal.name=PlanktoScope object segmenter - - device-portal.description=Provides an MQTT service on /segmenter and /status/segmenter for operating the PlanktoScope object segmenter - - device-portal.type=Network APIs - - device-portal.purpose=PlanktoScope operation - requires: - services: - - tags: [mqtt-broker] - port: 1883 - protocol: mqtt - nonblocking: false # absence of the MQTT server is not yet handled - filesets: - - description: Directories for datasets - paths: - - /home/pi/data/img - - /home/pi/data/export - - description: Directories for logging - paths: - - /home/pi/device-backend-logs/processing/segmenter - provides: - services: - - description: MQTT handling of segmenter commands and broadcasting of segmenter statuses - tags: [planktoscope-api-v2] - port: 1883 - protocol: mqtt - paths: - - /segmenter/segment - - /status/segmenter - - /status/segmenter/name - - /status/segmenter/object_id - - /status/segmenter/metric - filesets: - - description: Directory for intermediate results - paths: - - /home/pi/data/obj - features: object-stream-mjpeg: description: Provides access to the last segmented object MJPEG stream @@ -73,34 +34,3 @@ features: protocol: http paths: - /ps/processing/segmenter/streams/object.mjpg - deploy: - description: Adds bind mounts for the PlanktoScope distro's filesystem structure - compose-files: - - deploy.compose.yml - requires: - filesets: - - description: Machine name - paths: - - /run/machine-name - dev-machinename: - description: Allows a machine name to be set in a file for development & troubleshooting - compose-files: - - dev-machinename.compose.yml - dev-data: - description: Allows the segmenter to read and write datasets - compose-files: - - dev-data.compose.yml - dev-logs: - description: Allows the segmenter's logs to be accessed and saved on disk - compose-files: - - dev-logs.compose.yml - dev-src: - description: Allows the source code to be overwritten from an existing codebase for development & troubleshooting - compose-files: - - dev-src.compose.yml - pipeline-subtract-consecutive-masks: - description: - Default to enabling subtraction of consecutive segmentation masks from each other as part of - the segmentation pipeline, for stronger suppression of duplicate objects. - compose-files: - - pipeline-subtract-consecutive-masks.compose.yml diff --git a/packages/core/apps/planktoscope/device-backend/processing/segmenter/pipeline-subtract-consecutive-masks.compose.yml b/packages/core/apps/planktoscope/device-backend/processing/segmenter/pipeline-subtract-consecutive-masks.compose.yml deleted file mode 100644 index b5b8cde1..00000000 --- a/packages/core/apps/planktoscope/device-backend/processing/segmenter/pipeline-subtract-consecutive-masks.compose.yml +++ /dev/null @@ -1,4 +0,0 @@ -services: - server: - environment: - - SEGMENTER_PIPELINE_SUBTRACT_CONSECUTIVE_MASKS=true diff --git a/packages/core/apps/planktoscope/node-red-dashboard/forklift-package.yml b/packages/core/apps/planktoscope/node-red-dashboard/forklift-package.yml index 0b60f8f1..ab9ff5dc 100644 --- a/packages/core/apps/planktoscope/node-red-dashboard/forklift-package.yml +++ b/packages/core/apps/planktoscope/node-red-dashboard/forklift-package.yml @@ -43,14 +43,9 @@ deployment: - /actuator/pump - /actuator/focus - /imager/image - - /segmenter/segment - /status/pump - /status/focus - /status/imager - - /status/segmenter - - /status/segmenter/name - - /status/segmenter/object_id - - /status/segmenter/metric # TODO: add fileset dependencies for /home/pi/PlanktoScope/config.json, # /home/pi/PlanktoScope/hardware.json, /home/pi/data/img, # /home/pi/PlanktoScope/scripts/bash/usb_backup.sh, @@ -63,11 +58,11 @@ features: compose-files: - editor.compose.yml tags: - - device-portal.name=Node-RED dashboard editor - - device-portal.description=Provides a Node-RED flow editor to modify the Node-RED dashboard - - device-portal.type=Browser applications - - device-portal.purpose=Software development - - device-portal.entrypoint=/admin/ps/node-red-v2/ + - device-portal.name=Node-RED dashboard editor + - device-portal.description=Provides a Node-RED flow editor to modify the Node-RED dashboard + - device-portal.type=Browser applications + - device-portal.purpose=Software development + - device-portal.entrypoint=/admin/ps/node-red-v2/ requires: networks: - description: Overlay network for Caddy to connect to upstream services @@ -93,11 +88,11 @@ features: compose-files: - frontend.compose.yml tags: - - device-portal.name=Node-RED dashboard - - device-portal.description=Provides a Node-RED dashboard to operate the PlanktoScope - - device-portal.type=Browser applications - - device-portal.purpose=PlanktoScope operation - - device-portal.entrypoint=/ps/node-red-v2/ui/ + - device-portal.name=Node-RED dashboard + - device-portal.description=Provides a Node-RED dashboard to operate the PlanktoScope + - device-portal.type=Browser applications + - device-portal.purpose=PlanktoScope operation + - device-portal.entrypoint=/ps/node-red-v2/ui/ requires: networks: - description: Overlay network for Caddy to connect to upstream services From a626ac20ceef1cae76f98fa2b02b38295a120519 Mon Sep 17 00:00:00 2001 From: Sonny Piers Date: Mon, 30 Jun 2025 11:52:45 +0200 Subject: [PATCH 2/5] f --- .../processing/segmenter/object-stream-mjpeg.compose.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/packages/core/apps/planktoscope/device-backend/processing/segmenter/object-stream-mjpeg.compose.yml b/packages/core/apps/planktoscope/device-backend/processing/segmenter/object-stream-mjpeg.compose.yml index e8f5cac1..c0bd8182 100644 --- a/packages/core/apps/planktoscope/device-backend/processing/segmenter/object-stream-mjpeg.compose.yml +++ b/packages/core/apps/planktoscope/device-backend/processing/segmenter/object-stream-mjpeg.compose.yml @@ -7,10 +7,6 @@ services: caddy.handle_path: /ps/processing/segmenter/streams/object.mjpg caddy.handle_path.rewrite: "* /object.mjpg" caddy.handle_path.reverse_proxy: "{{upstreams 8001}}" - bind-mount-setup: - networks: - # This is needed so Docker doesn't complain - - caddy-ingress networks: caddy-ingress: From 3b2cee38fe3862cfd58bb3ec6c6b91203f3201c8 Mon Sep 17 00:00:00 2001 From: Sonny Piers Date: Mon, 30 Jun 2025 12:03:13 +0200 Subject: [PATCH 3/5] Revert "f" This reverts commit a626ac20ceef1cae76f98fa2b02b38295a120519. --- .../processing/segmenter/object-stream-mjpeg.compose.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/core/apps/planktoscope/device-backend/processing/segmenter/object-stream-mjpeg.compose.yml b/packages/core/apps/planktoscope/device-backend/processing/segmenter/object-stream-mjpeg.compose.yml index c0bd8182..e8f5cac1 100644 --- a/packages/core/apps/planktoscope/device-backend/processing/segmenter/object-stream-mjpeg.compose.yml +++ b/packages/core/apps/planktoscope/device-backend/processing/segmenter/object-stream-mjpeg.compose.yml @@ -7,6 +7,10 @@ services: caddy.handle_path: /ps/processing/segmenter/streams/object.mjpg caddy.handle_path.rewrite: "* /object.mjpg" caddy.handle_path.reverse_proxy: "{{upstreams 8001}}" + bind-mount-setup: + networks: + # This is needed so Docker doesn't complain + - caddy-ingress networks: caddy-ingress: From 2459908691b472cb2a156255b23e8946387093f6 Mon Sep 17 00:00:00 2001 From: Sonny Piers Date: Mon, 30 Jun 2025 12:15:32 +0200 Subject: [PATCH 4/5] f --- .../apps/ps/backend/proc-segmenter.deploy.yml | 8 +------- .../processing/segmenter/deploy.compose.yml | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 7 deletions(-) create mode 100644 packages/core/apps/planktoscope/device-backend/processing/segmenter/deploy.compose.yml diff --git a/deployments/apps/ps/backend/proc-segmenter.deploy.yml b/deployments/apps/ps/backend/proc-segmenter.deploy.yml index de396dd6..48a30f3d 100644 --- a/deployments/apps/ps/backend/proc-segmenter.deploy.yml +++ b/deployments/apps/ps/backend/proc-segmenter.deploy.yml @@ -1,11 +1,5 @@ package: /packages/core/apps/planktoscope/device-backend/processing/segmenter features: - object-stream-mjpeg - # - deploy - # - dev-machinename - # - dev-data - # - dev-logs - # - dev-src - # Uncomment the following line to re-enable subtraction of masks between consecutive frames: - # - pipeline-subtract-consecutive-masks + - deploy disabled: false diff --git a/packages/core/apps/planktoscope/device-backend/processing/segmenter/deploy.compose.yml b/packages/core/apps/planktoscope/device-backend/processing/segmenter/deploy.compose.yml new file mode 100644 index 00000000..c67552f7 --- /dev/null +++ b/packages/core/apps/planktoscope/device-backend/processing/segmenter/deploy.compose.yml @@ -0,0 +1,16 @@ +services: + server: + volumes: + - /run/machine-name:/run/machine-name + - /home/pi/data:/home/pi/data + - /home/pi/device-backend-logs:/home/pi/device-backend-logs + depends_on: + bind-mount-setup: + condition: service_completed_successfully + bind-mount-setup: + # This is a workaround for non-rootless Docker creating bind mounts with root ownership: + image: docker.io/library/alpine:3.22.0@sha256:8a1f59ffb675680d47db6337b49d22281a139e9d709335b492be023728e11715 + volumes: + - /home/pi/data:/home/pi/data + - /home/pi/device-backend-logs:/home/pi/device-backend-logs + command: 'sh -c "chown -R 1000:1000 /home/pi/data /home/pi/device-backend-logs; sleep 60"' From 3776e964ba612ea88edb9afc92969c165735afff Mon Sep 17 00:00:00 2001 From: Sonny Piers Date: Mon, 30 Jun 2025 12:21:10 +0200 Subject: [PATCH 5/5] f --- .../processing/segmenter/forklift-package.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/packages/core/apps/planktoscope/device-backend/processing/segmenter/forklift-package.yml b/packages/core/apps/planktoscope/device-backend/processing/segmenter/forklift-package.yml index 75a052eb..8960271b 100644 --- a/packages/core/apps/planktoscope/device-backend/processing/segmenter/forklift-package.yml +++ b/packages/core/apps/planktoscope/device-backend/processing/segmenter/forklift-package.yml @@ -34,3 +34,12 @@ features: protocol: http paths: - /ps/processing/segmenter/streams/object.mjpg + deploy: + description: Adds bind mounts for the PlanktoScope distro's filesystem structure + compose-files: + - deploy.compose.yml + requires: + filesets: + - description: Machine name + paths: + - /run/machine-name