From 1b2fe435718ed4fe2157d927172b8effb8ed3b68 Mon Sep 17 00:00:00 2001 From: PPawlowski Date: Wed, 10 Dec 2025 11:58:40 +0100 Subject: [PATCH 01/29] Test containers publis workflow --- .github/workflows/build-containers.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/build-containers.yml b/.github/workflows/build-containers.yml index 4f89c03..f16e5d8 100644 --- a/.github/workflows/build-containers.yml +++ b/.github/workflows/build-containers.yml @@ -1,5 +1,8 @@ name: Build and push containers on: + pull_request: + branches: + - main push: tags: - "v*.*.*" @@ -34,6 +37,7 @@ jobs: username: flowforge password: ${{ secrets.DOCKER_HUB_PASSWORD }} - name: Build and push FlowForge Application container + if: false uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0 with: context: docker-compose/flowforge-docker @@ -57,6 +61,7 @@ jobs: readme-filepath: docker-compose/README.md release-compose-files: + if: false runs-on: ubuntu-latest permissions: contents: write From b6cd69882a62792595c5e883f7faad96f7ae6bcc Mon Sep 17 00:00:00 2001 From: PPawlowski Date: Wed, 10 Dec 2025 12:03:59 +0100 Subject: [PATCH 02/29] List repos to validate credentials --- .github/workflows/build-containers.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/workflows/build-containers.yml b/.github/workflows/build-containers.yml index f16e5d8..973025e 100644 --- a/.github/workflows/build-containers.yml +++ b/.github/workflows/build-containers.yml @@ -36,6 +36,15 @@ jobs: with: username: flowforge password: ${{ secrets.DOCKER_HUB_PASSWORD }} + + - name: List Docker Hub repositories + run: | + curl -s -H "Authorization: JWT $(curl -s -X POST \ + -H "Content-Type: application/json" \ + -d '{"username": "flowforge", "password": "${{ secrets.DOCKER_HUB_PASSWORD }}"}' \ + https://hub.docker.com/v2/users/login/ | jq -r .token)" \ + "https://hub.docker.com/v2/repositories/flowforge/?page_size=100" | jq -r '.results[].name' + - name: Build and push FlowForge Application container if: false uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0 From 541b3402005e5264b1ffefcc20efc57023f33d41 Mon Sep 17 00:00:00 2001 From: PPawlowski Date: Wed, 10 Dec 2025 12:12:57 +0100 Subject: [PATCH 03/29] Use token instead of password --- .github/workflows/build-containers.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-containers.yml b/.github/workflows/build-containers.yml index 973025e..6c23455 100644 --- a/.github/workflows/build-containers.yml +++ b/.github/workflows/build-containers.yml @@ -35,13 +35,13 @@ jobs: uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0 with: username: flowforge - password: ${{ secrets.DOCKER_HUB_PASSWORD }} + password: ${{ secrets.FLOWFORGE_DOCKER_HUB_TOKEN }} - name: List Docker Hub repositories run: | curl -s -H "Authorization: JWT $(curl -s -X POST \ -H "Content-Type: application/json" \ - -d '{"username": "flowforge", "password": "${{ secrets.DOCKER_HUB_PASSWORD }}"}' \ + -d '{"username": "flowforge", "password": "${{ secrets.FLOWFORGE_DOCKER_HUB_TOKEN }}"}' \ https://hub.docker.com/v2/users/login/ | jq -r .token)" \ "https://hub.docker.com/v2/repositories/flowforge/?page_size=100" | jq -r '.results[].name' @@ -59,7 +59,7 @@ jobs: with: repository: flowforge/forge-docker username: flowforge - password: ${{ secrets.DOCKER_HUB_PASSWORD }} + password: ${{ secrets.FLOWFORGE_DOCKER_HUB_TOKEN }} readme-filepath: docker-compose/README.md - name: Push README flowfuse uses: peter-evans/dockerhub-description@1b9a80c056b620d92cedb9d9b5a223409c68ddfa # v5.0.0 From 826790b4c2e8bdf2c0bdb6eb6686b288369d1b0a Mon Sep 17 00:00:00 2001 From: PPawlowski Date: Wed, 10 Dec 2025 12:17:33 +0100 Subject: [PATCH 04/29] Force fresh run after secret update --- .github/workflows/build-containers.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build-containers.yml b/.github/workflows/build-containers.yml index 6c23455..e2e21bf 100644 --- a/.github/workflows/build-containers.yml +++ b/.github/workflows/build-containers.yml @@ -54,6 +54,7 @@ jobs: platforms: linux/amd64, linux/arm64, linux/arm/v7 tags: ${{ steps.meta.outputs.tags }} push: true + - name: Push README uses: peter-evans/dockerhub-description@1b9a80c056b620d92cedb9d9b5a223409c68ddfa # v5.0.0 with: @@ -61,6 +62,7 @@ jobs: username: flowforge password: ${{ secrets.FLOWFORGE_DOCKER_HUB_TOKEN }} readme-filepath: docker-compose/README.md + - name: Push README flowfuse uses: peter-evans/dockerhub-description@1b9a80c056b620d92cedb9d9b5a223409c68ddfa # v5.0.0 with: From 829adf9fdc320e006d9b86318fe6729cb3c1889d Mon Sep 17 00:00:00 2001 From: PPawlowski Date: Wed, 10 Dec 2025 13:09:26 +0100 Subject: [PATCH 05/29] Update flowfuse readme only --- .github/workflows/build-containers.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-containers.yml b/.github/workflows/build-containers.yml index e2e21bf..2e3e389 100644 --- a/.github/workflows/build-containers.yml +++ b/.github/workflows/build-containers.yml @@ -56,6 +56,7 @@ jobs: push: true - name: Push README + if: false uses: peter-evans/dockerhub-description@1b9a80c056b620d92cedb9d9b5a223409c68ddfa # v5.0.0 with: repository: flowforge/forge-docker From cf938a4f5adc12b5b6eca84bf7f007816d0ca20a Mon Sep 17 00:00:00 2001 From: PPawlowski Date: Wed, 10 Dec 2025 13:13:41 +0100 Subject: [PATCH 06/29] Use direct API call to update description --- .github/workflows/build-containers.yml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/.github/workflows/build-containers.yml b/.github/workflows/build-containers.yml index 2e3e389..cdbf05f 100644 --- a/.github/workflows/build-containers.yml +++ b/.github/workflows/build-containers.yml @@ -55,6 +55,21 @@ jobs: tags: ${{ steps.meta.outputs.tags }} push: true + - name: Push README (API) + run: | + TOKEN=$(curl -s -X POST \ + -H "Content-Type: application/json" \ + -d '{"username": "flowforge", "password": "${{ secrets.FLOWFORGE_DOCKER_HUB_TOKEN }}"}' \ + https://hub.docker.com/v2/users/login/ | jq -r .token) + + README_CONTENT=$(cat docker-compose/README.md | jq -Rs .) + + curl -X PATCH \ + -H "Authorization: JWT ${TOKEN}" \ + -H "Content-Type: application/json" \ + -d "{\"full_description\": ${README_CONTENT}}" \ + https://hub.docker.com/v2/repositories/flowforge/forge-docker + - name: Push README if: false uses: peter-evans/dockerhub-description@1b9a80c056b620d92cedb9d9b5a223409c68ddfa # v5.0.0 From f521c16a9909d939f61aa2014bef8debe3974c3f Mon Sep 17 00:00:00 2001 From: PPawlowski Date: Wed, 10 Dec 2025 13:28:46 +0100 Subject: [PATCH 07/29] Update curl patch request --- .github/workflows/build-containers.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-containers.yml b/.github/workflows/build-containers.yml index cdbf05f..565a367 100644 --- a/.github/workflows/build-containers.yml +++ b/.github/workflows/build-containers.yml @@ -65,7 +65,7 @@ jobs: README_CONTENT=$(cat docker-compose/README.md | jq -Rs .) curl -X PATCH \ - -H "Authorization: JWT ${TOKEN}" \ + -H "Authorization: Bearer ${TOKEN}" \ -H "Content-Type: application/json" \ -d "{\"full_description\": ${README_CONTENT}}" \ https://hub.docker.com/v2/repositories/flowforge/forge-docker From 5da8a09fe5a0edff1a4645827d08f140e98bd629 Mon Sep 17 00:00:00 2001 From: PPawlowski Date: Wed, 10 Dec 2025 13:39:02 +0100 Subject: [PATCH 08/29] Upload shorter readme --- .github/workflows/build-containers.yml | 9 +++++---- README2.md | 4 ++++ 2 files changed, 9 insertions(+), 4 deletions(-) create mode 100644 README2.md diff --git a/.github/workflows/build-containers.yml b/.github/workflows/build-containers.yml index 565a367..62a9934 100644 --- a/.github/workflows/build-containers.yml +++ b/.github/workflows/build-containers.yml @@ -35,13 +35,13 @@ jobs: uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0 with: username: flowforge - password: ${{ secrets.FLOWFORGE_DOCKER_HUB_TOKEN }} + password: ${{ secrets.DOCKER_HUB_PASSWORD }} - name: List Docker Hub repositories run: | curl -s -H "Authorization: JWT $(curl -s -X POST \ -H "Content-Type: application/json" \ - -d '{"username": "flowforge", "password": "${{ secrets.FLOWFORGE_DOCKER_HUB_TOKEN }}"}' \ + -d '{"username": "flowforge", "password": "${{ secrets.DOCKER_HUB_PASSWORD }}"}' \ https://hub.docker.com/v2/users/login/ | jq -r .token)" \ "https://hub.docker.com/v2/repositories/flowforge/?page_size=100" | jq -r '.results[].name' @@ -59,10 +59,10 @@ jobs: run: | TOKEN=$(curl -s -X POST \ -H "Content-Type: application/json" \ - -d '{"username": "flowforge", "password": "${{ secrets.FLOWFORGE_DOCKER_HUB_TOKEN }}"}' \ + -d '{"username": "flowforge", "password": "${{ secrets.DOCKER_HUB_PASSWORD }}"}' \ https://hub.docker.com/v2/users/login/ | jq -r .token) - README_CONTENT=$(cat docker-compose/README.md | jq -Rs .) + README_CONTENT=$(cat docker-compose/README2.md | jq -Rs .) curl -X PATCH \ -H "Authorization: Bearer ${TOKEN}" \ @@ -80,6 +80,7 @@ jobs: readme-filepath: docker-compose/README.md - name: Push README flowfuse + if: false uses: peter-evans/dockerhub-description@1b9a80c056b620d92cedb9d9b5a223409c68ddfa # v5.0.0 with: repository: flowfuse/forge-docker diff --git a/README2.md b/README2.md new file mode 100644 index 0000000..9d6673a --- /dev/null +++ b/README2.md @@ -0,0 +1,4 @@ +# FlowFuse Docker Compose + +An example Docker Compose project to run FlowFuse + From 66cc8a98fe4c2865ee7febfc895b490843032c7d Mon Sep 17 00:00:00 2001 From: PPawlowski Date: Wed, 10 Dec 2025 13:43:28 +0100 Subject: [PATCH 09/29] Remove debug-related step --- .github/workflows/build-containers.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.github/workflows/build-containers.yml b/.github/workflows/build-containers.yml index 62a9934..b7bbd87 100644 --- a/.github/workflows/build-containers.yml +++ b/.github/workflows/build-containers.yml @@ -37,14 +37,6 @@ jobs: username: flowforge password: ${{ secrets.DOCKER_HUB_PASSWORD }} - - name: List Docker Hub repositories - run: | - curl -s -H "Authorization: JWT $(curl -s -X POST \ - -H "Content-Type: application/json" \ - -d '{"username": "flowforge", "password": "${{ secrets.DOCKER_HUB_PASSWORD }}"}' \ - https://hub.docker.com/v2/users/login/ | jq -r .token)" \ - "https://hub.docker.com/v2/repositories/flowforge/?page_size=100" | jq -r '.results[].name' - - name: Build and push FlowForge Application container if: false uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0 From 458627e8f34711b61fc8f49cbcd9d4aa93be3556 Mon Sep 17 00:00:00 2001 From: PPawlowski Date: Wed, 10 Dec 2025 13:59:27 +0100 Subject: [PATCH 10/29] Use action to push smaller readme --- .github/workflows/build-containers.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-containers.yml b/.github/workflows/build-containers.yml index b7bbd87..0b7c984 100644 --- a/.github/workflows/build-containers.yml +++ b/.github/workflows/build-containers.yml @@ -48,13 +48,14 @@ jobs: push: true - name: Push README (API) + if: false run: | TOKEN=$(curl -s -X POST \ -H "Content-Type: application/json" \ -d '{"username": "flowforge", "password": "${{ secrets.DOCKER_HUB_PASSWORD }}"}' \ https://hub.docker.com/v2/users/login/ | jq -r .token) - README_CONTENT=$(cat docker-compose/README2.md | jq -Rs .) + README_CONTENT=$(cat ./docker-compose/README2.md | jq -Rs .) curl -X PATCH \ -H "Authorization: Bearer ${TOKEN}" \ @@ -63,13 +64,13 @@ jobs: https://hub.docker.com/v2/repositories/flowforge/forge-docker - name: Push README - if: false + if: true uses: peter-evans/dockerhub-description@1b9a80c056b620d92cedb9d9b5a223409c68ddfa # v5.0.0 with: repository: flowforge/forge-docker username: flowforge - password: ${{ secrets.FLOWFORGE_DOCKER_HUB_TOKEN }} - readme-filepath: docker-compose/README.md + password: ${{ secrets.DOCKER_HUB_PASSWORD }} + readme-filepath: docker-compose/README2.md - name: Push README flowfuse if: false From e740d49fcea3b865835bc4445f83ebf021303aee Mon Sep 17 00:00:00 2001 From: PPawlowski Date: Wed, 10 Dec 2025 14:05:03 +0100 Subject: [PATCH 11/29] Add full path to readme2 --- .github/workflows/build-containers.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-containers.yml b/.github/workflows/build-containers.yml index 0b7c984..9d60009 100644 --- a/.github/workflows/build-containers.yml +++ b/.github/workflows/build-containers.yml @@ -63,6 +63,9 @@ jobs: -d "{\"full_description\": ${README_CONTENT}}" \ https://hub.docker.com/v2/repositories/flowforge/forge-docker + - name: List files + run: ls -la docker-compose/ + - name: Push README if: true uses: peter-evans/dockerhub-description@1b9a80c056b620d92cedb9d9b5a223409c68ddfa # v5.0.0 @@ -70,7 +73,7 @@ jobs: repository: flowforge/forge-docker username: flowforge password: ${{ secrets.DOCKER_HUB_PASSWORD }} - readme-filepath: docker-compose/README2.md + readme-filepath: ${github.workspace}/docker-compose/README2.md - name: Push README flowfuse if: false From cbf899239b0c76963bebf4dbc5c3bda441f70d8b Mon Sep 17 00:00:00 2001 From: PPawlowski Date: Wed, 10 Dec 2025 14:06:20 +0100 Subject: [PATCH 12/29] Typo fix --- .github/workflows/build-containers.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-containers.yml b/.github/workflows/build-containers.yml index 9d60009..a46c882 100644 --- a/.github/workflows/build-containers.yml +++ b/.github/workflows/build-containers.yml @@ -73,7 +73,7 @@ jobs: repository: flowforge/forge-docker username: flowforge password: ${{ secrets.DOCKER_HUB_PASSWORD }} - readme-filepath: ${github.workspace}/docker-compose/README2.md + readme-filepath: ${{ github.workspace }}/docker-compose/README2.md - name: Push README flowfuse if: false From 4ee8322e9af5494f7c4901edf8b3f4fd3a1c5fb3 Mon Sep 17 00:00:00 2001 From: PPawlowski Date: Wed, 10 Dec 2025 14:08:46 +0100 Subject: [PATCH 13/29] Update readme --- .github/workflows/build-containers.yml | 2 +- README.md | 125 ------------------------- 2 files changed, 1 insertion(+), 126 deletions(-) diff --git a/.github/workflows/build-containers.yml b/.github/workflows/build-containers.yml index a46c882..dae7c72 100644 --- a/.github/workflows/build-containers.yml +++ b/.github/workflows/build-containers.yml @@ -73,7 +73,7 @@ jobs: repository: flowforge/forge-docker username: flowforge password: ${{ secrets.DOCKER_HUB_PASSWORD }} - readme-filepath: ${{ github.workspace }}/docker-compose/README2.md + readme-filepath: docker-compose/README.md - name: Push README flowfuse if: false diff --git a/README.md b/README.md index 3d1d43e..9d6673a 100644 --- a/README.md +++ b/README.md @@ -2,128 +2,3 @@ An example Docker Compose project to run FlowFuse -## Prerequisites - -### Docker Compose - -FlowFuse uses Docker Compose to install and manager the required components. Instructions on how to install Docker Compose on your system can be found here: - -[https://docs.docker.com/compose/install/](https://docs.docker.com/compose/install/) - -FlowFuse requires at least Docker Compose v2 - -These instructions assume you are running Docker on a Linux or MacOS host system. - - -### DNS - -To access the Projects created you will need to set up a wildcard DNS entry that points to the `domain` entered in the `etc/flowforge.yml` file. - -e.g. assuming that Docker is running on a machine with IP address `192.168.0.8` then an A record point to `*.example.com`. - -This will mean that any host at `example.com` will resolve to the `192.168.0.8`. - -**Note** When testing locally you can not use the loopback address `127.0.0.1` for this, e.g. in the `/etc/hosts` file, as this will resolve to the TCP/IP stack inside each container. - -## Installing FlowFuse - -### Building Containers - -To build the required containers simply run `./build-containers.sh`. - -This will build and tag `flowfuse/forge-docker` and `flowfuse/node-red` and `flowfuse/file-server`. - -#### flowfuse/flowforge-docker - -This container holds the FlowFuse App and the Docker Driver. - -#### flowfuse/node-red - -This is a basic Node-RED image with the FlowFuse Launcher and the required Node-RED plugins to talk to the FlowFuse Platform. - -This is the container you can customize for your deployment. - -#### flowfuse/file-server - -This holds the Object Store used to allow persistent file storage for Projects running on Docker - -## Configuration - -Configuration details are stored in the `etc/flowforge.yml` file which is mapped into the `flowforge/forge-docker` container. You will need to edit this file to update the `domain` and `base_url` entries to match the DNS settings. - -You also need to update the `VIRTUAL_HOST` entry in the `docker-compose.yml` file to use the same domain as in the `etc/flowforge.yml` file. - -You should also update the `email` section to point to a local SMTP server so you can invite users to join teams. - -### Creating Instance - -Once the container have been built you can start the FlowFuse by running: - -``` -docker-compose -p flowforge up -d -``` - -This will also create a directory called `db` to hold the database files used to store project instance and user information. - -# Upgrading - -If upgrading from version before version 1.2.0 you will need to manually create the database for the persistent context store. - -To do this you will need to run the following command after starting: - -``` -docker exec -it flowforge_postgres_1 /docker-entrypoint-initdb.d/setup-context-db.sh -``` - -# Development Mode - -**This is experimental** - -If you are actively developing FlowFuse, the following instructions can be used -to run it with the Docker driver using a locally mounted source tree. - -1. Ensure that you have all of the FlowFuse source repositories checked out next to each -other - including this repository. - -2. Run `npm install` in each repository that has a package.json file. - -3. In the `flowforge` repo, run `npm run dev:local` to setup proper dev symlinks - between the repos. - -4. Follow the instructions above to setup DNS. - -5. Edit the `etc/flowforge.yml` file in the `flowforge` repository to use the docker driver: - ``` - port: 3000 - host: 0.0.0.0 - domain: example.com - base_url: http://forge.example.com - api_url: http://forge:3000 - - driver: - type: docker - options: - socket: /tmp/docker.sock - ``` - - -6. Depending on what OS you are running on, the core project has one binary - dependency that needs to be rebuilt for it to work inside Docker - `bcrypt`. - The super hacky way to get that to work is to edit `flowforge/package.json` and - modify the `serve` task to first reinstall that module: - ``` - "serve": "npm uninstall bcrypt && npm install bcrypt && npm-run-all --parallel build-watch start-watch" - ``` - You only need to do this the first time you run under docker - you can then revert - that change for the subsequent runs. - - **Note:** You will need to reinstall the module when you go back to running outside - of docker. - -7. Start the platform with: `docker-compose -f docker-compose-local-dev.yml up --build` - - That will start the standard environment, but the `forge` container will have the - local source tree mounted, and use `npm run serve` to start the code. This means - it will automatically rebuild/restart whenever source code changes are made. - - From 4fe8c8d62d4dfd8267282997f28c0317cc62bc00 Mon Sep 17 00:00:00 2001 From: PPawlowski Date: Wed, 10 Dec 2025 14:09:59 +0100 Subject: [PATCH 14/29] Push via api --- .github/workflows/build-containers.yml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build-containers.yml b/.github/workflows/build-containers.yml index dae7c72..027a574 100644 --- a/.github/workflows/build-containers.yml +++ b/.github/workflows/build-containers.yml @@ -47,8 +47,14 @@ jobs: tags: ${{ steps.meta.outputs.tags }} push: true + - name: List files + run: ls -la docker-compose/ + + - name: Readme content + run: cat docker-compose/README.md + - name: Push README (API) - if: false + if: true run: | TOKEN=$(curl -s -X POST \ -H "Content-Type: application/json" \ @@ -63,11 +69,8 @@ jobs: -d "{\"full_description\": ${README_CONTENT}}" \ https://hub.docker.com/v2/repositories/flowforge/forge-docker - - name: List files - run: ls -la docker-compose/ - - name: Push README - if: true + if: false uses: peter-evans/dockerhub-description@1b9a80c056b620d92cedb9d9b5a223409c68ddfa # v5.0.0 with: repository: flowforge/forge-docker From 61ddd0b615af90793e3083db7eb3c8621ded5c73 Mon Sep 17 00:00:00 2001 From: PPawlowski Date: Wed, 10 Dec 2025 14:13:35 +0100 Subject: [PATCH 15/29] Push via api --- .github/workflows/build-containers.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/build-containers.yml b/.github/workflows/build-containers.yml index 027a574..262b42b 100644 --- a/.github/workflows/build-containers.yml +++ b/.github/workflows/build-containers.yml @@ -13,7 +13,6 @@ jobs: steps: - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 with: - repository: 'flowforge/docker-compose' fetch-depth: 0 path: 'docker-compose' - name: Docker Meta Data @@ -61,7 +60,7 @@ jobs: -d '{"username": "flowforge", "password": "${{ secrets.DOCKER_HUB_PASSWORD }}"}' \ https://hub.docker.com/v2/users/login/ | jq -r .token) - README_CONTENT=$(cat ./docker-compose/README2.md | jq -Rs .) + README_CONTENT=$(cat ./docker-compose/README.md | jq -Rs .) curl -X PATCH \ -H "Authorization: Bearer ${TOKEN}" \ From 950a29af53fb9e613bb547502eb5b48127a155ad Mon Sep 17 00:00:00 2001 From: PPawlowski Date: Wed, 10 Dec 2025 14:15:47 +0100 Subject: [PATCH 16/29] Push via action --- .github/workflows/build-containers.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-containers.yml b/.github/workflows/build-containers.yml index 262b42b..f2c0497 100644 --- a/.github/workflows/build-containers.yml +++ b/.github/workflows/build-containers.yml @@ -53,7 +53,7 @@ jobs: run: cat docker-compose/README.md - name: Push README (API) - if: true + if: false run: | TOKEN=$(curl -s -X POST \ -H "Content-Type: application/json" \ @@ -69,7 +69,7 @@ jobs: https://hub.docker.com/v2/repositories/flowforge/forge-docker - name: Push README - if: false + if: true uses: peter-evans/dockerhub-description@1b9a80c056b620d92cedb9d9b5a223409c68ddfa # v5.0.0 with: repository: flowforge/forge-docker From 43c97dd4ca39d1988483cc827ea0d1a7632edc85 Mon Sep 17 00:00:00 2001 From: PPawlowski Date: Wed, 10 Dec 2025 14:30:42 +0100 Subject: [PATCH 17/29] Revert "Update readme" This reverts commit 4ee8322e9af5494f7c4901edf8b3f4fd3a1c5fb3. --- .github/workflows/build-containers.yml | 2 +- README.md | 125 +++++++++++++++++++++++++ 2 files changed, 126 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-containers.yml b/.github/workflows/build-containers.yml index f2c0497..8ed1309 100644 --- a/.github/workflows/build-containers.yml +++ b/.github/workflows/build-containers.yml @@ -75,7 +75,7 @@ jobs: repository: flowforge/forge-docker username: flowforge password: ${{ secrets.DOCKER_HUB_PASSWORD }} - readme-filepath: docker-compose/README.md + readme-filepath: ${{ github.workspace }}/docker-compose/README2.md - name: Push README flowfuse if: false diff --git a/README.md b/README.md index 9d6673a..3d1d43e 100644 --- a/README.md +++ b/README.md @@ -2,3 +2,128 @@ An example Docker Compose project to run FlowFuse +## Prerequisites + +### Docker Compose + +FlowFuse uses Docker Compose to install and manager the required components. Instructions on how to install Docker Compose on your system can be found here: + +[https://docs.docker.com/compose/install/](https://docs.docker.com/compose/install/) + +FlowFuse requires at least Docker Compose v2 + +These instructions assume you are running Docker on a Linux or MacOS host system. + + +### DNS + +To access the Projects created you will need to set up a wildcard DNS entry that points to the `domain` entered in the `etc/flowforge.yml` file. + +e.g. assuming that Docker is running on a machine with IP address `192.168.0.8` then an A record point to `*.example.com`. + +This will mean that any host at `example.com` will resolve to the `192.168.0.8`. + +**Note** When testing locally you can not use the loopback address `127.0.0.1` for this, e.g. in the `/etc/hosts` file, as this will resolve to the TCP/IP stack inside each container. + +## Installing FlowFuse + +### Building Containers + +To build the required containers simply run `./build-containers.sh`. + +This will build and tag `flowfuse/forge-docker` and `flowfuse/node-red` and `flowfuse/file-server`. + +#### flowfuse/flowforge-docker + +This container holds the FlowFuse App and the Docker Driver. + +#### flowfuse/node-red + +This is a basic Node-RED image with the FlowFuse Launcher and the required Node-RED plugins to talk to the FlowFuse Platform. + +This is the container you can customize for your deployment. + +#### flowfuse/file-server + +This holds the Object Store used to allow persistent file storage for Projects running on Docker + +## Configuration + +Configuration details are stored in the `etc/flowforge.yml` file which is mapped into the `flowforge/forge-docker` container. You will need to edit this file to update the `domain` and `base_url` entries to match the DNS settings. + +You also need to update the `VIRTUAL_HOST` entry in the `docker-compose.yml` file to use the same domain as in the `etc/flowforge.yml` file. + +You should also update the `email` section to point to a local SMTP server so you can invite users to join teams. + +### Creating Instance + +Once the container have been built you can start the FlowFuse by running: + +``` +docker-compose -p flowforge up -d +``` + +This will also create a directory called `db` to hold the database files used to store project instance and user information. + +# Upgrading + +If upgrading from version before version 1.2.0 you will need to manually create the database for the persistent context store. + +To do this you will need to run the following command after starting: + +``` +docker exec -it flowforge_postgres_1 /docker-entrypoint-initdb.d/setup-context-db.sh +``` + +# Development Mode + +**This is experimental** + +If you are actively developing FlowFuse, the following instructions can be used +to run it with the Docker driver using a locally mounted source tree. + +1. Ensure that you have all of the FlowFuse source repositories checked out next to each +other - including this repository. + +2. Run `npm install` in each repository that has a package.json file. + +3. In the `flowforge` repo, run `npm run dev:local` to setup proper dev symlinks + between the repos. + +4. Follow the instructions above to setup DNS. + +5. Edit the `etc/flowforge.yml` file in the `flowforge` repository to use the docker driver: + ``` + port: 3000 + host: 0.0.0.0 + domain: example.com + base_url: http://forge.example.com + api_url: http://forge:3000 + + driver: + type: docker + options: + socket: /tmp/docker.sock + ``` + + +6. Depending on what OS you are running on, the core project has one binary + dependency that needs to be rebuilt for it to work inside Docker - `bcrypt`. + The super hacky way to get that to work is to edit `flowforge/package.json` and + modify the `serve` task to first reinstall that module: + ``` + "serve": "npm uninstall bcrypt && npm install bcrypt && npm-run-all --parallel build-watch start-watch" + ``` + You only need to do this the first time you run under docker - you can then revert + that change for the subsequent runs. + + **Note:** You will need to reinstall the module when you go back to running outside + of docker. + +7. Start the platform with: `docker-compose -f docker-compose-local-dev.yml up --build` + + That will start the standard environment, but the `forge` container will have the + local source tree mounted, and use `npm run serve` to start the code. This means + it will automatically rebuild/restart whenever source code changes are made. + + From c94343daf9b3efad1193250a48a3d4eac147ceb8 Mon Sep 17 00:00:00 2001 From: PPawlowski Date: Wed, 10 Dec 2025 14:31:14 +0100 Subject: [PATCH 18/29] Reverta readme.md --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 3d1d43e..034d695 100644 --- a/README.md +++ b/README.md @@ -125,5 +125,3 @@ other - including this repository. That will start the standard environment, but the `forge` container will have the local source tree mounted, and use `npm run serve` to start the code. This means it will automatically rebuild/restart whenever source code changes are made. - - From 50ed47787aabc390475344ebb8cbd4e635e95a4f Mon Sep 17 00:00:00 2001 From: PPawlowski Date: Wed, 10 Dec 2025 15:34:28 +0100 Subject: [PATCH 19/29] Push reverted Readme via action --- .github/workflows/build-containers.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-containers.yml b/.github/workflows/build-containers.yml index 8ed1309..69cedfb 100644 --- a/.github/workflows/build-containers.yml +++ b/.github/workflows/build-containers.yml @@ -75,7 +75,7 @@ jobs: repository: flowforge/forge-docker username: flowforge password: ${{ secrets.DOCKER_HUB_PASSWORD }} - readme-filepath: ${{ github.workspace }}/docker-compose/README2.md + readme-filepath: ${{ github.workspace }}/docker-compose/README.md - name: Push README flowfuse if: false From 4a3ea7d8f94cd858fbcbcd608c490e5394b1192b Mon Sep 17 00:00:00 2001 From: PPawlowski Date: Wed, 10 Dec 2025 16:47:33 +0100 Subject: [PATCH 20/29] Shorter readme --- README.md | 63 ------------------------------------------------------- 1 file changed, 63 deletions(-) diff --git a/README.md b/README.md index 034d695..5eb4f57 100644 --- a/README.md +++ b/README.md @@ -62,66 +62,3 @@ Once the container have been built you can start the FlowFuse by running: ``` docker-compose -p flowforge up -d ``` - -This will also create a directory called `db` to hold the database files used to store project instance and user information. - -# Upgrading - -If upgrading from version before version 1.2.0 you will need to manually create the database for the persistent context store. - -To do this you will need to run the following command after starting: - -``` -docker exec -it flowforge_postgres_1 /docker-entrypoint-initdb.d/setup-context-db.sh -``` - -# Development Mode - -**This is experimental** - -If you are actively developing FlowFuse, the following instructions can be used -to run it with the Docker driver using a locally mounted source tree. - -1. Ensure that you have all of the FlowFuse source repositories checked out next to each -other - including this repository. - -2. Run `npm install` in each repository that has a package.json file. - -3. In the `flowforge` repo, run `npm run dev:local` to setup proper dev symlinks - between the repos. - -4. Follow the instructions above to setup DNS. - -5. Edit the `etc/flowforge.yml` file in the `flowforge` repository to use the docker driver: - ``` - port: 3000 - host: 0.0.0.0 - domain: example.com - base_url: http://forge.example.com - api_url: http://forge:3000 - - driver: - type: docker - options: - socket: /tmp/docker.sock - ``` - - -6. Depending on what OS you are running on, the core project has one binary - dependency that needs to be rebuilt for it to work inside Docker - `bcrypt`. - The super hacky way to get that to work is to edit `flowforge/package.json` and - modify the `serve` task to first reinstall that module: - ``` - "serve": "npm uninstall bcrypt && npm install bcrypt && npm-run-all --parallel build-watch start-watch" - ``` - You only need to do this the first time you run under docker - you can then revert - that change for the subsequent runs. - - **Note:** You will need to reinstall the module when you go back to running outside - of docker. - -7. Start the platform with: `docker-compose -f docker-compose-local-dev.yml up --build` - - That will start the standard environment, but the `forge` container will have the - local source tree mounted, and use `npm run serve` to start the code. This means - it will automatically rebuild/restart whenever source code changes are made. From 3d9a182fb49e2f8dffa641e4794ef954031b5082 Mon Sep 17 00:00:00 2001 From: PPawlowski Date: Wed, 10 Dec 2025 16:48:31 +0100 Subject: [PATCH 21/29] Shorter readme --- README.md | 32 -------------------------------- 1 file changed, 32 deletions(-) diff --git a/README.md b/README.md index 5eb4f57..d7f81a9 100644 --- a/README.md +++ b/README.md @@ -30,35 +30,3 @@ This will mean that any host at `example.com` will resolve to the `192.168.0.8` ### Building Containers To build the required containers simply run `./build-containers.sh`. - -This will build and tag `flowfuse/forge-docker` and `flowfuse/node-red` and `flowfuse/file-server`. - -#### flowfuse/flowforge-docker - -This container holds the FlowFuse App and the Docker Driver. - -#### flowfuse/node-red - -This is a basic Node-RED image with the FlowFuse Launcher and the required Node-RED plugins to talk to the FlowFuse Platform. - -This is the container you can customize for your deployment. - -#### flowfuse/file-server - -This holds the Object Store used to allow persistent file storage for Projects running on Docker - -## Configuration - -Configuration details are stored in the `etc/flowforge.yml` file which is mapped into the `flowforge/forge-docker` container. You will need to edit this file to update the `domain` and `base_url` entries to match the DNS settings. - -You also need to update the `VIRTUAL_HOST` entry in the `docker-compose.yml` file to use the same domain as in the `etc/flowforge.yml` file. - -You should also update the `email` section to point to a local SMTP server so you can invite users to join teams. - -### Creating Instance - -Once the container have been built you can start the FlowFuse by running: - -``` -docker-compose -p flowforge up -d -``` From 70010481d6d2057cbc904f74a7fdea9da5f889d2 Mon Sep 17 00:00:00 2001 From: PPawlowski Date: Wed, 10 Dec 2025 16:55:21 +0100 Subject: [PATCH 22/29] Shorter readme --- README.md | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/README.md b/README.md index d7f81a9..809fa59 100644 --- a/README.md +++ b/README.md @@ -13,20 +13,3 @@ FlowFuse uses Docker Compose to install and manager the required components. Ins FlowFuse requires at least Docker Compose v2 These instructions assume you are running Docker on a Linux or MacOS host system. - - -### DNS - -To access the Projects created you will need to set up a wildcard DNS entry that points to the `domain` entered in the `etc/flowforge.yml` file. - -e.g. assuming that Docker is running on a machine with IP address `192.168.0.8` then an A record point to `*.example.com`. - -This will mean that any host at `example.com` will resolve to the `192.168.0.8`. - -**Note** When testing locally you can not use the loopback address `127.0.0.1` for this, e.g. in the `/etc/hosts` file, as this will resolve to the TCP/IP stack inside each container. - -## Installing FlowFuse - -### Building Containers - -To build the required containers simply run `./build-containers.sh`. From bf8109d4314bf2170de9d98a6b19db4fc07c50e4 Mon Sep 17 00:00:00 2001 From: PPawlowski Date: Wed, 10 Dec 2025 16:58:58 +0100 Subject: [PATCH 23/29] Revert "Shorter readme" This reverts commit 3d9a182fb49e2f8dffa641e4794ef954031b5082. --- README.md | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/README.md b/README.md index 809fa59..27ce48f 100644 --- a/README.md +++ b/README.md @@ -13,3 +13,51 @@ FlowFuse uses Docker Compose to install and manager the required components. Ins FlowFuse requires at least Docker Compose v2 These instructions assume you are running Docker on a Linux or MacOS host system. + +### DNS + +To access the Projects created you will need to set up a wildcard DNS entry that points to the `domain` entered in the `etc/flowforge.yml` file. + +e.g. assuming that Docker is running on a machine with IP address `192.168.0.8` then an A record point to `*.example.com`. + +This will mean that any host at `example.com` will resolve to the `192.168.0.8`. + +**Note** When testing locally you can not use the loopback address `127.0.0.1` for this, e.g. in the `/etc/hosts` file, as this will resolve to the TCP/IP stack inside each container. + +## Installing FlowFuse + +### Building Containers + +To build the required containers simply run `./build-containers.sh`. + +This will build and tag `flowfuse/forge-docker` and `flowfuse/node-red` and `flowfuse/file-server`. + +#### flowfuse/flowforge-docker + +This container holds the FlowFuse App and the Docker Driver. + +#### flowfuse/node-red + +This is a basic Node-RED image with the FlowFuse Launcher and the required Node-RED plugins to talk to the FlowFuse Platform. + +This is the container you can customize for your deployment. + +#### flowfuse/file-server + +This holds the Object Store used to allow persistent file storage for Projects running on Docker + +## Configuration + +Configuration details are stored in the `etc/flowforge.yml` file which is mapped into the `flowforge/forge-docker` container. You will need to edit this file to update the `domain` and `base_url` entries to match the DNS settings. + +You also need to update the `VIRTUAL_HOST` entry in the `docker-compose.yml` file to use the same domain as in the `etc/flowforge.yml` file. + +You should also update the `email` section to point to a local SMTP server so you can invite users to join teams. + +### Creating Instance + +Once the container have been built you can start the FlowFuse by running: + +``` +docker-compose -p flowforge up -d +``` From db7d626c34ae9bef5dca3999571d59dc491cf098 Mon Sep 17 00:00:00 2001 From: PPawlowski Date: Wed, 10 Dec 2025 17:03:19 +0100 Subject: [PATCH 24/29] Publish via API --- .github/workflows/build-containers.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-containers.yml b/.github/workflows/build-containers.yml index 69cedfb..9ba88c8 100644 --- a/.github/workflows/build-containers.yml +++ b/.github/workflows/build-containers.yml @@ -53,7 +53,7 @@ jobs: run: cat docker-compose/README.md - name: Push README (API) - if: false + if: true run: | TOKEN=$(curl -s -X POST \ -H "Content-Type: application/json" \ @@ -69,7 +69,7 @@ jobs: https://hub.docker.com/v2/repositories/flowforge/forge-docker - name: Push README - if: true + if: false uses: peter-evans/dockerhub-description@1b9a80c056b620d92cedb9d9b5a223409c68ddfa # v5.0.0 with: repository: flowforge/forge-docker From 168f14e6cea3a1ecfc13c24787539a8c0ca9a23b Mon Sep 17 00:00:00 2001 From: PPawlowski Date: Wed, 10 Dec 2025 17:26:09 +0100 Subject: [PATCH 25/29] Restore original readmy + lint for docker hub api --- README.md | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 65 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 27ce48f..bc4d92a 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,7 @@ FlowFuse requires at least Docker Compose v2 These instructions assume you are running Docker on a Linux or MacOS host system. + ### DNS To access the Projects created you will need to set up a wildcard DNS entry that points to the `domain` entered in the `etc/flowforge.yml` file. @@ -22,7 +23,7 @@ e.g. assuming that Docker is running on a machine with IP address `192.168.0.8` This will mean that any host at `example.com` will resolve to the `192.168.0.8`. -**Note** When testing locally you can not use the loopback address `127.0.0.1` for this, e.g. in the `/etc/hosts` file, as this will resolve to the TCP/IP stack inside each container. +**Note** When testing locally you can not use the loopback address `127.0.0.1` for this, e.g. in the [`hosts`](https://en.wikipedia.org/wiki/Hosts_(file)) file, as this will resolve to the TCP/IP stack inside each container. ## Installing FlowFuse @@ -61,3 +62,66 @@ Once the container have been built you can start the FlowFuse by running: ``` docker-compose -p flowforge up -d ``` + +This will also create a directory called `db` to hold the database files used to store project instance and user information. + +# Upgrading + +If upgrading from version before version 1.2.0 you will need to manually create the database for the persistent context store. + +To do this you will need to run the following command after starting: + +``` +docker exec -it flowforge_postgres_1 /docker-entrypoint-initdb.d/setup-context-db.sh +``` + +# Development Mode + +**This is experimental** + +If you are actively developing FlowFuse, the following instructions can be used +to run it with the Docker driver using a locally mounted source tree. + +1. Ensure that you have all of the FlowFuse source repositories checked out next to each +other - including this repository. + +2. Run `npm install` in each repository that has a package.json file. + +3. In the `flowforge` repo, run `npm run dev:local` to setup proper dev symlinks + between the repos. + +4. Follow the instructions above to setup DNS. + +5. Edit the `etc/flowforge.yml` file in the `flowforge` repository to use the docker driver: + ``` + port: 3000 + host: 0.0.0.0 + domain: example.com + base_url: http://forge.example.com + api_url: http://forge:3000 + + driver: + type: docker + options: + socket: /tmp/docker.sock + ``` + + +6. Depending on what OS you are running on, the core project has one binary + dependency that needs to be rebuilt for it to work inside Docker - `bcrypt`. + The super hacky way to get that to work is to edit `flowforge/package.json` and + modify the `serve` task to first reinstall that module: + ``` + "serve": "npm uninstall bcrypt && npm install bcrypt && npm-run-all --parallel build-watch start-watch" + ``` + You only need to do this the first time you run under docker - you can then revert + that change for the subsequent runs. + + **Note:** You will need to reinstall the module when you go back to running outside + of docker. + +7. Start the platform with: `docker-compose -f docker-compose-local-dev.yml up --build` + + That will start the standard environment, but the `forge` container will have the + local source tree mounted, and use `npm run serve` to start the code. This means + it will automatically rebuild/restart whenever source code changes are made. \ No newline at end of file From 61e9ef3f154f45dd44449e8c7f2afff952c1ff25 Mon Sep 17 00:00:00 2001 From: PPawlowski Date: Wed, 10 Dec 2025 17:31:06 +0100 Subject: [PATCH 26/29] Publish from action --- .github/workflows/build-containers.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-containers.yml b/.github/workflows/build-containers.yml index 9ba88c8..d058334 100644 --- a/.github/workflows/build-containers.yml +++ b/.github/workflows/build-containers.yml @@ -53,7 +53,7 @@ jobs: run: cat docker-compose/README.md - name: Push README (API) - if: true + if: false run: | TOKEN=$(curl -s -X POST \ -H "Content-Type: application/json" \ @@ -69,7 +69,7 @@ jobs: https://hub.docker.com/v2/repositories/flowforge/forge-docker - name: Push README - if: false + if: true uses: peter-evans/dockerhub-description@1b9a80c056b620d92cedb9d9b5a223409c68ddfa # v5.0.0 with: repository: flowforge/forge-docker @@ -78,7 +78,7 @@ jobs: readme-filepath: ${{ github.workspace }}/docker-compose/README.md - name: Push README flowfuse - if: false + if: true uses: peter-evans/dockerhub-description@1b9a80c056b620d92cedb9d9b5a223409c68ddfa # v5.0.0 with: repository: flowfuse/forge-docker From 86df1959d656073f7f654a6324511c97df14d661 Mon Sep 17 00:00:00 2001 From: PPawlowski Date: Wed, 10 Dec 2025 17:31:40 +0100 Subject: [PATCH 27/29] Restore readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bc4d92a..8dc8708 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ e.g. assuming that Docker is running on a machine with IP address `192.168.0.8` This will mean that any host at `example.com` will resolve to the `192.168.0.8`. -**Note** When testing locally you can not use the loopback address `127.0.0.1` for this, e.g. in the [`hosts`](https://en.wikipedia.org/wiki/Hosts_(file)) file, as this will resolve to the TCP/IP stack inside each container. +**Note** When testing locally you can not use the loopback address `127.0.0.1` for this, e.g. in the `hosts` file, as this will resolve to the TCP/IP stack inside each container. ## Installing FlowFuse From 58b179038f57f53b6762375883ca88c07b8c51a2 Mon Sep 17 00:00:00 2001 From: PPawlowski Date: Wed, 10 Dec 2025 17:35:35 +0100 Subject: [PATCH 28/29] Link to hosts file --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8dc8708..bc4d92a 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ e.g. assuming that Docker is running on a machine with IP address `192.168.0.8` This will mean that any host at `example.com` will resolve to the `192.168.0.8`. -**Note** When testing locally you can not use the loopback address `127.0.0.1` for this, e.g. in the `hosts` file, as this will resolve to the TCP/IP stack inside each container. +**Note** When testing locally you can not use the loopback address `127.0.0.1` for this, e.g. in the [`hosts`](https://en.wikipedia.org/wiki/Hosts_(file)) file, as this will resolve to the TCP/IP stack inside each container. ## Installing FlowFuse From f41dbec99e9bd4528ec02b7a6739ccb0081cbb48 Mon Sep 17 00:00:00 2001 From: PPawlowski Date: Wed, 10 Dec 2025 17:36:15 +0100 Subject: [PATCH 29/29] Cleanup pipeline --- .github/workflows/build-containers.yml | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/.github/workflows/build-containers.yml b/.github/workflows/build-containers.yml index d058334..d7cae3d 100644 --- a/.github/workflows/build-containers.yml +++ b/.github/workflows/build-containers.yml @@ -46,30 +46,7 @@ jobs: tags: ${{ steps.meta.outputs.tags }} push: true - - name: List files - run: ls -la docker-compose/ - - - name: Readme content - run: cat docker-compose/README.md - - - name: Push README (API) - if: false - run: | - TOKEN=$(curl -s -X POST \ - -H "Content-Type: application/json" \ - -d '{"username": "flowforge", "password": "${{ secrets.DOCKER_HUB_PASSWORD }}"}' \ - https://hub.docker.com/v2/users/login/ | jq -r .token) - - README_CONTENT=$(cat ./docker-compose/README.md | jq -Rs .) - - curl -X PATCH \ - -H "Authorization: Bearer ${TOKEN}" \ - -H "Content-Type: application/json" \ - -d "{\"full_description\": ${README_CONTENT}}" \ - https://hub.docker.com/v2/repositories/flowforge/forge-docker - - name: Push README - if: true uses: peter-evans/dockerhub-description@1b9a80c056b620d92cedb9d9b5a223409c68ddfa # v5.0.0 with: repository: flowforge/forge-docker @@ -78,7 +55,6 @@ jobs: readme-filepath: ${{ github.workspace }}/docker-compose/README.md - name: Push README flowfuse - if: true uses: peter-evans/dockerhub-description@1b9a80c056b620d92cedb9d9b5a223409c68ddfa # v5.0.0 with: repository: flowfuse/forge-docker